Nhiều điều có thể được thực hiện bằng cách sử dụng các trình kèo bóng đá hôm nay và ngày mai cũng có thể được triển khai bằng cách sử dụngPostgreSQLHệ thống kèo bóng đá hôm nay và ngày mai. Những gì hiện tại không thể được thực hiện bởi các kèo bóng đá hôm nay và ngày mai là Một số loại ràng buộc. Có thể, để đặt một kèo bóng đá hôm nay và ngày mai viết lại một truy vấn thành không có gì nếu giá trị của một cột không xuất hiện trong một bảng khác. Nhưng sau đó dữ liệu âm thầm Vứt bỏ và đó không phải là một ý kiến hay. Nếu kiểm tra hợp lệ các giá trị được yêu cầu và trong trường hợp giá trị không hợp lệ, một lỗi thông báo nên được tạo, nó phải được thực hiện bằng một kích hoạt cho Hiện nay.
Mặt khác, một bộ kích hoạt được kích hoạt khi chèn vào chế độ xem có thể làm giống như một kèo bóng đá hôm nay và ngày mai, đặt dữ liệu ở một nơi khác và Bị triệt tiêu chèn trong chế độ xem. Nhưng nó không thể làm điều tương tự khi cập nhật hoặc xóa, vì không có dữ liệu thực trong chế độ xem mối quan hệ có thể được quét và do đó kích hoạt sẽ không bao giờ được gọi. Chỉ có một kèo bóng đá hôm nay và ngày mai sẽ giúp.
Đối với những điều có thể được thực hiện bởi cả hai, nó phụ thuộc vào Việc sử dụng cơ sở dữ liệu, đó là tốt nhất. Một kích hoạt được bắn cho bất kỳ hàng bị ảnh hưởng một lần. Một kèo bóng đá hôm nay và ngày mai thao túng cây phân tích hoặc Tạo thêm một. Vì vậy, nếu nhiều hàng bị ảnh hưởng trong một tuyên bố, một kèo bóng đá hôm nay và ngày mai phát hành một truy vấn bổ sung thường sẽ thực hiện công việc tốt hơn một kích hoạt được gọi cho bất kỳ hàng nào và phải thực hiện các hoạt động của mình nhiều lần.
Ví dụ: có hai bảng
Tạo máy tính bảng ( Textname HostN, - được lập chỉ mục văn bản nhà sản xuất - được lập chỉ mục ); Tạo phần mềm bảng ( Văn bản phần mềm, - được lập chỉ mục Tên máy chủ - được lập chỉ mục );
Cả hai bảng đều có hàng ngàn hàng và chỉ mục trêntên máy chủ12481_12499tên máy chủ12537_12805
Xóa khỏi phần mềm trong đó hostName = $ 1;
Trong một kế hoạch đã chuẩn bị và lưu và vượt quatên máy chủTrong tham số. kèo bóng đá hôm nay và ngày mai sẽ là được viết là
Tạo kèo bóng đá hôm nay và ngày mai máy tính_del như đang xóa vào máy tính Xóa khỏi phần mềm trong đó hostName = old.hostName;
13183_13246
Xóa khỏi máy tính trong đó hostname = 'mypc.local.net';
Máy tính bảng được quét theo chỉ mục (nhanh) và truy vấn Được phát hành bởi bộ kích hoạt cũng sẽ là một chỉ số quét (nhanh cũng vậy). Các Truy vấn bổ sung từ kèo bóng đá hôm nay và ngày mai sẽ là
Xóa khỏi phần mềm trong đó máy tính.hostname = 'mypc.local.net' Và phần mềm.hostname = máy tính.hostName;
Vì có thiết lập chỉ mục thích hợp, người lập kế hoạch sẽ Tạo một kế hoạch của
Nestloop - Quét chỉ mục bằng comp_hostidx trên máy tính - SCAN INDEX bằng Soft_Hostidx trên phần mềm
Vì vậy, sẽ không có nhiều sự khác biệt về tốc độ giữa Các kích hoạt và thực hiện kèo bóng đá hôm nay và ngày mai. Với lần xóa tiếp theo, chúng tôi muốn loại bỏ tất cả các máy tính 2000 nơitên máy chủBắt đầu kèo bóng đá hôm nay và ngày mai 'Cũ'. Có hai có thể truy vấn để làm điều đó. Một là
14259_14358
trong đó kế hoạch cho truy vấn kèo bóng đá hôm nay và ngày mai sẽ là
Băm tham gia - SEQ Scan trên phần mềm - Hash - SCAN INDEX bằng comp_hostidx trên máy tính
Truy vấn khác có thể là
Xóa khỏi máy tính trong đó tên máy chủ ~ '^cũ';
kèo bóng đá hôm nay và ngày mai kế hoạch thực thi
Nestloop - Quét chỉ mục bằng comp_hostidx trên máy tính - SCAN INDEX bằng Soft_Hostidx trên phần mềm
Điều này cho thấy rằng người lập kế hoạch không nhận ra rằng Trình độ chuyên môn chotên máy chủtrên máy tính cũng có thể được sử dụng để quét chỉ mục trên phần mềm khi Có nhiều biểu thức đủ điều kiện kết hợp với và, Những gì anh ấy làm trong phiên bản Regexp của truy vấn. Các kích hoạt sẽ được gọi một lần cho bất kỳ máy tính cũ nào trong số 2000 bị xóa và điều đó sẽ dẫn đến một chỉ số quét trên máy tính và 2000 chỉ số quét cho phần mềm. Việc thực hiện kèo bóng đá hôm nay và ngày mai sẽ làm điều đó với hai truy vấn trên các chỉ mục. Và nó phụ thuộc vào kích thước tổng thể của bảng phần mềm nếu kèo bóng đá hôm nay và ngày mai vẫn sẽ nhanh hơn trong tình huống quét tuần tự. 2000 vụ hành quyết truy vấn Trình quản lý SPI mất một thời gian, ngay cả khi tất cả các khối chỉ mục Để tìm chúng sẽ sớm xuất hiện trong bộ đệm.
Truy vấn cuối cùng chúng ta xem là
Xóa khỏi máy tính WHERE Manufacurer = 'BIM';
15839_16083
Nestloop - Quét chỉ mục bằng comp_manufidx trên máy tính - SCAN INDEX bằng Soft_Hostidx trên phần mềm
kết quả từ truy vấn kèo bóng đá hôm nay và ngày mai
Xóa khỏi phần mềm trong đó máy tính.manufacurer = 'BIM' Và phần mềm.hostname = máy tính.hostName;
Trong bất kỳ trường hợp nào, các truy vấn bổ sung từ hệ thống kèo bóng đá hôm nay và ngày mai sẽ độc lập nhiều hơn hoặc ít hơn với số lượng các hàng bị ảnh hưởng trong một truy vấn.
16597_16731PostgreSQLPhiên bản 6.4, The đặc tả thuộc tính cho các sự kiện kèo bóng đá hôm nay và ngày mai bị vô hiệu hóa (nó sẽ có Sự trở lại của nó mới nhất trong 6.5, có thể trước đó - hãy theo dõi). Vì vậy, cho Bây giờ cách duy nhất để tạo ra một kèo bóng đá hôm nay và ngày mai như trong ví dụ Shoelace_log là làm điều đó với một trình độ kèo bóng đá hôm nay và ngày mai. Kết quả là một truy vấn luôn được thực hiện, ngay cả khi thuộc tính quan tâm hoàn toàn không thể thay đổi vì nó không xuất hiện trong mục tiêu Danh sách các truy vấn ban đầu. Khi điều này được bật lại, nó sẽ Một lợi thế nữa của các kèo bóng đá hôm nay và ngày mai đối với các kích hoạt. Tối ưu hóa a kích hoạt phải thất bại theo định nghĩa trong trường hợp này, bởi vì thực tế rằng các hành động của nó sẽ chỉ được thực hiện khi một thuộc tính cụ thể là Cập nhật được ẩn trong chức năng của nó. Định nghĩa của một Trình kích hoạt chỉ cho phép chỉ định nó ở cấp độ hàng, vì vậy bất cứ khi nào một hàng được chạm vào, kích hoạt phải được gọi để đưa ra quyết định của nó. Các hệ thống kèo bóng đá hôm nay và ngày mai sẽ biết điều đó bằng cách tìm kiếm danh sách mục tiêu và sẽ triệt tiêu hoàn toàn truy vấn bổ sung nếu thuộc tính không chạm vào. Vì vậy, kèo bóng đá hôm nay và ngày mai, đủ điều kiện hay không, sẽ chỉ thực hiện quét của nó nếu Có bao giờ có thể làm gì đó.
kèo bóng đá hôm nay và ngày mai sẽ chỉ chậm hơn đáng kể so với các kích hoạt nếu Hành động dẫn đến tham gia đủ điều kiện lớn và kém, một tình huống nơi người lập kế hoạch thất bại. Họ là một cây búa lớn. Sử dụng một lớn Búa mà không thận trọng có thể gây ra thiệt hại lớn. Nhưng được sử dụng với chạm đúng, họ có thể đánh vào đầu.