Penasihat Penyetelan Mesin Database

Berlaku untuk:SQL Server

Microsoft Database Engine Tuning Advisor (DTA) menganalisis database dan membuat rekomendasi yang dapat Anda gunakan untuk mengoptimalkan performa kueri. Anda dapat menggunakan Database Engine Tuning Advisor untuk memilih dan membuat sekumpulan indeks, tampilan terindeks, atau partisi tabel yang optimal tanpa memiliki pemahaman ahli tentang struktur database atau internal SQL Server. Dengan menggunakan DTA, Anda dapat melakukan tugas-tugas berikut:

  • Memecahkan masalah performa kueri masalah tertentu

  • Menyetel sekumpulan besar kueri di satu atau beberapa database

  • Melakukan analisis bagaimana-jika eksploratif tentang potensi perubahan desain fisik

  • Mengelola ruang penyimpanan

Catatan

Database Engine Tuning Advisor tidak didukung untuk Azure SQL Database atau Azure SQL Managed Instance. Sebagai gantinya, pertimbangkan strategi yang direkomendasikan dalam Pemantauan dan penyetelan performa di Azure SQL Database dan Azure SQL Managed Instance. Untuk Azure SQL Database, lihat juga rekomendasi performa Database Advisor untuk Azure SQL Database.

Manfaat Database Engine Tuning Advisor

Mengoptimalkan performa kueri bisa sulit tanpa pemahaman penuh tentang struktur database dan kueri yang dijalankan terhadap database. Database Engine Tuning Advisor (DTA) dapat mempermudah tugas ini dengan menganalisis cache rencana kueri saat ini atau dengan menganalisis beban kerja kueri Transact-SQL yang Anda buat dan merekomendasikan desain fisik yang sesuai. Untuk administrator database yang lebih canggih, DTA mengekspos mekanisme yang kuat untuk melakukan analisis bagaimana-jika eksploratif dari alternatif desain fisik yang berbeda. DTA dapat memberikan informasi berikut.

  • Merekomendasikan campuran terbaik indeks rowstore dan penyimpan kolom untuk database dengan menggunakan pengoptimal kueri untuk menganalisis kueri dalam beban kerja.

  • Merekomendasikan partisi yang diratakan atau tidak selaras untuk database yang direferensikan dalam beban kerja.

  • Merekomendasikan tampilan terindeks untuk database yang direferensikan dalam beban kerja.

  • Analisis efek perubahan yang diusulkan, termasuk penggunaan indeks, distribusi kueri di antara tabel, dan performa kueri dalam beban kerja.

  • Merekomendasikan cara untuk menyetel database untuk sekumpulan kecil kueri masalah.

  • Memungkinkan Anda menyesuaikan rekomendasi dengan menentukan opsi tingkat lanjut seperti batasan ruang disk.

  • Berikan laporan yang meringkas efek penerapan rekomendasi untuk beban kerja tertentu.

  • Pertimbangkan alternatif di mana Anda menyediakan pilihan desain yang mungkin dalam bentuk konfigurasi hipotetis untuk dievaluasi oleh Database Engine Tuning Advisor.

  • Menyetel beban kerja dari berbagai sumber termasuk SQL Server Query Store, Plan Cache, file atau tabel SQL Server Profiler Trace, atau . File SQL.

Database Engine Tuning Advisor dirancang untuk menangani jenis beban kerja kueri berikut:

  • Kueri pemrosesan transaksi online (OLTP) saja

  • Kueri pemrosesan analitik online (OLAP) saja

  • Kueri OLTP dan OLAP campuran

  • Beban kerja yang berat kueri (lebih banyak kueri daripada modifikasi data)

  • Beban kerja yang berat pembaruan (lebih banyak modifikasi data daripada kueri)

Komponen dan Konsep DTA

Antarmuka Pengguna Grafis Database Engine Tuning Advisor
Antarmuka yang mudah digunakan di mana Anda dapat menentukan beban kerja dan memilih berbagai opsi penyetelan.

