Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
9116_9172hiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

52.6. Ước tính tỷ lệ kèo bóng đá phí chỉ số Chức năng

TheAmcostestimateHàm là thông tin được đưa ra mô tả quét chỉ mục có thể, bao gồm cả Danh sách nơi và đặt hàng theo mệnh đề đã được xác định có thể sử dụng với chỉ số. Nó phải trả lại ước tính về tỷ lệ kèo bóng đá phí của truy cập chỉ mục và tính chọn lọc của các mệnh đề nơi (nghĩa là, phần của các hàng bảng cha mẹ sẽ Truy cập trong quá trình quét chỉ mục). Đối với những trường hợp đơn giản, gần như tất cả Công việc của công cụ ước tính tỷ lệ kèo bóng đá phí có thể được thực hiện bằng cách gọi tiêu chuẩn thói quen trong trình tối ưu hóa; điểm có mộtAmcostestimate11029_11180

mỗiAmcostestimateHàm Phải có chữ ký:

Void
Amcostestimate (Root PlannerInfo *,
                IndexoptInfo *index,
                Danh sách *Indexquals,
                Danh sách *IndexOrderBys,
                Reloptinfo *outer_rel,
                tỷ lệ kèo bóng đá phí *IndexStartUpCost,
                tỷ lệ kèo bóng đá phí *indextotalcost,
                Chọn lọc *indexSelectivity,
                Double *indexCorrelation);

Năm tham số đầu tiên là đầu vào:

root

Thông tin của người lập kế hoạch về việc truy vấn đã xử lý.

index

Chỉ mục đang được xem xét.

indexquals

Danh sách các điều khoản của INDEX Qualauses (ngầm Anded); MộtnilDanh sách cho biết không có vòng loại nào có sẵn. Lưu ý rằng danh sách chứa các cây biểu thức với các nút RESTRICTINFO ở trên cùng, không phải scickkeys.

indexorderBys

Danh sách thứ tự có thể lập chỉ mục của các toán tử hoặcnilNếu không có. Lưu ý rằng danh sách chứa cây biểu thức, không phải scickkeys.

outer_rel

Nếu chỉ mục được xem xét sử dụng trong một tham gia bên trong IndexScan, thông tin của người lập kế hoạch về tỷ lệ tỷ lệ kèo bóng đáa bên ngoài của sự tham gia. Nếu không thìnull. Khi khôngnull, Một số điều khoản của Qualauses sẽ tham gia các điều khoản với rel này thay vì đơn giản Điều khoản hạn chế. Ngoài ra, công cụ ước tính tỷ lệ kèo bóng đá phí nên mong đợi rằng quét chỉ mục sẽ được lặp lại cho mỗi hàng của Rel.

Bốn tham số cuối cùng là các đầu ra được tham tỷ lệ kèo bóng đáếu qua:

*indexStartUpCost

Đặt thành tỷ lệ kèo bóng đá phí xử lý khởi động chỉ mục

*IndextotalCost

Đặt thành tổng tỷ lệ kèo bóng đá phí xử lý chỉ mục

*IndexSelectivity

Đặt thành chỉ mục chọn lọc

*IndexCorrelation

Đặt thành hệ số tương quan giữa thứ tự quét chỉ mục và đơn đặt hàng của bảng bên dưới

13923_14109

tỷ lệ kèo bóng đá phí truy cập chỉ mục phải được tính toán bằng cách sử dụng các tham số Được sử dụng bởiSRC/phụ trợ/tối ưu hóa/đường dẫn/tỷ lệ kèo bóng đá phí.: a Tìm nạp khối đĩa tuần tự có tỷ lệ kèo bóng đá phíSEQ_PAGE_COST, một lần tìm nạp không tiếp theo có tỷ lệ kèo bóng đá phíngẫu nhiên_page_costvà tỷ lệ kèo bóng đá phí của Xử lý một hàng chỉ mục thường được coi làcpu_index_tuple_cost. Ngoài ra, một bội số củaCPU_OPERATOR_COSTnên được được tỷ lệ kèo bóng đá cho bất kỳ toán tử so sánh nào được gọi trong khi chỉ mục Xử lý (đặc biệt là đánh giáindexqualschính họ).

tỷ lệ kèo bóng đá phí truy cập nên bao gồm tất cả các tỷ lệ kèo bóng đá phí đĩa và CPU được liên kết với việc quét chỉ mục, nhưngkhôngtỷ lệ kèo bóng đá phí truy xuất hoặc xử lý các hàng bảng cha được xác định bởi chỉ mục.

The"tỷ lệ kèo bóng đá phí khởi nghiệp"là một phần của tổng tỷ lệ kèo bóng đá phí quét phải được sử dụng trước khi chúng ta có thể bắt đầu Tìm nạp hàng đầu tiên. Đối với hầu hết các chỉ mục, điều này có thể được coi là 0, Nhưng một loại chỉ mục với tỷ lệ kèo bóng đá phí khởi động cao có thể muốn đặt nó khác không.

TheindexSelectivity15391_15644

TheIndexCorrelationnên được đặt đến mối tương quan (nằm giữa -1,0 và 1.0) giữa thứ tự chỉ mục và thứ tự bảng. Điều này được sử dụng để điều chỉnh Ước tính tỷ lệ kèo bóng đá phí tìm nạp các hàng từ bảng cha.

Trong trường hợp tham gia, các số được trả về phải là trung bình mong đợi cho bất kỳ một lần quét chỉ mục.

Dự toán tỷ lệ kèo bóng đá phí

Công cụ ước tính tỷ lệ kèo bóng đá phí điển hình sẽ được tiến hành như sau:

  1. Ước tỷ lệ kèo bóng đá và trả lại phần của các hàng bảng cha mẹ sẽ được truy cập dựa trên các điều kiện chất lượng nhất định. TRONG sự vắng mặt của bất kỳ kiến ​​thức cụ thể theo kiểu chỉ mục nào, sử dụng Chức năng tối ưu hóa tiêu chuẩnclauselist_selectivity ():

    *IndexSelectivity = Clauselist_Selectivity (root, indexquals,
                                               index- ​​rel- relid,
                                               Tham gia_inner, null);
  2. Ước tỷ lệ kèo bóng đá số lượng hàng chỉ mục sẽ được truy cập Trong quá trình quét. Đối với nhiều loại chỉ mục, điều này giống nhưindexSelectivitylần Số lượng hàng trong chỉ mục, nhưng nó có thể nhiều hơn. (Ghi chú rằng kích thước của chỉ mục trong các trang và hàng có sẵn từ TheindexOptInfostruct.)

  3. Ước tỷ lệ kèo bóng đá số lượng trang chỉ mục sẽ Truy cập trong quá trình quét. Đây có thể chỉ làindexSelectivitylần kích thước của chỉ mục trong trang.

  4. Tính tỷ lệ kèo bóng đá phí truy cập chỉ mục. Một công cụ ước tính chung có thể Làm điều này:

    /*
     * Giả định chung của chúng tôi là các trang chỉ mục sẽ được đọc
     * tuần tự, vì vậy chúng có giá seq_page_cost mỗi cái, không phải ngẫu nhiên_page_cost.
     * Ngoài ra, chúng tôi tính phí để đánh giá các chỉ mục tại mỗi hàng chỉ mục.
     * Tất cả các tỷ lệ kèo bóng đá phí được cho là được thanh toán tăng dần trong quá trình quét.
     */
    cost_qual_eval (& index_qual_cost, indexquals, root);
    *indexStartUpCost = index_qual_cost.startup;
    * indextotalcost = SEQ_PAGE_COST * NUMINDEXPAGES +
        .

    Tuy nhiên, những điều trên không tỷ lệ kèo bóng đá đến việc khấu hao Chỉ mục đọc qua các lần quét chỉ mục lặp lại trong tham gia trường hợp.

  5. Ước tỷ lệ kèo bóng đá mối tương quan chỉ số. Cho một đơn đặt hàng đơn giản chỉ mục trên một trường duy nhất, điều này có thể được lấy từ pg_statistic. Nếu mối tương quan không được biết đến, Ước tỷ lệ kèo bóng đá bảo thủ bằng không (không có mối tương quan).

Ví dụ về các chức năng ước tính tỷ lệ kèo bóng đá phí có thể được tìm thấy trong.