Postgresql 8.3.23 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 50. Định nghĩa giao diện phương thức truy cập chỉ kèo bóng đá c1 | Chuyển tiếp nhanh | Tiếp theo |
Hàm amcostestimate được đưa ra một danh sách các điều khoản đã được xác định là có thể sử dụng với chỉ số. Nó phải Ước tính trả về chi phí truy cập chỉ mục và tính chọn lọc của các mệnh đề ở đâu (nghĩa là phần của Các hàng bảng cha sẽ được truy xuất trong quá trình quét chỉ mục). Đối với các trường hợp đơn giản, gần như tất cả các công việc của công cụ ước kèo bóng đá c1 phí có thể được thực hiện bằng cách gọi các thói quen tiêu chuẩn trong trình tối ưu hóa; điểm có chức năng Amcostestimate là cho phép truy cập chỉ mục các phương pháp để cung cấp kiến thức cụ thể theo kiểu chỉ số, trong trường hợp nó là có thể cải thiện các ước tính tiêu chuẩn.
Mỗi hàm amcostestimate phải có chữ ký:
Void Amcostestimate (Root PlannerInfo *, IndexoptInfo *index, Danh sách *Indexquals, Reloptinfo *outer_rel, kèo bóng đá c1 phí *IndexStartUpCost, kèo bóng đá c1 phí *indextotalcost, Chọn lọc *indexSelectivity, Double *indexCorrelation);
Bốn tham số đầu tiên là đầu vào:
Thông tin của người lập kế hoạch về việc truy vấn đã xử lý.
Chỉ kèo bóng đá c1 đang được xem xét.
Danh sách các điều khoản của INDEX Qualauses (ngầm Anded); một số Danh sách cho thấy 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, không phải máy quét.
12074_12495
Bốn tham số cuối cùng là đầu ra qua từng tài liệu:
Đặt thành kèo bóng đá c1 phí xử lý khởi động chỉ mục
12802_12841
Đặt thành chỉ kèo bóng đá c1 chọn lọc
Đặt thành hệ số tương quan giữa thứ tự quét chỉ kèo bóng đá c1 và đơn đặt hàng của bảng bên dưới
Lưu ý rằng các chức năng ước kèo bóng đá c1 phí phải được viết bằng C, không phải trong SQL hoặc bất kỳ ngôn ngữ tố tụng có sẵn nào, bởi vì chúng phải Truy cập cấu trúc dữ liệu nội bộ của trình lập kế hoạch/tối ưu hóa.
Chi phí truy cập chỉ mục phải được kèo bóng đá c1 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/kèo bóng đá c1 phí.: a Tìm nạp khối đĩa tuần tự có kèo bóng đá c1 phíSEQ_PAGE_COST, Một lần tìm nạp không có giá trị13618_13636và kèo bóng đá c1 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 kèo bóng đá c1 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á các chỉ mục chính họ).
kèo bóng đá c1 phí truy cập nên bao gồm tất cả các kèo bóng đá c1 phí đĩa và CPU được liên kết với việc quét chỉ mục, nhưngkhôngkèo bóng đá c1 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"kèo bóng đá c1 phí khởi nghiệp"là một phần của tổng kèo bóng đá c1 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 kèo bóng đá c1 phí khởi động cao có thể muốn đặt nó khác không.
14540_14813
Chỉ mục nên được đặt thành mối tương quan (phạm vi giữa -1.0 đến 1.0) giữa thứ tự chỉ mục và bảng đặt hàng. Điều này được sử dụng để điều chỉnh ước kèo bóng đá c1 cho chi phí của 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ỉ kèo bóng đá c1.
Dự toán kèo bóng đá c1 phí
Công cụ ước kèo bóng đá c1 phí điển hình sẽ được tiến hành như sau:
Ước kèo bóng đá c1 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ẩn15598_15624
:
*IndexSelectivity = Clauselist_Selectivity (root, indexquals, index- rel- relid, tham gia_inner);
Ước kèo bóng đá c1 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ư indexSelectivity thời gian số lượng hàng trong chỉ mục, nhưng Nó có thể là nhiều hơn. (Lưu ý rằng kích thước của chỉ mục trong các trang và Hàng có sẵn từ struct indexoptInfo.)
Ước kèo bóng đá c1 số lượng trang chỉ mục sẽ Truy cập trong quá trình quét. Đây có thể chỉ là IndexSelectivity thời gian kích thước của chỉ mục trong các trang.
kèo bóng đá c1 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 kèo bóng đá c1 phí để đánh giá các chỉ mục tại mỗi hàng chỉ mục. * Tất cả các chi 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 kèo bóng đá c1 đế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.
Ước kèo bóng đá c1 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 kèo bóng đá c1 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 kèo bóng đá c1 phí có thể được tìm thấy trong.