Wawasan Performa Kueri di Azure SQL Database

Berlaku untuk:Azure SQL Database

Wawasan kinerja kueri menyediakan analisis kueri cerdas untuk database tunggal dan kumpulan. Ini membantu mengidentifikasi kueri dengan penggunaan sumber daya terbanyak dan kueri dengan pemrosesan terlama dalam beban kerja Anda. Ini membantu Anda menemukan kueri yang akan dioptimalkan guna meningkatkan kinerja beban kerja secara keseluruhan dan secara efisien menggunakan sumber daya yang Anda bayar. Wawasan Performa Kueri membantu mempercepat pemecahan masalah performa database dengan menyediakan:

  • Wawasan yang lebih mendalam tentang konsumsi sumber daya database (DTU) Anda
  • Detail tentang kueri database teratas berdasarkan CPU, durasi, dan jumlah eksekusi (kandidat apa saja yang dapa disetel untuk meningkatkan performa)
  • Kemampuan untuk menelusuri detail kueri, untuk menampilkan teks kueri dan riwayat pemanfaatan sumber daya
  • Anotasi yang memperlihatkan rekomendasi performa dari advisor database

Query Performance Insight

Prasyarat

Wawasan Performa Kueri mengharuskan Penyimpanan Kueri aktif di database Anda. Ini secara otomatis diaktifkan untuk semua database di Azure SQL Database secara default. Jika Penyimpanan Kueri tidak berjalan, portal Microsoft Azure akan meminta Anda untuk mengaktifkannya.

Catatan

Jika pesan "Penyimpanan Kueri tidak dikonfigurasi dengan benar pada database ini" muncul di portal, lihat Mengoptimalkan konfigurasi Penyimpanan Kueri.

Izin

Anda memerlukan izin kontrol akses berbasis peran Azure (Azure RBAC) berikut untuk menggunakan Wawasan Performa Kueri:

  • Pembaca,Pemilik,Kontributor,Kontributor SQL DB,atau izin Kontributor SQL Server diperlukan untuk melihat kueri dan bagan yang memakan sumber daya teratas.
  • Pemilik, Kontributor,Kontributor SQL DB,atau izin Kontributor SQL Server diperlukan untuk menampilkan teks kueri.

Wawasan Performa Kueri

Wawasan Performa Kueri mudah untuk digunakan:

  1. Buka portal Microsoft Azure dan temukan database yang ingin Anda periksa.

  2. Dari menu sebelah kiri, buka Wawasan Performa>Kueri Performa Cerdas.

    Query Performance Insight on the menu

  3. Pada tab pertama, tinjau daftar kueri yang memakan sumber daya teratas.

  4. Pilih setiap kueri untuk menampilkan detailnya.

  5. Buka Performa Cerdas>rekomendasi Performa dan periksa apakah ada rekomendasi performa yang tersedia. Untuk informasi selengkapnya tentang rekomendasi performa bawaan, lihat Azure SQL Database Advisor.

  6. Gunakan ikon penggeser atau perbesar tampilan untuk mengubah interval yang diamati.

    Performance dashboard

Catatan

Agar Azure SQL Database dapat menyajikan informasi dalam Wawasan Performa Kueri, Penyimpanan Kueri perlu mengambil data yang sudah ada dalam beberapa jam. Jika tidak ada aktivitas baru dalam database atau jika Penyimpanan Kueri tidak aktif selama periode tertentu, bagan akan kosong saat Wawasan Performa Kueri menampilkan rentang waktu tersebut. Anda bisa mengaktifkan Penyimpanan Kueri kapan saja jika tidak dijalankan. Untuk informasi selengkapnya, lihat Praktik terbaik dengan Penyimpanan Kueri.

Untuk rekomendasi performa database, pilih Rekomendasi pada panel navigasi Wawasan Performa Kueri.

The Recommendations tab

Kueri penggunaan CPU teratas

