Saya ingin membuat indeks terbaik untuk setiap tabel di database saya. Apakah ada permintaan atau alat dalam SQL Server untuk membantu proses ini?
Saya ingin membuat indeks terbaik untuk setiap tabel di database saya. Apakah ada permintaan atau alat dalam SQL Server untuk membantu proses ini?
Jawaban:
Ya, ada alat, seperti penasihat tuning engine database. Itu kapal dengan SQL Server dan melakukan beberapa hal yang cukup jahat:
Pendekatan yang tepat untuk penyetelan indeks adalah dengan mempertimbangkan seluruh beban kerja Anda selama satu siklus bisnis lengkap. Terkadang lebih baik beralih ke alat pihak ke-3 daripada menemukan kembali roda. DBSophic membuat produk gratis yang disebut Qure Workload Analyzer yang saya pikir melakukan pekerjaan yang jauh lebih baik daripada DTA - tetapi alat berlisensi mereka (Qure Workload Optimizer) benar-benar fenomenal dalam fungsinya. Tahun lalu saya membuat blog tentang bagaimana alat ini bekerja ketika terintegrasi dengan SQL Sentry ).
Ada beberapa opsi lain juga, misalnya indeks yang hilang dilaporkan dalam DMV, dan Anda juga dapat menemukan indeks mana yang sedang ditulis (sehingga mereka mengambil ruang dan mempengaruhi operasi penyisipan / pembaruan / penghapusan) tetapi tidak pernah (atau jarang) ) digunakan oleh permintaan pengguna:
Tetapi ini juga perlu peringatan bahwa DMV hanya valid sejak SQL Server terakhir restart, dan bahwa mereka tidak perlu mencakup siklus bisnis yang tepat (dan karenanya mungkin kehilangan informasi penting
Alat yang Anda bicarakan ini disebut Database Engine Tuning Advisor (disingkat DTA). Ini dapat mengambil sejumlah input dan memberikan rekomendasi tentang hal-hal seperti indeks yang hilang. Perlu dicatat, bahwa ini hanya saran dan pertimbangan yang cermat harus diambil alih-alih mengikuti rekomendasi DTA secara membuta.
Perlu juga dicatat bahwa ada DMV bawaan untuk mengumpulkan jenis informasi tersebut: