Các công cụ để xác định các chỉ mục cần thiết


8

Tôi muốn tạo các chỉ mục tốt nhất cho mỗi bảng trong cơ sở dữ liệu của mình. Có một truy vấn hoặc công cụ trong SQL Server để trợ giúp cho quá trình này không?


1
Có những chỉ số được đề xuất nhưng chúng rất hạn chế và vẫn nên được đánh giá bởi một người biết họ đang làm gì. Bạn có một câu hỏi cụ thể về lập chỉ mục?
JNK

1
Có một truy vấn / bảng bạn đang có hiệu suất kém? Như JNK ngụ ý, bạn thực sự chỉ nên thêm các chỉ mục khi bạn biết bạn đang làm gì (và kiểm tra nó bất kể). Trừ khi bạn có lý do để tin rằng một bảng cần một chỉ mục (bảng lớn, truy vấn chậm, chỉ mục được phân cụm rõ ràng), bạn không nên thử và thêm chúng
Ben Brocka

Câu trả lời:


10

Vâng, có các công cụ, như trình tư vấn điều chỉnh công cụ cơ sở dữ liệu. Nó vận chuyển với SQL Server và thực hiện một số điều khá khó chịu:

  • Nó cho phép bạn xem xét chỉ một khối lượng công việc rất nhỏ (thậm chí là một truy vấn duy nhất). Sau đó sẽ đề xuất các chỉ mục có thể chỉ giúp khối lượng công việc nhỏ đó, không liên quan đến phần còn lại của khối lượng công việc (chỉ mục giúp tăng tốc một số truy vấn, nhưng chúng có thể làm chậm các truy vấn khác, đặc biệt là chèn / cập nhật / xóa), không bao giờ bận tâm đến phần còn lại của chu kỳ kinh doanh.
  • Nó thường sẽ đề xuất các chỉ mục dự phòng chỉ khác nhau bởi một cột theo sau hoặc bởi một cột được bao gồm.
  • Nó thực sự, thực sự, thực sự thích các cột bao gồm - tôi nghĩ rằng nó có thể là một tôn sùng.

Cách tiếp cận phù hợp để điều chỉnh chỉ mục là xem xét toàn bộ khối lượng công việc của bạn trong một chu kỳ kinh doanh hoàn chỉnh. Đôi khi, tốt hơn là chuyển sang các công cụ của bên thứ 3 hơn là phát minh lại bánh xe. DBSophic tạo ra một sản phẩm miễn phí có tên Qure Workload Analyzer mà tôi nghĩ là công việc tốt hơn nhiều so với DTA - nhưng công cụ được cấp phép của họ (Qure Workload Tối ưu hóa) hoàn toàn phi thường với những gì nó làm. Năm ngoái tôi đã viết blog về cách công cụ hoạt động khi được tích hợp với giải pháp của chúng tôi ( SQL Sentry Performance Advisor cho SQL Server ) ( từ chối trách nhiệm: Tôi làm việc cho SQL Sentry ).

Ngoài ra, có một số tùy chọn khác, ví dụ như các chỉ mục bị thiếu được báo cáo trong DMV và bạn cũng có thể khám phá các chỉ mục nào được ghi vào (vì vậy chúng chiếm dung lượng và ảnh hưởng đến các hoạt động chèn / cập nhật / xóa) nhưng không bao giờ (hoặc hiếm khi ) được sử dụng bởi các truy vấn của người dùng:

Nhưng những điều này cũng cần cảnh báo rằng DMV chỉ có hiệu lực kể từ lần khởi động SQL Server cuối cùng và chúng không nhất thiết phải bao gồm một chu kỳ kinh doanh phù hợp (và do đó có thể thiếu thông tin quan trọng


7

Công cụ mà bạn đang nói đến được gọi là Trình cố vấn điều chỉnh động cơ cơ sở dữ liệu (viết tắt là DTA). Nó có thể lấy một số đầu vào và đưa ra khuyến nghị về những thứ như thiếu chỉ mục. Tuy nhiên, điều đáng chú ý là đây chỉ là những gợi ý và nên cân nhắc cẩn thận thay vì mù quáng làm theo các khuyến nghị của DTA.

Liên kết cho Hướng dẫn DTA

Cũng cần lưu ý rằng có các DMV tích hợp để thu thập loại thông tin đó:

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.