Secara default, Wawasan Performa Kueri memperlihatkan lima kueri dengan konsumsi CPU teratas saat Anda pertama kali membukanya.

  1. Pilih atau kosongkan kueri individual untuk memasukkan atau tidak memasukkannya ke bagan dengan menggunakan kotak centang.

    Baris atas menunjukkan persentase DTU keseluruhan untuk database. Bilah memperlihatkan persentase CPU yang digunakan kueri terpilih selama interval tertentu. Misalnya, jika Anda memilih Seminggu terakhir, setiap bilah mewakili satu hari.

    Top queries

    Penting

    Garis DTU yang ditampilkan diagregasi ke nilai konsumsi maksimum dalam periode satu jam. Hal ini dimaksudkan untuk perbandingan tingkat tinggi hanya dengan statistik eksekusi kueri. Dalam beberapa kasus, pemanfaatan DTU mungkin tampak terlalu tinggi dibandingkan dengan kueri yang dieksekusi, tetapi ini mungkin tidak terjadi.

    Misalnya, jika kueri memaksimalkan DTU hingga 100% hanya untuk beberapa menit, baris DTU di Wawasan Performa Kueri akan menampilkan seluruh jam konsumsi sebagai 100% (konsekuensi dari nilai agregat maksimum).

    Untuk perbandingan yang lebih detail (hingga satu menit), pertimbangkan untuk membuat bagan pemanfaatan DTU kustom:

    1. Di portal Microsoft Azure, pilih Azure SQL Database>Monitoring.
    2. Pilih Metrik.
    3. Pilih +Tambahkan bagan.
    4. Pilih persentase DTU pada bagan.
    5. Selain itu, pilih 24 jam terakhir di menu kiri atas dan ubah menjadi satu menit.

    Gunakan bagan DTU kustom dengan detail yang lebih tinggi untuk dibandingkan dengan bagan eksekusi kueri.

    Kisi bawah memperlihatkan informasi agregat untuk kueri yang terlihat:

    • ID Kueri, yang merupakan pengidentifikasi unik untuk kueri dalam database.
    • CPU per kueri selama interval yang dapat diamati, yang tergantung pada fungsi agregasi.
    • Durasi per kueri, yang juga tergantung pada fungsi agregasi.
    • Jumlah total eksekusi untuk kueri tertentu.
  2. Jika data Anda sudah usang, pilih tombol Refresh.

  3. Gunakan penggeser dan tombol perbesar tampilan untuk mengubah interval pengamatan dan menyelidiki lonjakan konsumsi:

    Sliders and zoom buttons for changing the interval

  4. Anda juga bisa memilih tab Kustom untuk menyesuaikan tampilan untuk:

    • Metrik (CPU, durasi, jumlah eksekusi).
    • Interval waktu (24 jam terakhir, minggu lalu, atau bulan lalu).
    • Jumlah kueri.
    • Fungsi agregasi.

    Custom tab

  5. Pilih tombol Buka > untuk melihat tampilan yang dikustomisasi.

    Penting

    Wawasan Performa Kueri terbatas hanya menampilkan kueri 5-20 teratas yang paling memakan konsumsi CPU, tergantung pada pilihan Anda. Database Anda bisa menjalankan lebih banyak kueri di luar kueri teratas yang diperlihatkan, dan kueri ini tidak akan disertakan pada bagan.

    Bisa jadi ada sejenis beban kerja database yang mana ada banyak kueri yang lebih kecil, di luar dari yang teratas ditampilkan, sering berjalan dan mengonsumsi sebagian besar DTU. Kueri ini tidak muncul di bagan performa.

    Misalnya, kueri mungkin telah mengonsumsi sejumlah besar DTU untuk sementara waktu, meskipun total konsumsinya dalam periode yang diamati kurang dari kueri yang memakan waktu teratas lainnya. Dalam kasus seperti ini, pemanfaatan sumber daya kueri ini tidak akan muncul di bagan.

    Jika Anda perlu memahami eksekusi kueri teratas di luar batasan Wawasan Performa Kueri, pertimbangkan untuk menggunakan Wawasan Azure SQL untuk pemantauan dan pemecahan masalah performa database tingkat lanjut.

Menampilkan detail kueri individual

Untuk menampilkan detail kueri:

  1. Pilih kueri apa pun dalam daftar kueri teratas.

    List of top queries

    Tampilan detailnya terbuka. Hal ini menunjukkan konsumsi, durasi, dan jumlah eksekusi CPU dari waktu ke waktu.

  2. Pilih fitur bagan untuk detailnya.

    • Bagan teratas memperlihatkan garis dengan persentase DTU database keseluruhan. Bilahnya adalah persentase CPU yang digunakan kueri yang dipilih.
    • Bagan kedua memperlihatkan total durasi kueri yang dipilih.
    • Bagan bawah memperlihatkan jumlah total eksekusi menurut kueri yang dipilih.

    Query details

  3. Opsi lainnya: gunakan penggeser, gunakan tombol perbesar tampilan, atau pilih Pengaturan untuk menyesuaikan bagaimana data kueri ingin ditampilkan, atau untuk memilih rentang waktu yang berbeda.

    Penting

    Wawasan Performa Kueri tidak mencatat kueri DDL apa pun. Dalam beberapa kasus, mungkin tidak mencatat semua kueri ad hoc.

    Jika database Anda dikunci dengan kunci baca-saja, panel detail kueri tidak akan dapat dimuat.