Utilitas dta
Versi prompt perintah Database Engine Tuning Advisor. Utilitas dta dirancang untuk memungkinkan Anda menggunakan fungsionalitas Database Engine Tuning Advisor dalam aplikasi dan skrip.

Beban kerja
File skrip Transact-SQL, file pelacakan, atau tabel pelacakan yang berisi beban kerja perwakilan untuk database yang ingin Anda sesuaikan. Dimulai dengan SQL Server 2012 (11.x), Anda dapat menentukan cache paket sebagai beban kerja. Dimulai dengan SQL Server 2016 (13.x), Anda dapat menentukan Penyimpanan Kueri sebagai beban kerja.

File input XML
File berformat XML yang dapat digunakan Database Engine Tuning Advisor untuk menyetel beban kerja. File input XML mendukung opsi penyetelan tingkat lanjut yang tidak tersedia di utilitas GUI atau dta .

Batasan dan Pembatasan

Database Engine Tuning Advisor memiliki batasan dan batasan berikut.

  • Ini tidak dapat menambahkan atau menghilangkan indeks atau indeks unik yang memberlakukan PRIMARY KEY atau UNIQUE membatasi.

  • Ini tidak dapat menganalisis database yang diatur ke mode pengguna tunggal.

  • Jika Anda menentukan ruang disk maksimum untuk menyetel rekomendasi yang melebihi ruang aktual yang tersedia, Database Engine Tuning Advisor menggunakan nilai yang Anda tentukan. Namun, ketika Anda menjalankan skrip rekomendasi untuk mengimplementasikannya, skrip mungkin gagal jika lebih banyak ruang disk tidak ditambahkan terlebih dahulu. Ruang disk maksimum dapat ditentukan dengan opsi -B utilitas dta , atau dengan memasukkan nilai dalam kotak dialog Opsi Penyetelan Tingkat Lanjut.

  • Untuk alasan keamanan, Database Engine Tuning Advisor tidak dapat menyetel beban kerja dalam tabel pelacakan yang berada di server jarak jauh. Untuk mengatasi batasan ini, Anda dapat menggunakan file pelacakan alih-alih tabel pelacakan atau menyalin tabel pelacakan ke server jarak jauh.

  • Saat Anda memberlakukan batasan, seperti yang diberlakukan saat Anda menentukan ruang disk maksimum untuk menyetel rekomendasi (dengan menggunakan opsi -B atau kotak dialog Opsi Penyetelan Tingkat Lanjut), Database Engine Tuning Advisor mungkin dipaksa untuk menghilangkan indeks tertentu yang ada. Dalam hal ini, rekomendasi Database Engine Tuning Advisor yang dihasilkan dapat menghasilkan peningkatan negatif yang diharapkan.

  • Saat Anda menentukan batasan untuk membatasi waktu penyetelan (dengan menggunakan opsi -A dengan utilitas dta atau dengan memeriksa Batasi waktu penyetelan pada tab Opsi Penyetelan), Database Engine Tuning Advisor mungkin melebihi batas waktu tersebut untuk menghasilkan peningkatan yang diharapkan yang akurat dan laporan analisis untuk bagian beban kerja apa pun yang telah digunakan sejauh ini.

  • Database Engine Tuning Advisor mungkin tidak membuat rekomendasi dalam keadaan berikut:

    1. Tabel yang disetel berisi kurang dari 10 halaman data.

    2. Indeks yang direkomendasikan tidak akan menawarkan peningkatan performa kueri yang cukup atas desain database fisik saat ini.

    3. Pengguna yang menjalankan Database Engine Tuning Advisor bukan anggota peran database db_owner atau peran server tetap sysadmin . Kueri dalam beban kerja dianalisis dalam konteks keamanan pengguna yang menjalankan Database Engine Tuning Advisor. Pengguna harus menjadi anggota peran database db_owner .

  • Database Engine Tuning Advisor menyimpan data sesi penyetelan dan informasi lain dalam msdb database. Jika perubahan dilakukan pada msdb database, Anda mungkin berisiko kehilangan data sesi penyetelan. Untuk menghilangkan risiko ini, terapkan strategi pencadangan yang sesuai untuk msdb database.

