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?
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?
Câu trả lời:
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:
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
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.
Cũng cần lưu ý rằng có các DMV tích hợp để thu thập loại thông tin đó: