Phiên bản không được hỗ trợ:6.4
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng kèo bóng đá cúp c2 trang chohiện tạiPhiên bản hoặc kèo bóng đá cúp c2 trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

kèo bóng đá cúp c2 so với Trình kích hoạt

Nhiều điều có thể được thực hiện bằng cách sử dụng trình kèo bóng đá cúp c2 cũng có thể được triển khai bằng cách sử dụngPostgresHệ thống kèo bóng đá cúp c2. Những gì hiện tại không thể được thực hiện bởi các kèo bóng đá cúp c2 là một số các loại ràng buộc. Có thể, để đặt một kèo bóng đá cúp c2 đủ điều kiện điều đó 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 được âm thầm vứt đi Và đó không phải là một ý kiến ​​hay. Nếu kiểm tra các giá trị hợp lệ là bắt buộc và trong trường hợp giá trị không hợp lệ, một thông báo lỗi nên được tạo ra, nó phải được thực hiện bằng một kích hoạt ngay bây giờ.

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 đá cúp c2, đặt dữ liệu ở một nơi khác và đàn áp Các 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 quan hệ xem có thể được quét và do đó kích hoạt sẽ không bao giờ được gọi. Chỉ một một kèo bóng đá cúp c2 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 đá cúp c2 thao túng parsetree 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 đá cúp c2 phát hành một truy vấn bổ sung thường sẽ làm tốt hơn công việc hơn là 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 anh ấy nhiều lần.

Ví dụ: có hai bảng

Tạo kèo bóng đá cúp c2 tính bảng (
        Tên kèo bóng đá cúp c2 chủ - đượ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 kèo bóng đá cúp c2 chủ - được lập chỉ mục
    );
Cả hai bảng đều có hàng ngàn hàng và chỉ mục trên Tên máy chủ là duy nhất. Cột tên máy chủ chứa toàn bộ đủ điều kiện Tên miền của máy tính. kèo bóng đá cúp c2/kích hoạt phải ràng buộc Xóa các hàng khỏi phần mềm tham chiếu máy chủ đã xóa. Từ Trình kích hoạt được gọi cho mỗi hàng riêng lẻ bị xóa khỏi máy tính, nó có thể sử dụng câu lệnh
Xóa khỏi phần mềm trong đó hostName = $ 1;
Trong một kế hoạch đã chuẩn bị và lưu và chuyển tên máy chủ trong tham số. kèo bóng đá cúp c2 sẽ được viết là
Tạo kèo bóng đá cúp c2 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;
Bây giờ chúng ta xem xét các loại xóa khác nhau. Trong trường hợp của kèo bóng đá cúp c2
Xóa khỏi kèo bóng đá cúp c2 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 đá cúp c2 sẽ là
Xóa khỏi phần mềm trong đó kèo bóng đá cúp c2 tính.hostname = 'mypc.local.net'
                           Và phần mềm.hostname = kèo bóng đá cúp c2 tính.hostName;
Vì có thiết lập chỉ số thích hợp, trình tối ưu hóa sẽ Tạo kèo bóng đá cúp c2 kế hoạch của
Nestloop
      - Quét chỉ mục bằng comp_hostidx trên kèo bóng đá cúp c2 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 đá cúp c2. Với lần xóa tiếp theo, chúng tôi muốn loại bỏ tất cả 2000 máy tính nơi tên máy chủ bắt đầu với 'cũ'. Có hai truy vấn có thể để làm điều đó. Một là
Xóa khỏi kèo bóng đá cúp c2 tính trong đó tên kèo bóng đá cúp c2 chủ = 'cũ'
                           Và tên kèo bóng đá cúp c2 chủ <'ole'
trong đó kế hoạch cho truy vấn kèo bóng đá cúp c2 sẽ là
băm tham gia
      - SEQ Scan trên phần mềm
      - Hash
            - SCAN INDEX bằng comp_hostidx trên kèo bóng đá cúp c2 tính
