Postgresql 9.0.23 Tài liệu | ||||
---|---|---|---|---|
prev | UP | Chương 11. Chỉ kèo bóng đá c1 | Tiếp theo |
Mặc dù chỉ kèo bóng đá c1 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 đá c1 nào thực sự là Đượ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ỉ số 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 việc này kèo bóng đá c1 đích được minh họa trongPostgreSQL:. 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 đá c1 trong một máy chủ đang chạy, như được mô tả trong11308_11322.
Rất khó để xây dựng một quy trình chung cho Xác định các chỉ kèo bóng đá c1 để tạo. Có một số Các trường hợp điển hình đã được thể hiện trong các ví dụ trong suốt các phần trước. Thử nghiệm tốt thường là cần thiết. Phần còn lại của phần này đưa ra một số mẹo cho điều đó:
Luôn chạyPhân tích11722_12200Phân tíchDo đó là a mất nguyên nhân. Nhìn thấyPhần 23.1.3vàPhần 23.1.5cho 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 cho Thiết lập các chỉ kèo bóng đá c1 sẽ cho bạn biết bạn cần chỉ kèo bóng đá c1 nào 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ỏ. Trong khi chọn 1000 trên 100000 hàng có thể là ứng cử viên Đối với một chỉ kèo bóng đá c1, việc chọn 1 trên 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 tuần tự tìm kiếm 1 trang đĩa.
Cũng cẩn thận khi tạo dữ liệu kiểm tra, thường là Không thể tránh khỏi khi ứng kèo bóng đá c1 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ự sắp xếp sẽ làm lệch các số liệu thống kê khỏi phân phối dữ liệu thực sẽ có.
Khi các chỉ kèo bóng đá c1 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ể biến Tắt các loại kế hoạch khác nhau (xemPhần 18.6.1). Chẳng hạn, tắt quét tuần tự (enable_seqscan) và vòng lặp lồng nhau Tham gia (enable_nestloop), đó là Các kế hoạch cơ bản nhất, sẽ buộc hệ thống sử dụng kế hoạch khác nhau. Nếu hệ thống vẫn chọn quét tuần tự hoặc tham gia vòng lặp lại sau đó có lẽ có một cơ bản hơn Lý do tại sao chỉ số không được sử dụng; Ví dụ, Điều kiện truy vấn không khớp với chỉ kèo bóng đá c1. (Loại truy vấn nào có thể sử dụng loại chỉ kèo bóng đá c1 nào được giải thích trước đây các phần.)
Nếu việc sử dụng chỉ kèo bóng đá c1 buộc sử dụng chỉ kèo bóng đá c1, thì có hai khả năng: hệ thống là đúng và sử dụng Chỉ kèo bóng đá c1 thực sự không phù hợp, hoặc ước tính chi phí của 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 đá c1. TheGiải thích Phân tíchLệnh có thể hữu ích đây.
Nếu hóa ra ước tính chi phí là sai, ở đó là, một lần nữa, hai khả năng. Tổng chi phí được tính toán từ chi phí trên mỗi hàng của mỗi nút kế hoạch nhiều lần Ước tính chọn lọc của nút kế hoạch. Các chi phí ước tính Đối với các nút kế hoạch có thể được điều kèo bóng đá c1nh thông qua các tham số thời gian chạy (được mô tả trongPhần 18.6.2). Một ước tính chọn lọc không chính xác là do Thống kê không đủ. Có thể cải thiện điều này Bằng cách điều kèo bóng đá c1nh các tham số thu thập thống kê (xemBảng thay đổi).
15298_15487PostgreSQLNhà phát triển đến kèo bóng đá c1 vấn đề.