Postgresql Tài liệu 8.0.26 | ||||
---|---|---|---|---|
prev | Backward nhanh | Chuyển tiếp nhanh | NEXT |
tác giả:Được viết bởi Tom Lane (
<tgl@sss.pgh.pa.us
) Vào ngày 2000-01-24
Lưu ý:Điều này cuối cùng phải trở thành một phần của nhiều Chương lớn hơn về việc viết các phương thức truy cập chỉ kèo bóng đá cúp c2 mới.
Mọi phương pháp truy cập chỉ kèo bóng đá cúp c2 phải cung cấp ước tính chi phí chức năng để sử dụng bởi người lập kế hoạch/tối ưu hóa. Thủ tục oid của Chức năng này được đưa ra trongAmcostestimateTrường của phương thức truy cậppg_amEntry.
Lưu ý:trướcPostgreSQL7.0, một sơ đồ khác là được sử dụng để đăng ký ước tính kèo bóng đá cúp c2 phí cụ thể chỉ số chức năng.
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ỉ kèo bóng đá cúp c2 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 chính sẽ được truy xuất trong quá trình quét chỉ kèo bóng đá cúp c2). Đố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 tính chi 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ỉ kèo bóng đá cúp c2 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 (truy vấn *root, Reloptinfo *rel, IndexoptInfo *index, Danh sách *Indexquals, kèo bóng đá cúp c2 phí *IndexStartUpCost, kèo bóng đá cúp c2 phí *indextotalcost, Chọn lọc *indexSelectivity, Double *indexCorrelation);
Bốn tham số đầu tiên là đầu vào:
Truy vấn đang được xử lý.
Mối quan hệ chỉ kèo bóng đá cúp c2.
chính chỉ kèo bóng đá cúp c2.
Danh sách các điều khoản của INDEX Qualauses (ngầm Anded); một số Danh sách cho biết không có vòng loại nào có sẵn.
Bốn tham số cuối cùng là các đầu ra từng tham kèo bóng đá cúp c2ếu:
Đặt thành chi phí xử lý khởi động chỉ kèo bóng đá cúp c2
Đặt thành tổng chi phí xử lý chỉ kèo bóng đá cúp c2
Đặt thành chỉ kèo bóng đá cúp c2 chọn lọc
Đặt thành hệ số tương quan giữa thứ tự quét chỉ kèo bóng đá cúp c2 và đơn đặt hàng của bảng bên dưới
Lưu ý rằng các chức năng ước tính kèo bóng đá cúp c2 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ỉ kèo bóng đá cúp c2 phải được tính toán trong các đơn vị được sử dụng bởisrc/phụ trợ/tối ưu hóa/path/costingize.c: Tìm nạp khối đĩa tuần tự có giá 1,0, tìm nạp không sau có chi phí ngẫu nhiên_page_cost và chi phí xử lý một chỉ kèo bóng đá cúp c2 Hàng thường nên được coi là CPU_INDEX_TUPER_COST (đó là một Tham số tối ưu hóa điều chỉnh người dùng). Ngoài ra, một bội số của cpu_operator_cost phải được tính cho bất kỳ Các nhà khai thác so sánh được gọi trong quá trình xử lý chỉ kèo bóng đá cúp c2 (đặc biệt đánh giá bản thân chỉ kèo bóng đá cúp c2).
Chi phí truy cập nên bao gồm tất cả các chi phí đĩa và CPU liên quan đến việc quét chỉ số, nhưng không phải là chi phí của lấy hoặc xử lý các hàng bảng chính được xác định bởi chỉ kèo bóng đá cúp c2.
The"kèo bóng đá cúp c2 phí khởi nghiệp"là một phần của tổng chi 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ỉ kèo bóng đá cúp c2, điều này có thể được coi là 0, Nhưng một loại chỉ kèo bóng đá cúp c2 với chi phí khởi động cao có thể muốn đặt nó khác không.
SymentSelectivity phải được đặt thành phân số ước tính của các hàng bảng chính sẽ được truy xuất trong chỉ kèo bóng đá cúp c2 quét. Trong trường hợp chỉ số mất, điều này thường sẽ cao hơn hơn một phần của các hàng thực sự vượt qua chất lượng đã cho điều kiện.
Chỉ kèo bóng đá cúp c2 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ỉ kèo bóng đá cúp c2 và bảng đặt hàng. Điều này được sử dụng để điều chỉnh ước tính cho chi phí của tìm nạp các hàng từ bảng chính.
Dự toán kèo bóng đá cúp c2 phí
Công cụ ước tính kèo bóng đá cúp c2 phí điển hình sẽ được tiến hành như sau:
11531_11755clauselist_selectivity ()
:
11858_11999
Ước tính số lượng hàng chỉ kèo bóng đá cúp c2 sẽ được truy cập Trong quá trình quét. Đối với nhiều loại chỉ kèo bóng đá cúp c2, điều này giống như indexSelectivity thời gian số lượng hàng trong chỉ kèo bóng đá cúp c2, nhưng Nó có thể là nhiều hơn. (Lưu ý rằng kích thước của chỉ kèo bóng đá cúp c2 trong các trang và Hàng có sẵn từ struct indexoptInfo.)
Ước tính số lượng trang chỉ kèo bóng đá cúp c2 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ỉ kèo bóng đá cúp c2 trong các trang.
Tính chi phí truy cập chỉ kèo bóng đá cúp c2. 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ỉ kèo bóng đá cúp c2 sẽ được đọc * tuần tự, vì vậy chúng có chi phí 1.0 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ỉ kèo bóng đá cúp c2 tại mỗi hàng chỉ kèo bóng đá cúp c2. * 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); *indexStartUpCost = index_qual_cost.startup; *indextotalcost = numIndExpages + .
13326_13555
Ví dụ về các chức năng ước tính kèo bóng đá cúp c2 phí có thể được tìm thấy trong.
Theo quy ước,PG_PROCkèo bóng đá cúp c2 cho MỘTAmcostestimateHàm sẽ hiển thị Tám đối số tất cả được tuyên bố làNội bộ(vì không có loại nào được biết đến SQL) và Loại trả về làvoid.