Truy vấn khác có thể là
Xóa khỏi kèo bóng đá cúp c2 tính trong đó tên kèo bóng đá cúp c2 chủ ~ '^cũ';
kèo bóng đá cúp c2 kế hoạch thực thi
Nestloop
      - Quét chỉ mục bằng comp_hostidx trên kèo bóng đá cúp c2 tính
      - SCAN INDEX bằng Soft_Hostidx trên phần mềm
Điều này cho thấy rằng trình tối ưu hóa không nhận ra rằng Trình độ chuyên môn cho tên máy chủ trên máy tính cũng có thể được sử dụng cho quét chỉ mục trên phần mềm khi có nhiều trình độ Biểu thức 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. Bộ kích hoạt sẽ được gọi một lần cho bất kỳ năm 2000 máy tính cũ phải bị xóa và điều đó sẽ dẫn đến một Quét chỉ mục trên máy tính và 2000 chỉ số quét cho phần mềm. Các Việc thực hiện kèo bóng đá cúp c2 sẽ làm điều đó với hai truy vấn trên các chỉ số. 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 đá cúp c2 sẽ vẫn nhanh hơn trong tình huống Seqscan. 2000 truy vấn thực thi người quản lý SPI mất một thời gian, ngay cả khi tất cả các Các khối chỉ mục để tra cứu 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 kèo bóng đá cúp c2 tính WHERE Manufacurer = 'BIM';
Một lần nữa điều này có thể dẫn đến nhiều hàng bị xóa khỏi máy tính. Vì vậy, kích hoạt sẽ một lần nữa bắn nhiều truy vấn vào người thực thi. Nhưng kế hoạch kèo bóng đá cúp c2 sẽ lại là Nestloop trên hai INDEXSCAN. Chỉ sử dụng chỉ mục khác trên máy tính:
Nestloop
      - Quét chỉ mục bằng comp_manufidx trên kèo bóng đá cúp c2 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 đá cúp c2
Xóa khỏi phần mềm trong đó kèo bóng đá cúp c2 tính.manufacurer = 'BIM'
                           Và phần mềm.hostname = kèo bóng đá cúp c2 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 đá cúp c2 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.

kèo bóng đá cúp c2 tình huống khác là các trường hợp cập nhật trong đó nó phụ thuộc vào Thay đổi thuộc tính nếu kèo bóng đá cúp c2 hành động nên được thực hiện hay không. TRONGPostgresPhiên bản 6.4, The đặc tả thuộc tính cho các sự kiện kèo bóng đá cúp c2 bị vô hiệu hóa (nó sẽ có Đó là sự trở lại mới nhất trong 6.5, có thể sớm hơn - 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 đá cúp c2 như trong ví dụ Shoelace_log là để làm điều đó với một trình độ kèo bóng đá cúp c2. Dẫn đến một truy vấn bổ sung được thực hiện luôn luôn, ngay cả khi thuộc tính quan tâm không thể thay đổi tất cả vì nó không xuất hiện trong danh sách mục tiêu của Truy vấn ban đầu. Khi điều này được bật lại, nó sẽ là một Lợi thế của các kèo bóng đá cúp c2 so với kích hoạt. Tối ưu hóa một kích hoạt phải Không định nghĩa trong trường hợp này, bởi vì thực tế là hành động đó sẽ chỉ được thực hiện khi một thuộc tính cụ thể được cập nhật được ẩn trong Đó là chức năng. Định nghĩa của một 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, bộ kích hoạt Phải được gọi để đưa ra quyết định. Hệ thống kèo bóng đá cúp c2 sẽ biết nó Bằng cách tìm kiếm danh sách mục tiêu và sẽ đàn áp truy vấn bổ sung Hoàn toàn nếu thuộc tính không được chạm vào. Vì vậy, kèo bóng đá cúp c2, đủ điều kiện Hoặc không, sẽ chỉ làm nó là quét nếu có một cái gì đó để làm.

kèo bóng đá cúp c2 sẽ chỉ chậm hơn đáng kể so với các yếu tố kích hoạt nếu hành động dẫn đến tham gia đủ điều kiện lớn và xấu, một tình huống trong đó Trình tối ưu hóa thất bại. Họ là một cây búa lớn. Sử dụng một cái búa lớn 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 quyền Chạm vào, họ có thể đánh bất kỳ cái đinh nào trên đầu.