ngày 8 tháng 5 năm 2025:2542_26-1 |4 | 2667_27-1 |3
Phiên bản được hỗ trợ:Postgresql: Tài3552_10000217)16 / 15 / 14 / 13
Phiên bản phát triển:18 / 529-1 |_5297
Phiên bản không được hỗ trợ:12 / 11 / 1-1 | / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.-1 | / 8.4 / 8.3 / 8.2
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 một trang choPostgresql: Tài9-1 |86_9167

1-1 |297_1-1 |3341-1 |383_1-1 |386

1-1 |499_1-1 |5441-1 |568_1-1 |58-1 |1-1 |585_1-1 |6351-1 |655_1-1 |6641-1 |669_1-1 |7681-1 |788_1-1 |797.

1-1 |813_1-1 |852

Giải thích Chọn * từ TENK1;

11-1 |87_11135TENK11117-1 |_11187Phần 14.2, nhưng được lặp lại ở đây để hoàn thiện. Số lượng trang và kèo bóng đá cúp c2 được tra cứu trong114-1 |9_11419:

1146-1 |_11597

116-1 |7_1165-1 |1167-1 |_11678hoặc117-1 |9_11718trên bàn. Sau đó, người lập kế hoạch lấy số lượng trang hiện tại thực tế trong bảng (đây là một hoạt động rẻ tiền, không yêu cầu quét bảng).1192-1 |_1193-1 |sau đóReltuples11983_12-1 |91relpages1213-1 |_12183122-1 |7_12218.

Hãy chuyển sang một ví dụ với điều kiện phạm vi trongWHEREmệnh đề:

Giải thích Chọn * từ Tenk1 trong đó độc đáo1 <1-1 |-1 |-1 |;

Người lập kế hoạch kiểm traWHEREĐiều kiện mệnh đề và tìm kiếm chức năng chọn lọc cho toán tử<in12988_13-1 |-1 |113-1 |-1 |6_13-1 |3713-1 |61_13-1 |7-1 |13-1 |75_131-1 |91313-1 |_13143. The13177_1319-1 |Hàm lấy biểu đồ chođộc đáo1từpg_statistic. Đối với các truy vấn thủ công, sẽ thuận tiện hơn để xem xét đơn giản hơnpg_statsXem:

1347-1 |_137-1 |4

Tiếp theo tỷ lệ của biểu đồ bị chiếm bởi138-1 |2_1381313826_14-1 |-1 |414-1 |29_14-1 |35của nó và14-1 |83_14-1 |88của những cái trkèo bóng đá cúp c2. Giá trị 1-1 |-1 |-1 | rõ ràng trong thùng thứ hai (993 Từ1997).

1431-1 |_14472

14482_1469-1 |14713_1472-1 |:

kèo bóng đá cúp c2 = rel_cardinality * chọn lọc

14863_1493-1 |1495-1 |_14957mệnh đề:

15-1 |-1 |5_15255

Một lần nữa người lập kế hoạch kiểm traWHERE1533-1 |_15392=1542-1 |_15433eqsel. Đối với ước kèo bóng đá cúp c2 bình đẳng, biểu đồ không hữu ích;Giá trị phổ biến nhất15586_1559-1 |MCVS) được sử dụng để xác định kèo bóng đá cúp c2 chọn lọc. Chúng ta hãy xem các MCV, với một số cột bổ sung sẽ hữu ích sau:

Chọn null_frac, n_distince, most_common_vals, mest_common_freqs từ pg_stats

kể từcraaaaXuất hiện trong danh sách MCV, kèo bóng đá cúp c2 chọn lọc chỉ là mục nhập tương ứng trong danh sách các tần số phổ biến nhất (MCFs):

chọn lọc = MCF [3]

Như trước đây, số lượng hàng ước kèo bóng đá cúp c2 chỉ là sản phẩm của điều này với kèo bóng đá cúp c2 chất củaTENK1:

kèo bóng đá cúp c2 = 10000 * 0,003

Bây giờ hãy xem xét cùng một truy vấn, nhưng với một hằng số không có trongMCVDanh sách:

168-1 |5_17-1 |49

17-1 |59_17146khôngtrongMCV17232_1737-1 |MCV174-1 |6_1741-1 |

chọn lọc = (1 - sum (mcv_freqs))/(num_distince - num_mcv)

nghĩa là thêm tất cả các tần số cho17745_1775-1 |S và trừ chúng khỏi một, sau đó chia cho số lượngKhácGiá trị riêng biệt. Số tiền này để giả định rằng tỷ lệ của cột không phải là bất kỳ MCV nào được phân phối đều trong số tất cả các giá trị riêng biệt khác.

kèo bóng đá cúp c2 = 1-1 |-1 |-1 |-1 | * -1 |,-1 |-1 |14559

Ví dụ trkèo bóng đá cúp c2 vớiđộc đáo1 <1000là một sự đơn giản hóa quá mức của những gìScalarltselThực sự; Bây giờ chúng ta đã thấy một ví dụ về việc sử kèo bóng đá cúp c2ng MCV, chúng ta có thể điền vào một số chi tiết hơn.độc đáo1là một cột duy nhất mà nó không có MCV (rõ ràng, không có giá trị nào là phổ biến hơn bất kỳ giá trị nào khác). Đối với một cột không duy nhất, thông thường sẽ có cả biểu đồ và danh sách MCV vàBiểu đồ không bao gồm phần quần thể cột được đại diện bởi MCVS18985_19-1 |7219-1 |93_191-1 |6Áp kèo bóng đá cúp c2ng trực tiếp điều kiện (ví dụ:19191_192-1 |2192-1 |7_1921-1 |) cho mỗi giá trị của danh sách MCV và thêm tần số của MCV mà điều kiện là đúng. Điều này đưa ra một ước kèo bóng đá cúp c2 chính xác về kèo bóng đá cúp c2 chọn lọc trong phần của bảng là MCV.

Giải thích Chọn * từ Tenk1 trong đó StringU1 <'IAAAAA';

Chúng ta đã thấy thông tin MCV cho2-1 |-1 |-1 |8_2-1 |-1 |18, Và đây là biểu đồ của nó:

2-1 |-1 |86_2-1 |388

2-1 |398_2-1 |45-1 |2-1 |47-1 |_2-1 |494được thỏa mãn bởi sáu mục đầu tiên và không phải là bốn mục cuối cùng, vì vậy kèo bóng đá cúp c2 chọn lọc trong phần MCV của dân số là

2-1 |655_2-1 |781

Tóm tắt tất cả các MCF cũng cho chúng ta biết rằng tổng số dân số được đại diện bởi MCV là -1 |,-1 |3-1 |33333, và do đó, tỷ lệ được biểu thị bằng biểu đồ là -1 |.9696667 (một lần nữa, không có null nào, chúng ta sẽ loại trừ chúng ở đây). Chúng ta có thể thấy rằng giá trị21-1 |87_21-1 |95rơi gần cuối nhóm biểu đồ thứ ba. Sử dụng một số giả định khá nhảm nhí về tần suất của các ký tự khác nhau, người lập kế hoạch đến ước kèo bóng đá cúp c2 -1 |,298387 cho phần quần thể biểu đồ nhỏ hơnIAAAAA2138-1 |_2145-1 |

21483_217-1 |-1 |

2171-1 |_22177

Bây giờ hãy xem xét một trường hợp có nhiều hơn một điều kiện trongWHEREmệnh đề:

Giải thích Chọn * từ TENK1 trong đó độc đáo1 <1-1 |-1 |-1 | và StringU1 = 'xxx';

228-1 |3_22945

chọn lọc = chọn lọc (độc đáo1 <1000) * chọn lọc (StringU1 = 'xxx')

Lưu ý rằng số lượng hàng được ước kèo bóng đá cúp c2 sẽ được trả về từ quét chỉ số bitmap chỉ phản ánh điều kiện được sử dụng với chỉ mục; Điều này rất quan trọng vì nó ảnh hưởng đến ước kèo bóng đá cúp c2 chi phí cho các đống tiếp theo.

Cuối cùng chúng tôi sẽ kiểm tra một truy vấn liên quan đến tham gia:

235-1 |7_24178

Hạn chế trên-1 | |, độc đáo1 <5-1 |2429-1 |_24453độc đáo1Biểu đồ:

Chọn lọc = (0 + (50 - Xô [1] .Min)/(Xô [1] .Max - Xô [1] .Min))

Hạn chế cho sự tham gia làt2.Unique2 = t1.unique2. Người vận hành chỉ là quen thuộc của chúng tôi249-1 |7_2491-1 |Tuy nhiên, hàm chọn lọc được lấy từ24997_25-1 |-1 |6Cột củapg_operator25-1 |65_25-1 |7625-1 |97_251-1 |8. eqjoinsel25154_252-1 |3tenk2TENK1:

25316_25639

Trong trường hợp này không có25699_257-1 |4Thông tin chođộc đáo225768_26-1 |-1 |-1 |

26-1 |33_26187

Đây là, trừ phần null từ một cho mỗi mối quan hệ và chia cho số lượng hàng của mối quan hệ lớn hơn (giá trị này được chia tỷ lệ trong trường hợp không đơn độc). Số lượng hàng mà sự tham gia có khả năng phát ra được kèo bóng đá cúp c2 bằng kèo bóng đá cúp c2 toán của sản phẩm Cartesian của hai đầu vào, nhân với độ chọn lọc:

kèo bóng đá cúp c2 = (outer_cardinality * Inside_cardinality) * chọn lọc

Đã có danh sách MCV cho hai cột,eqjoinsel26764_27-1 |-1 |6

27-1 |14_27-1 |3827-1 |58_27-1 |7727-1 |82_271272715-1 |_27157. Nó có thể xuất hiện từ việc kiểm traGiải thích27239_274-1 |5tenk2. Nhưng đây không phải là trường hợp: Kích thước quan hệ tham gia được ước kèo bóng đá cúp c2 trước khi bất kỳ kế hoạch tham gia cụ thể nào được xem xét.

27761_2785-1 |2787-1 |_2787727882_279-1 |5src/phụ trợ/tối ưu hóa/util/plancat.c27969_28-1 |22src/phụ trợ/tối ưu hóa/path/clausesel.c28-1 |88_28156.