Phiên bản được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.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 chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

11.12. Kiểm tra sử dụng chỉ kèo bóng đá pháp

Mặc dù chỉ kèo bóng đá pháp trongPostgreSQLKhông cần bảo trì hoặc điều chỉnh, điều quan trọng là phải kiểm tra các chỉ kèo bóng đá pháp nào thực sự được sử dụng bởi khối lượng công việc truy vấn thực tế. Kiểm tra sử dụng chỉ kèo bóng đá pháp cho một truy vấn riêng lẻ được thực hiện vớiGiải thíchlệnh; Ứng dụng của nó cho kèo bóng đá pháp đích này được minh họa trongPhần 14.1. Cũng có thể thu thập số liệu thống kê tổng thể về việc sử dụng chỉ kèo bóng đá pháp trong một máy chủ đang chạy, như được mô tả trongPhần 27.2.

Rất khó để xây dựng một quy trình chung để xác định các chỉ kèo bóng đá pháp nào sẽ tạo. Có một số trường hợp điển hình đã được thể hiện trong các ví dụ trong các phần trước.

  • Luôn chạyPhân tíchĐầu tiên. Lệnh này thu thập số liệu thống kê về phân phối các giá trị trong bảng.Phân tíchDo đó là một nguyên nhân bị mất. Nhìn thấyPhần 24.1.3Phần 24.1.6Để biết thêm thông tin.

  • Sử dụng dữ liệu thực để thử nghiệm. Sử dụng dữ liệu kiểm tra để thiết lập các chỉ kèo bóng đá pháp sẽ cho bạn biết bạn cần chỉ kèo bóng đá pháp nào cho dữ liệu kiểm tra, nhưng đó là tất cả.

    Đặc biệt nghiêm trọng khi sử dụng các bộ dữ liệu thử nghiệm rất nhỏ. Mặc dù chọn 1000 trên 100000 hàng có thể là ứng cử viên cho một chỉ kèo bóng đá pháp, việc chọn 1 trong số 100 hàng sẽ khó có, bởi vì 100 hàng có thể phù hợp trong một trang đĩa duy nhất và không có kế hoạch nào có thể đánh bại liên tục trang 1 đĩa.

    Cũng cẩn thận khi tạo dữ liệu thử nghiệm, thường không thể tránh khỏi khi ứng kèo bóng đá pháp chưa được sản xuất. Các giá trị rất giống nhau, hoàn toàn ngẫu nhiên hoặc được chèn theo thứ tự được sắp xếp sẽ làm lệch số liệu thống kê ra khỏi phân phối mà dữ liệu thực sẽ có.

  • Khi các chỉ kèo bóng đá pháp không được sử dụng, nó có thể hữu ích để kiểm tra để buộc sử dụng chúng. Có các tham số thời gian chạy có thể tắt các loại kế hoạch khác nhau (xemPhần 19.7.1). Chẳng hạn, tắt quét tuần tự (enable_seqscan) và các vòng lặp lồng nhau (enable_nestloop), là kế hoạch cơ bản nhất, sẽ buộc hệ thống sử kèo bóng đá pháp một kế hoạch khác. Nếu hệ thống vẫn chọn quét liên tiếp hoặc tham gia vòng lặp lồng nhau thì có lẽ có một lý do cơ bản hơn tại sao chỉ số không được sử kèo bóng đá pháp;

  • Nếu việc sử dụng chỉ kèo bóng đá pháp buộc sử dụng chỉ kèo bóng đá pháp, thì có hai khả năng: hệ thống là đúng và sử dụng chỉ kèo bóng đá pháp thực sự không phù hợp hoặc ước tính chi phí của các kế hoạch truy vấn không phản ánh thực tế. Vì vậy, bạn nên thời gian truy vấn của bạn có và không có chỉ kèo bóng đá pháp.Giải thích Phân tíchLệnh có thể hữu ích ở đây.

  • Nếu hóa ra các ước tính chi phí là sai, một lần nữa, có hai khả năng. Tổng chi phí được tính từ chi phí trên mỗi hàng của mỗi nút kế hoạch nhân ước ước tính chọn lọc của nút kế hoạch.Phần 19.7.2). Ước tính chọn lọc không chính xác là do số liệu thống kê không đủ.Bảng thay đổi).

    Nếu bạn không thành công trong việc điều chỉnh các chi phí phù hợp hơn, thì bạn có thể phải dùng đến việc sử kèo bóng đá pháp chỉ số một cách rõ ràng. Bạn cũng có thể muốn liên hệ vớiPostgreSQLNhà phát triển kiểm kèo bóng đá pháp vấn đề.