Meninjau kueri teratas per durasi

Dua metrik dalam Wawasan Performa Kueri dapat membantu Anda menemukan potensi hambatan: jumlah durasi dan eksekusi.

Kueri yang berjalan lama adalah yang paling mungkin mengunci sumber daya lebih lama, memblokir pengguna lain, dan membatasi skalabilitas. Kueri jenis ini juga yang sebaiknya diutamakan untuk dioptimalkan. Untuk informasi selengkapnya, lihat Memahami dan Mengatasi Masalah Pemblokiran Azure SQL.

Untuk mengidentifikasi kueri yang sudah berjalan lama:

  1. Buka tab Kustom di Wawasan Performa Kueri untuk database yang dipilih.

  2. Ubah metrik menjadi durasi.

  3. Pilih jumlah kueri dan interval pengamatan.

  4. Pilih fungsi agregasi:

    • Sum berfungsi untuk menambahkan semua waktu eksekusi kueri untuk seluruh interval pengamatan.
    • Max berfungsi untuk menemukan kueri yang memakan waktu eksekusi maksimum untuk seluruh interval pengamatan.
    • Avg berfungsi untuk menemukan waktu eksekusi rata-rata dari semua eksekusi kueri dan menunjukkan kepada Anda yang teratas untuk rata-rata ini.

    Query duration

  5. Pilih tombol Buka > untuk melihat tampilan yang dikustomisasi.

    Penting

    Menyesuaikan tampilan kueri tidak memperbarui baris DTU. Garis DTU selalu menunjukkan nilai konsumsi maksimum interval.

    Untuk memahami konsumsi DTU database dengan lebih detail (hingga satu menit), pertimbangkan untuk membuat bagan kustom di portal Microsoft Azure:

    1. Pilih Azure SQL Database>Monitoring.
    2. Pilih Metrik.
    3. Pilih +Tambahkan bagan.
    4. Pilih persentase DTU pada bagan.
    5. Selain itu, pilih 24 jam terakhir di menu kiri atas dan ubah menjadi satu menit.

    Kami menyarankan agar Anda menggunakan bagan DTU kustom untuk dibandingkan dengan bagan performa kueri.

Meninjau kueri teratas per jumlah eksekusi

Aplikasi pengguna yang menggunakan database bisa menjadi lambat, meskipun jumlah eksekusi yang tinggi mungkin tidak mempengaruhi database itu sendiri dan penggunaan sumber dayanya rendah.

Dalam beberapa kasus, jumlah eksekusi yang tinggi dapat menyebabkan lebih banyak perjalanan pulang pergi jaringan. Komunikasi dua arah mempengaruhi performa. Mereka tergantung pada latensi jaringan dan latensi server hilir.

Misalnya, banyak situs web berbasis data sangat mengakses database untuk setiap permintaan pengguna. Meskipun pengumpulan koneksi dapat membantu, peningkatan lalu lintas jaringan dan beban pemrosesan di server dapat memperlambat performa. Secara umum, jaga komunikasi dua arah seminimal mungkin.

Untuk mengidentifikasi kueri yang sering dieksekusi ("ramai") :

  1. Buka tab Kustom di Wawasan Performa Kueri untuk database yang dipilih.

  2. Ubah metrik ke jumlah eksekusi.

  3. Pilih jumlah kueri dan interval pengamatan.

  4. Pilih tombol Buka > untuk melihat tampilan yang dikustomisasi.

    Query execution count

Memahami anotasi penyetelan performa

Saat mengamati beban kerja di Wawasan Performa Kueri, Anda mungkin melihat ikon dengan garis vertikal di atas bagan.

Ikon ini adalah anotasi. Ikon ini menampilkan rekomendasi performa dari Azure SQL Database Advisor. Dengan mengarahkan kursor ke atas anotasi, Anda bisa mendapatkan informasi ringkasan tentang rekomendasi performa.

Query annotation

Jika Anda ingin memahami lebih lanjut atau menerapkan rekomendasi advisor, pilih ikon untuk membuka detail tindakan yang direkomendasikan. Jika ini adalah rekomendasi aktif, Anda dapat menerapkannya langsung dari portal.

Query annotation details

