Các tham số cấu hình này cung cấp một phương pháp thô để ảnh hưởng đến các soi kèo bóng đá truoctran được chọn bởi trình tối ưu hóa truy vấn. Nếu gói mặc định được chọn bởi trình tối ưu hóa cho một truy vấn cụ thể không tối ưu, thìtạm thờiGiải pháp là sử dụng một trong các tham số cấu hình này để buộc trình tối ưu hóa chọn một gói khác. Những cách tốt hơn để cải thiện chất lượng của các kế soi kèo bóng đá truoctran được chọn bởi trình tối ưu hóa bao gồm điều chỉnh các hằng số chi phí kế soi kèo bóng đá truoctran (xemPhần 19.7.2), ChạyPhân tíchtheo cách thủ công, tăng giá trị củadefault_statistic_targetTham số cấu hình và tăng số lượng thống kê được thu thập cho các cột cụ thể bằng cách sử dụngThay đổi bảng thống kê
.
enable_bitmapscan
(Boolean
) Cho phép hoặc vô hiệu hóa việc sử dụng các loại kế hoạch Bitmap-Scan của soi kèo bóng đá truoctran. Mặc định làtrên
.
enable_gathermerge
(Boolean
)Cho phép hoặc vô hiệu hóa việc sử dụng các loại kế hoạch hợp nhất của soi kèo bóng đá truoctran. Mặc định làtrên
.
enable_hashagg
(Boolean
)cho phép hoặc vô hiệu hóa việc sử dụng các loại kế hoạch tổng hợp băm của người lập soi kèo bóng đá truoctran. Mặc định làtrên
.
enable_hashjoin
(Boolean
)Cho phép hoặc vô hiệu hóa việc sử dụng các loại kế hoạch băm của người lập soi kèo bóng đá truoctran. Mặc định làtrên
.
enable_indexscan
(Boolean
) Cho phép hoặc vô hiệu hóa việc sử dụng các loại kế soi kèo bóng đá truoctran quét chỉ mục. Mặc định làtrên
.
enable_indexonlyscan
(Boolean
)14252_14333Phần 11.11). Mặc định làtrên
.
enable_m vật liệu
(Boolean
)14735_15009trên
.
enable_mergejoin
(Boolean
)Cho phép hoặc vô hiệu hóa việc sử dụng các loại kế hoạch hợp nhất của soi kèo bóng đá truoctran. Mặc định làtrên
.
enable_nestloop
(Boolean
)cho phép hoặc vô hiệu hóa việc sử dụng các kế soi kèo bóng đá truoctran tham gia vòng lặp lồng nhau của người lập kế soi kèo bóng đá truoctran. Không thể ngăn chặn hoàn toàn các vòng lặp lồng nhau, nhưng biến biến này không khuyến khích người lập kế soi kèo bóng đá truoctran sử dụng một nếu có các phương pháp khác có sẵn. Mặc định làtrên
.
enable_seqscan
(Boolean
) Cho phép hoặc vô hiệu hóa việc sử dụng các loại kế soi kèo bóng đá truoctran quét tuần tự của Truy vấn. Không thể triệt tiêu hoàn toàn các lần quét tuần tự, nhưng biến biến này không khuyến khích người lập kế soi kèo bóng đá truoctran sử dụng một nếu có các phương pháp khác có sẵn. Mặc định làtrên
.
enable_sort
(Boolean
)Cho phép hoặc vô hiệu hóa việc sử dụng các bước sắp xếp rõ ràng của soi kèo bóng đá truoctran. Không thể triệt tiêu các loại rõ ràng hoàn toàn, nhưng tắt biến này không khuyến khích người lập kế hoạch sử dụng một loại nếu có các phương pháp khác có sẵn. Mặc định làtrên
.
enable_tidscan
(Boolean
)cho phép hoặc vô hiệu hóa việc sử dụng của người lập soi kèo bóng đá truoctrantidCác loại kế soi kèo bóng đá truoctran quét. Mặc định làtrên
.
Thechi phíCác biến được mô tả trong phần này được đo trên thang điểm tùy ý. Chỉ có giá trị tương đối của chúng quan trọng, do đó việc mở rộng tất cả chúng lên hoặc giảm theo cùng một yếu tố sẽ dẫn đến không có thay đổi trong các lựa chọn của người lập kế soi kèo bóng đá truoctran. Theo mặc định, các biến chi phí này dựa trên chi phí tìm nạp trang tuần tự; đó là,SEQ_PAGE_COST
được đặt thành thông thường1.0
Và các biến chi phí khác được đặt với tham chiếu đến đó. Nhưng bạn có thể sử dụng một thang đo khác nếu bạn thích, chẳng hạn như thời gian thực hiện thực tế tính bằng mili giây trên một máy cụ thể.
Thật không may, không có phương pháp được xác định rõ ràng để xác định các giá trị lý tưởng cho các biến chi phí. Chúng được coi là trung bình tốt nhất trên toàn bộ hỗn hợp các soi kèo bóng đá truoctran mà một cài đặt cụ thể sẽ nhận được. Điều này có nghĩa là việc thay đổi chúng trên cơ sở chỉ một vài thí nghiệm là rất rủi ro.
SEQ_PAGE_COST
(Điểm nổi
)Đặt ước tính của người lập kế soi kèo bóng đá truoctran về chi phí của một trang Disk Fetch là một phần của một loạt các lần tìm kiếm tuần tự. Mặc định là 1.0. Giá trị này có thể được ghi đè cho các bảng và chỉ mục trong một không gian bảng cụ thể bằng cách đặt tham số không gian bảng cùng tên (xemthay đổi không gian bảng).
ngẫu nhiên_page_cost
(Điểm nổi
)19560_19800thay đổi không gian bảng).
Giảm giá trị này liên quan đếnSEQ_PAGE_COST
sẽ khiến hệ thống thích quét chỉ mục; Nâng cao nó sẽ làm cho quét chỉ số trông tương đối đắt hơn. Bạn có thể tăng hoặc hạ cả hai giá trị lại với nhau để thay đổi tầm quan trọng của chi phí I/O của đĩa liên quan đến chi phí CPU, được mô tả bởi các tham số sau.
soi kèo bóng đá truoctran cập ngẫu nhiên vào lưu trữ đĩa cơ thông thường đắt hơn nhiều so với soi kèo bóng đá truoctran cập tuần tự bốn lần. Tuy nhiên, mặc định thấp hơn được sử dụng (4.0) vì phần lớn các quyền soi kèo bóng đá truoctran cập ngẫu nhiên vào đĩa, chẳng hạn như đọc được lập chỉ mục, được coi là có trong bộ đệm. Giá trị mặc định có thể được coi là mô hình hóa soi kèo bóng đá truoctran cập ngẫu nhiên chậm hơn 40 lần so với tuần tự, trong khi dự kiến 90% số lần đọc ngẫu nhiên sẽ được lưu trữ.
20689_212081.1
.
Mặc dù hệ thống sẽ cho phép bạn đặtngẫu nhiên_page_cost
đến nhỏ hơnSEQ_PAGE_COST
21430_21819
CPU_Tuple_Cost
(Điểm nổi
)Đặt ước tính của người lập kế soi kèo bóng đá truoctran về chi phí xử lý mỗi hàng trong một truy vấn. Mặc định là 0,01.
CPU_INDEX_TUPE_COST
(Điểm nổi
)22429_22545
CPU_OPERATOR_COST
(Điểm nổi
)Đặt ước tính của người lập kế soi kèo bóng đá truoctran về chi phí xử lý mỗi toán tử hoặc chức năng được thực hiện trong một truy vấn. Mặc định là 0,0025.
song song_setup_cost
(Điểm nổi
)Đặt ước tính của người lập kế soi kèo bóng đá truoctran về chi phí khởi động các quy trình công nhân song song. Mặc định là 1000.
song song_tuple_cost
(Điểm nổi
)Đặt ước tính của người lập kế soi kèo bóng đá truoctran về chi phí chuyển một tuple từ quy trình công nhân song song sang quy trình khác. Mặc định là 0,1.
MIN_PARALLED_TABLE_SCAN_SIZE
(Số nguyên
)23941_242668MB
).
MIN_PARALLED_INDEX_SCAN_SIZE
(Số nguyên
)Đặt lượng dữ liệu chỉ mục tối thiểu phải được quét để xem xét quét song song. Lưu ý rằng quét chỉ mục song song thường sẽ không chạm vào toàn bộ chỉ mục; Đó là số lượng các trang mà người lập kế soi kèo bóng đá truoctran tin rằng sẽ thực sự được chạm vào bằng cách quét có liên quan. Mặc định là 512 kilobyte (512KB
).
hiệu quả_cache_size
(Số nguyên
)25173_25529PostgreSQLbộ đệm được chia sẻ và phần bộ đệm đĩa của hạt nhân sẽ được sử dụng choPOSTGRESQLTệp dữ liệu, mặc dù một số dữ liệu có thể tồn tại ở cả hai nơi. Ngoài ra, hãy tính đến số lượng soi kèo bóng đá truoctran đồng thời dự kiến trên các bảng khác nhau, vì chúng sẽ phải chia sẻ không gian có sẵn. Tham số này không ảnh hưởng đến kích thước của bộ nhớ chia sẻ được phân bổ bởiPostgreSQL26006_261984GB
).
26432_26758Chương 59.
geqo
(Boolean
) cho phép hoặc vô hiệu hóa tối ưu hóa soi kèo bóng đá truoctran di truyền. Đây là trên mặc định. Nó thường là tốt nhất để không tắt nó trong sản xuất; Thegeqo_threshold
Biến cung cấp kiểm soát chi tiết hơn của GEQO.
geqo_threshold
(Số nguyên
)Sử dụng Tối ưu hóa truy vấn di truyền để lập soi kèo bóng đá truoctran với ít nhất là nhiềutừ
Các mặt hàng liên quan. (Lưu ý rằng ATham gia bên ngoài đầy đủ
Xây dựng chỉ có mộttừ
Mục.) Mặc định là 12. Đối với các truy vấn đơn giản hơn, thường tốt nhất là sử dụng kế soi kèo bóng đá truoctran tìm kiếm toàn diện, thông thường, nhưng đối với các truy vấn có nhiều bảng, tìm kiếm toàn diện mất quá nhiều thời gian, thường dài hơn so với hình phạt thực hiện kế soi kèo bóng đá truoctran dưới mức tối ưu. Do đó, một ngưỡng về kích thước của truy vấn là một cách thuận tiện để quản lý việc sử dụng geqo.
geqo_effort
(Số nguyên
)Kiểm soát sự đánh đổi giữa thời gian lập kế hoạch và chất lượng soi kèo bóng đá truoctran trong GEQO. Biến này phải là một số nguyên trong phạm vi từ 1 đến 10. Giá trị mặc định là năm. Các giá trị lớn hơn làm tăng thời gian thực hiện lập soi kèo bóng đá truoctran, nhưng cũng tăng khả năng một soi kèo bóng đá truoctran hiệu quả sẽ được chọn.
geqo_effort
28909_29133
geqo_pool_size
(Số nguyên
)Kiểm soát kích thước hồ bơi được GEQO sử dụng, đó là số lượng cá nhân trong quần thể di soi kèo bóng đá truoctranền. Nó phải có ít nhất hai và các giá trị hữu ích thường là 100 đến 1000. Nếu nó được đặt thành 0 (cài đặt mặc định) thì một giá trị phù hợp được chọn dựa trêngeqo_effort
và số lượng bảng trong soi kèo bóng đá truoctran.
geqo_generations
(Số nguyên
)Kiểm soát số lượng thế hệ được GEQO sử dụng, đó là số lần lặp của thuật toán. Nó phải có ít nhất một, và các giá trị hữu ích nằm trong cùng phạm vi với kích thước nhóm. Nếu nó được đặt thành 0 (cài đặt mặc định) thì giá trị phù hợp được chọn dựa trêngeqo_pool_size
.
geqo_selection_bias
(Điểm nổi
)30514_30685
geqo_seed
(Điểm nổi
)Điều khiển giá trị ban đầu của trình tạo số ngẫu nhiên được GEQO sử dụng để chọn các đường dẫn ngẫu nhiên thông qua không gian tìm kiếm thứ tự tham gia. Giá trị có thể nằm trong khoảng từ 0 (mặc định) đến một. Thay đổi giá trị thay đổi tập hợp các đường dẫn nối được khám phá và có thể dẫn đến một đường dẫn tốt hơn tốt hơn hoặc tệ hơn được tìm thấy.
default_statistic_target
(Số nguyên
)Đặt mục tiêu thống kê mặc định cho các cột bảng mà không có mục tiêu cụ thể cột thông quaThay đổi bảng thống kê
. Giá trị lớn hơn tăng thời gian cần thiết để làmPhân tích
, nhưng có thể cải thiện chất lượng của ước tính của người lập kế soi kèo bóng đá truoctran. Mặc định là 100. Để biết thêm thông tin về việc sử dụng số liệu thống kê củaPostgreSQLTruy vấn kế soi kèo bóng đá truoctran, tham khảoPhần 14.2.
(enum
) Kiểm soát việc sử dụng các ràng buộc bảng của người lập soi kèo bóng đá truoctran để tối ưu hóa các truy vấn. Các giá trị được phép củaurdaint_exclusion
làtrên
(kiểm tra các ràng buộc cho tất cả các bảng),TẮT
(không bao giờ kiểm tra các ràng buộc) vàphân vùng
(Kiểm tra các ràng buộc chỉ cho các bảng con kế thừa vàLiên minh tất cả
33022_33038Phân vùng
là cài đặt mặc định. Nó thường được sử dụng với các bảng kế thừa và phân vùng để cải thiện hiệu suất.
Khi tham số này cho phép nó cho một bảng cụ thể, trình lập kế soi kèo bóng đá truoctran so sánh các điều kiện truy vấn với bảngKiểm tra
Các ràng buộc và bỏ qua các bảng quét trong đó các điều kiện mâu thuẫn với các ràng buộc. Ví dụ:
Tạo cha mẹ (số nguyên khóa, ...); Tạo Bảng trẻ em1000 (Kiểm tra (khóa giữa 1000 đến 1999)) kế thừa (cha mẹ); Tạo bảng con2000 (kiểm tra (khóa giữa 2000 đến 2999)) kế thừa (cha mẹ); ... Chọn * từ cha mẹ trong đó phím = 2400;
với Bật loại loại trừ bị ràng buộc, thisChọn
sẽ không quét33826_33837
Tất cả, cải thiện hiệu suất.
Hiện tại, loại trừ ràng buộc chỉ được bật theo mặc định cho các trường hợp thường được sử dụng để thực hiện phân vùng bảng. Bật nó lên cho tất cả các bảng áp đặt thêm chi phí lập kế soi kèo bóng đá truoctran khá đáng chú ý trên các truy vấn đơn giản và hầu hết sẽ không mang lại lợi ích cho các truy vấn đơn giản. Nếu bạn không có bảng được phân vùng, bạn có thể muốn tắt nó hoàn toàn.
Tham khảoPhần 5.10.4Để biết thêm thông tin về việc sử dụng loại trừ và phân vùng ràng buộc.
con trỏ_tuple_fraction
(Điểm nổi
)Đặt ước tính của người lập kế soi kèo bóng đá truoctran về tỷ lệ các hàng của con trỏ sẽ được truy xuất. Mặc định là 0,1. Các giá trị nhỏ hơn của cài đặt này Xu hướng người lập kế soi kèo bóng đá truoctran đối với việc sử dụngBắt đầu nhanhHàngKế soi kèo bóng đá truoctran cho con trỏ, sẽ truy xuất một vài hàng đầu tiên một cách nhanh chóng trong khi có lẽ mất nhiều thời gian để tìm nạp tất cả các hàng. Giá trị lớn hơn đặt trọng tâm hơn vào tổng thời gian ước tính. Ở cài đặt tối đa là 1.0, con trỏ được lên kế soi kèo bóng đá truoctran chính xác giống như các truy vấn thông thường, chỉ xem xét tổng thời gian ước tính và không bao lâu các hàng đầu tiên có thể được phân phối.
35426_35447
(Số nguyên
)Người lập kế soi kèo bóng đá truoctran sẽ hợp nhất các truy vấn phụ thành các truy vấn trên nếu kết quảtừ
Danh sách sẽ không có nhiều hơn nhiều mục này. Các giá trị nhỏ hơn làm giảm thời gian lập kế hoạch nhưng có thể mang lại các soi kèo bóng đá truoctran kém hơn. Mặc định là tám. Để biết thêm thông tin, xemPhần 14.3.
Đặt giá trị này thànhgeqo_thresholdhoặc nhiều hơn có thể kích hoạt việc sử dụng kế soi kèo bóng đá truoctran GEQO, dẫn đến các kế soi kèo bóng đá truoctran không tối ưu. Nhìn thấyPhần 19.7.3.
tham gia_collapse_limit
(Số nguyên
)Người lập kế soi kèo bóng đá truoctran sẽ viết lại rõ ràngtham gia
Colutucts (ngoại trừTham gia đầy đủ
s) vào danh sáchtừ
Các mục bất cứ khi nào một danh sách không nhiều hơn nhiều mục này sẽ dẫn đến. Các giá trị nhỏ hơn làm giảm thời gian lập kế hoạch nhưng có thể mang lại các soi kèo bóng đá truoctran kém hơn.
Theo mặc định, biến này được đặt giống nhưfrom_collapse_limit
, phù hợp cho hầu hết các mục đích sử dụng. Đặt nó thành 1 ngăn chặn bất kỳ sắp xếp lại rõ ràngtham gia
s. Do đó, thứ tự tham gia rõ ràng được chỉ định trong truy vấn sẽ là thứ tự thực tế trong đó các mối quan hệ được tham gia. Vì trình lập soi kèo bóng đá truoctran không phải lúc nào cũng chọn thứ tự tham gia tối ưu, người dùng nâng cao có thể chọn tạm thời đặt biến này thành 1, sau đó chỉ định thứ tự tham gia mà họ mong muốn. Để biết thêm thông tin, xemPhần 14.3.
Đặt giá trị này thànhgeqo_thresholdhoặc nhiều hơn có thể kích hoạt việc sử dụng kế soi kèo bóng đá truoctran GEQO, dẫn đến các kế soi kèo bóng đá truoctran không tối ưu. Nhìn thấyPhần 19.7.3.
Force_Parallel_Mode
(enum
)Cho phép sử dụng các soi kèo bóng đá truoctran song song cho mục đích thử nghiệm ngay cả trong trường hợp không có lợi ích hiệu suất nào được mong đợi. Các giá trị được phép củaForce_Parallel_Mode
làTẮT
(Chỉ sử dụng chế độ song song khi dự kiến sẽ cải thiện hiệu suất),trên
(soi kèo bóng đá truoctran song song cho tất cả các soi kèo bóng đá truoctran mà nó được cho là an toàn) vàThủy loạn
(nhưtrên
, nhưng với các thay đổi hành vi bổ sung như được giải thích bên dưới).
Cụ thể hơn, đặt giá trị này thànhtrên
sẽ thêm ATập hợp
nút lên đầu bất kỳ soi kèo bóng đá truoctran nào mà điều này có vẻ an toàn, để truy vấn chạy bên trong một công nhân song song. Ngay cả khi một công nhân song song không có sẵn hoặc không thể được sử dụng, các hoạt động như bắt đầu phép trừ sẽ bị cấm trong bối cảnh truy vấn song song sẽ bị cấm trừ khi người lập kế hoạch tin rằng điều này sẽ khiến truy vấn không thành công. Nếu các lỗi hoặc kết quả bất ngờ xảy ra khi tùy chọn này được đặt, một số chức năng được sử dụng bởi truy vấn có thể cần phải được đánh dấusong song không an toàn
(hoặc, có thể,Hạn chế song song
).
Đặt giá trị này thànhThủy loạn
Có tất cả các hiệu ứng giống như đặt nó thànhtrên
cộng với một số hiệu ứng bổ sung nhằm tạo điều kiện kiểm tra hồi quy tự động. Thông thường, các thông báo từ một nhân viên song song bao gồm một dòng ngữ cảnh cho biết rằng, nhưng một cài đặt củaThủy loạn
triệt tiêu dòng này sao cho đầu ra giống như trong thực thi không song song. Ngoài ra,Tập hợp
Các nút được thêm vào các kế soi kèo bóng đá truoctran theo cài đặt này được ẩn trongGiải thích
đầu ra để đầu ra khớp với những gì sẽ thu được nếu cài đặt này được bậtTẮT
.