Pertimbangan Performa

Database Engine Tuning Advisor dapat menggunakan sumber daya prosesor dan memori yang signifikan selama analisis. Untuk menghindari perlambatan server produksi Anda, ikuti salah satu strategi berikut:

  • Sesuaikan database Anda saat server Anda gratis. Database Engine Tuning Advisor dapat memengaruhi performa tugas pemeliharaan.

  • Gunakan fitur server pengujian/server produksi. Untuk informasi selengkapnya, lihat Mengurangi Beban Penyetelan Server Produksi.

  • Tentukan hanya struktur desain database fisik yang Anda inginkan untuk dianalisis oleh Database Engine Tuning Advisor. Database Engine Tuning Advisor menyediakan banyak opsi, tetapi hanya menentukan opsi yang diperlukan.

Dependensi pada prosedur tersimpan xp_msver diperluas

Database Engine Tuning Advisor bergantung pada prosedur tersimpan xp_msver diperluas untuk menyediakan fungsionalitas penuh. Prosedur tersimpan yang diperluas ini diaktifkan secara default. Database Engine Tuning Advisor menggunakan prosedur tersimpan yang diperluas ini untuk mengambil jumlah prosesor dan memori yang tersedia di komputer tempat database yang Anda sesuaikan berada. Jika xp_msver tidak tersedia, Database Engine Tuning Advisor mengasumsikan karakteristik perangkat keras komputer tempat Database Engine Tuning Advisor berjalan. Jika karakteristik perangkat keras komputer tempat Database Engine Tuning Advisor berjalan tidak tersedia, satu prosesor dan 1024 megabyte (MB) memori diasumsikan.

Dependensi ini memengaruhi rekomendasi partisi karena jumlah partisi yang direkomendasikan tergantung pada dua nilai ini (jumlah prosesor dan memori yang tersedia). Dependensi juga memengaruhi hasil penyetelan Saat Anda menggunakan server pengujian untuk menyetel server produksi Anda. Dalam skenario ini, Database Engine Tuning Advisor menggunakan xp_msver untuk mengambil properti perangkat keras dari server produksi. Setelah menyetel beban kerja di server pengujian, Database Engine Tuning Advisor menggunakan properti perangkat keras ini untuk menghasilkan rekomendasi. Untuk informasi selengkapnya, lihat xp_msver (Transact-SQL).

Tugas Database Engine Tuning Advisor

Tabel berikut ini mencantumkan tugas Database Engine Tuning Advisor umum dan artikel yang menjelaskan cara melakukannya.

Tugas Database Engine Tuning Advisor Artikel
Menginisialisasi dan memulai Database Engine Tuning Advisor.

Buat beban kerja dengan menentukan cache paket, dengan membuat skrip, atau dengan membuat file jejak atau tabel pelacakan.

Menyetel database dengan menggunakan alat antarmuka pengguna grafis Database Engine Tuning Advisor.

Buat file input XML untuk menyetel beban kerja.

Lihat deskripsi opsi antarmuka pengguna Database Engine Tuning Advisor.
Memulai dan Menggunakan Database Engine Tuning Advisor
Lihat hasil operasi penyetelan database.

Pilih dan terapkan rekomendasi penyetelan.

Lakukan analisis eksploratif bagaimana-jika terhadap beban kerja.

Tinjau sesi penyetelan yang ada, kloning sesi berdasarkan sesi yang ada
atau edit rekomendasi penyetelan yang ada untuk evaluasi atau implementasi lebih lanjut.

Lihat deskripsi opsi antarmuka pengguna Database Engine Tuning Advisor.
Menampilkan dan Bekerja dengan Output dari Database Engine Tuning Advisor