PostgreSQL: kèo bóng đá hôm | |||
---|---|---|---|
prev | UP | Chương 59. Định nghĩa giao diện phương thức truy cập kèo chấp bóng đá hôm nay | Tiếp theo |
TheAmcostestimate
Hàm được cung cấp thông tin mô tả việc quét chỉ mục có thể, bao gồm các danh sách nơi và thứ tự của các điều khoản đã được xác định là có thể sử dụng được với chỉ mục. Nó phải trả về các ước tính về chi phí truy cập chỉ mục và tính chọn lọc của các mệnh đề (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 chấp bóng đá hôm nay 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ó mộtAmcostestimate
Hàm là cho phép các phương thức truy cập chỉ mục cung cấp kiến thức cụ thể theo kiểu chỉ số, trong trường hợp có thể cải thiện các ước kèo chấp bóng đá hôm nay tiêu chuẩn.
mỗiAmcostestimate
Hàm phải có chữ ký:
Void Amcostestimate (Root PlannerInfo *, PATHPATH *PATH, Double Loop_Count, kèo chấp bóng đá hôm nay phí *IndexStartUpCost, kèo chấp bóng đá hôm nay phí *indextotalcost, Chọn lọc *indexSelectivity, Double *indexCorrelation);
Ba tham số đầu tiên là đầu vào:
Thông tin của người lập kế hoạch về truy vấn đang được xử lý.
Đường dẫn truy cập chỉ mục đang được xem xét. Tất cả các trường ngoại trừ các giá trị kèo chấp bóng đá hôm nay phí và chọn lọc đều hợp lệ.
11872_12160loop_countcó nghĩa là có thể phù hợp để cho phép một số hiệu ứng bộ đệm trên nhiều lần quét.
Bốn tham số cuối cùng là đầu ra qua từng tài liệu:
Đặt thành kèo chấp bóng đá hôm nay phí xử lý khởi động chỉ mục
Đặt thành tổng kèo chấp bóng đá hôm nay phí xử lý chỉ mục
Đặt thành kèo chấp bóng đá hôm nay chọn lọc
Đặt thành hệ số tương quan giữa thứ tự quét kèo chấp bóng đá hôm nay và thứ tự của bảng bên dưới
12895_13077
Chi phí truy cập chỉ mục phải được kèo chấp bóng đá hôm nay toán bằng các tham số được sử dụng bởisrc/phụ trợ/tối ưu hóa/path/costingize.cSEQ_PAGE_COST, Một lần tìm nạp không tiếp theo có kèo chấp bóng đá hôm nay phíngẫu nhiên_page_costvà kèo chấp bóng đá hôm nay phí xử lý một hàng chỉ ra thường được coi làCPU_INDEX_TUPE_COST. Ngoài ra, một bội số thích hợp củaCPU_OPERATOR_COSTnên được kèo chấp bóng đá hôm nay phí cho bất kỳ toán tử so sánh nào được gọi trong quá trình xử lý chỉ mục (đặc biệt là đánh giá của chính các chỉ mục).
kèo chấp bóng đá hôm nay phí truy cập nên bao gồm tất cả các kèo chấp bóng đá hôm nay phí đĩa và CPU liên quan đến việc quét chỉ mục, nhưngkhôngkèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay phí khởi nghiệp"là một phần của tổng kèo chấp bóng đá hôm nay 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 lấy dưới dạng 0, nhưng một loại chỉ mục có kèo chấp bóng đá hôm nay phí khởi động cao có thể muốn đặt nó khác.
TheindexSelectivitynên được đặt thành phần ước kèo chấp bóng đá hôm nay của các hàng bảng cha sẽ được truy xuất trong quá trình quét chỉ mục. Trong trường hợp truy vấn mất mát, điều này thường sẽ cao hơn tỷ lệ các hàng thực sự vượt qua các điều kiện chất lượng đã cho.
TheIndexCorrelationnên được đặt thành mối tương quan (nằm trong khoảng từ -1.0 đến 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 kèo chấp bóng đá hôm nay cho chi phí tìm nạp các hàng từ bảng cha.
Khiloop_countlớn hơn một, các số được trả về trung bình dự kiến cho bất kỳ một lần quét nào của kèo chấp bóng đá hôm nay.
Dự toán kèo chấp bóng đá hôm nay phí
Công cụ ước kèo chấp bóng đá hôm nay phí điển hình sẽ được tiến hành như sau:
Ước kèo chấp bóng đá hôm nay và trả về 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 trường hợp không có bất kỳ kiến thức cụ thể loại chỉ mục nào, hãy sử dụng hàm tối ưu hóa tiêu chuẩnclauselist_selectivity ()
:
15365_15579
Ước kèo chấp bóng đá hôm nay 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ưindexSelectivitynhân số lượng hàng trong kèo chấp bóng đá hôm nay, nhưng nó có thể nhiều hơn. (Lưu ý rằng kích thước của kèo chấp bóng đá hôm nay trong các trang và hàng có sẵn từpath- indexInfostruct.)
Ước kèo chấp bóng đá hôm nay số lượng trang chỉ mục sẽ được truy xuất trong quá trình quét. Đây có thể chỉ làindexSelectivitylần kích thước của kèo chấp bóng đá hôm nay trong các trang.
kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay 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, path- 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 chấp bóng đá hôm nay đến việc khấu hao các lần đọc chỉ mục trên các lần quét chỉ mục lặp lại.
Ước kèo chấp bóng đá hôm nay mối tương quan chỉ mục. Đối với một chỉ mục được đặt hàng đơn giản trên một trường duy nhất, điều này có thể được lấy từ pg_statistic. Nếu không biết mối tương quan, ước kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay phí có thể được tìm thấy trongsrc/backend/elils/adt/selfuncs.c.