2008-08-14 24 views
8

Thông thường khi tôi tạo chỉ mục trên bảng, tôi thường đoán những gì Fill Factor nên dựa trên một đoán được giáo dục về cách bảng sẽ được sử dụng (nhiều lần đọc hoặc viết nhiều).Làm thế nào để bạn đo lường giá trị SQL Fill Factor

Có cách nào khoa học hơn để xác định giá trị Fill Factor chính xác hơn không?

Trả lời

12

Bạn có thể thử chạy một danh sách lớn các hoạt động thực tế và xem hàng đợi IO cho các hành động khác nhau.

Có rất nhiều biến chi phối các biến đó, chẳng hạn như kích thước của mỗi hàng và số lần viết so với lượt đọc.

Về cơ bản: hệ số lấp đầy cao = đọc nhanh hơn, viết thấp = nhanh hơn.

Tuy nhiên nó không phải là khá đơn giản, như hầu như tất cả các ghi sẽ là một tập con của hàng cần phải được tìm kiếm đầu tiên.

Ví dụ: đặt hệ số lấp đầy thành 10% và mỗi lần cập nhật một hàng sẽ mất gấp 10 lần để tìm hàng thay đổi, mặc dù phân chia trang sẽ rất khó xảy ra.

Thông thường bạn thấy các yếu tố lấp đầy 70% (viết rất cao) đến 95% (đọc rất cao).

Đó là một hình thức nghệ thuật.

Tôi thấy rằng một cách suy nghĩ tốt về các yếu tố lấp đầy là các trang trong sổ địa chỉ - bạn càng đóng gói các địa chỉ càng khó thay đổi chúng, nhưng cuốn sách càng mỏng. Tôi nghĩ rằng tôi đã giải thích nó tốt hơn trên my blog.

2

Tôi có khuynh hướng cho rằng nếu bạn sau cải tiến hiệu suất, thời gian của bạn tốt hơn nhiều ở những nơi khác, chỉnh sửa giản đồ, tối ưu hóa truy vấn và đảm bảo mức độ phù hợp chỉ mục tốt. Yếu tố lấp đầy là một trong những điều mà bạn chỉ cần lo lắng khi bạn biết rằng mọi thứ khác trong hệ thống của bạn là tối ưu. Tôi không biết ai có thể nói thế.

Các vấn đề liên quan