Dalam beberapa kasus, akibat tingkat perbesar tampilan, ada kemungkinan anotasi yang dekat satu sama lain tergabung menjadi anotasi tunggal. Wawasan Performa Kueri menyajikannya sebagai ikon anotasi grup. Memilih ikon anotasi grup akan membuka panel baru yang mencantumkan anotasi.

Mengkorelasikan kueri dan tindakan penyetelan performa dapat membantu Anda untuk lebih memahami beban kerja Anda.

Mengoptimalkan konfigurasi Penyimpanan Kueri

Saat menggunakan Wawasan Performa Kueri, Anda mungkin melihat pesan kesalahan Penyimpanan Kueri berikut ini:

  • "Penyimpanan Kueri tidak dikonfigurasi dengan benar pada database ini. Klik di sini untuk mempelajari selengkapnya."
  • "Penyimpanan Kueri tidak dikonfigurasi dengan benar pada database ini. Klik di sini untuk mengubah setelan."

Pesan ini biasanya muncul saat Penyimpanan Kueri tidak bisa mengumpulkan data baru.

Kasus pertama terjadi saat Penyimpanan Kueri dalam status baca-saja dan parameter diatur secara optimal. Anda bisa memperbaikinya dengan meningkatkan ukuran penyimpanan data, atau dengan menghapus Penyimpanan Kueri. (Jika Anda menghapus Penyimpanan Kueri, semua telemetri yang dikumpulkan sebelumnya akan hilang.)

Query Store details

Kasus kedua terjadi saat Penyimpanan Kueri tidak diaktifkan, atau parameter tidak diatur secara optimal. Anda dapat mengubah kebijakan penyimpanan dan pengambilan, dan juga mengaktifkan Penyimpanan Kueri, dengan menjalankan perintah T-SQL berikut yang disediakan editor kueri portal Azure, SQL Server Management Studio (SSMS), Azure Data Studio, sqlcmd, atau alat klien pilihan Anda.

Terdapat dua jenis kebijakan retensi:

  • Berbasis ukuran: Jika kebijakan ini diatur ke AUTO,data akan dibersihkan secara otomatis ketika mencapai hampir ukuran maksimum.
  • Berbasis waktu: Secara default, kebijakan ini diatur ke 30 hari. Jika Penyimpanan Kueri kehabisan ruang, informasi kueri yang lebih lama dari 30 hari akan terhapus.

Anda dapat mengatur kebijakan pengambilan menjadi:

  • Semua: Penyimpanan Kueri mengambil semua kueri.
  • Otomatis: Penyimpanan Kueri mengabaikan kueri dan kueri yang jarang terjadi dengan durasi kompilasi dan eksekusi yang tidak signifikan. Ambang batas untuk jumlah eksekusi, durasi kompilasi, dan durasi runtime ditentukan secara internal. Ini adalah opsi default.
  • TidakAda : Penyimpanan Kueri berhenti mengambil kueri baru, tetapi statistik runtime untuk kueri yang sudah ditangkap masih dikumpulkan.

Sebaiknya tetapkan semua kebijakan ke AUTO dan kebijakan pembersihan menjadi 30 hari dengan menjalankan perintah berikut dari SQL Server Management Studio (SSMS) atau portal Microsoft Azure. (Ganti YourDB dengan nama database.)

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (SIZE_BASED_CLEANUP_MODE = AUTO);

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 30));

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (QUERY_CAPTURE_MODE = AUTO);

Tingkatkan ukuran Penyimpanan Kueri dengan menyambungkan ke database melalui SQL Server Management Studio (SSMS) atau portal Microsoft Azure dan jalankan kueri berikut ini. (Ganti YourDB dengan nama database.)

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (MAX_STORAGE_SIZE_MB = 1024);

Menerapkan pengaturan ini nantinya akan membuat Penyimpanan Kueri mengumpulkan telemetri untuk kueri baru. Jika Anda perlu Penyimpanan Kueri untuk segera beroperasi, Anda secara opsional dapat memilih untuk menghapus Penyimpanan Kueri dengan menjalankan kueri berikut melalui SQL Server Management Studio (SSMS) atau portal Microsoft Azure. (Ganti YourDB dengan nama database.)

Catatan

Menjalankan kueri berikut ini akan menghapus semua telemetri terpantau yang dikumpulkan sebelumnya di Penyimpanan Kueri.

    ALTER DATABASE [YourDB] SET QUERY_STORE CLEAR;

Langkah berikutnya

Pertimbangkan untuk menggunakan Azure SQL Analytics untuk pemantauan performa tingkat lanjut dari armada besar database tunggal dan terkumpul, kumpulan elastis, instans terkelola, dan database instans.