Bagikan melalui


Query Profiler (pratinjau)

Profiler Kueri di ekstensi MSSQL untuk Visual Studio Code mengambil dan memantau aktivitas database secara real time menggunakan Extended Events. Anda dapat mengamati aktivitas T-SQL langsung, mengidentifikasi operasi lambat, dan menemukan hambatan performa selama pengembangan.

Query Profiler mendukung SQL Server (lokal atau di lingkungan cloud), Azure SQL Database, dan database SQL di titik akhir Fabric. Anda dapat memantau sesi aktif, meninjau detail eksekusi, dan memahami bagaimana aplikasi Anda berinteraksi dengan database Anda selama pengembangan dan pengujian.

Cuplikan layar tabel acara langsung Query Profiler menunjukkan aktivitas database yang ditangkap di ekstensi MSSQL untuk Visual Studio Code.

Tip

Profiler untuk Kueri saat ini dalam tahap pratinjau dan dapat berubah sesuai umpan balik. Bergabunglah dengan komunitas di GitHub Discussions untuk berbagi ide atau melaporkan masalah.

Features

Profiler Kueri dalam ekstensi MSSQL menyediakan kemampuan berikut:

  • Tangkap kueri real-time dan aktivitas basis data dalam grid acara langsung.
  • Konfigurasikan sesi pembuatan profil baru dengan pemilihan templat dan penamaan sesi.
  • Mengontrol siklus hidup sesi dengan tindakan Mulai, Jeda, Lanjutkan, Hentikan, dan Hapus Data .
  • Jalankan beberapa sesi pembuatan profil bersamaan dan berpindah di antara sesi tersebut dengan penyeleksi sesi.
  • Filter peristiwa yang diambil menurut teks, nama database, durasi, dan bidang lainnya.
  • Alihkan gulir otomatis untuk mengikuti peristiwa terbaru atau periksa entri yang lebih lama.
  • Ekspor peristiwa yang diambil ke CSV.
  • Buka dan lihat file .xel yang ada di grid Profiler yang hanya bisa dibaca.
  • Pilih templat yang sesuai secara otomatis untuk target Azure SQL Database (Standard_Azure).
  • Berfungsi di Windows, macOS, dan Linux di semua platform Visual Studio Code yang didukung.

Prasyarat

Luncurkan Profiler Kueri

Anda dapat meluncurkan Profiler Kueri dari tampilan Koneksi atau Palet Perintah.

Dari tampilan Koneksi:

  1. Dalam panel Connections, klik kanan instance SQL Server.

  2. Pilih Luncurkan Profiler Kueri (Pratinjau).

    Cuplikan layar opsi Luncurkan Profiler Kueri di menu konteks Koneksi.

Dari Palet Perintah:

  1. Buka Palet Perintah (Ctrl+Shift+P atau Cmd+Shift+P).

  2. Pilih MSSQL: Luncurkan Profil Kueri.

  3. Jika saat ini tidak ada koneksi yang aktif, pilih koneksi saat diminta.

Panel Profiler Kueri terbuka, terkait dengan koneksi yang dipilih.

Membuat sesi profil

Saat panel Profiler Kueri terbuka tanpa sesi aktif, panel Tersebut memperlihatkan layar Sesi Baru .

  1. Verifikasi atau ubah Koneksi untuk sesi pembuatan profil.

  2. Pilih Templat dari daftar dropdown. Templat yang tersedia bergantung pada target koneksi Anda.

    Templat SQL Server (lokal):

    Template Peristiwa yang diambil Deskripsi
    Standard_OnPrem sql_batch_completed, sql_batch_starting, rpc_starting, rpc_completed, sp_statement_starting, sp_statement_completed, attention, existing_connection, login, logout Templat profil komprehensif yang menangkap aktivitas batch SQL dan RPC, peristiwa pada level pernyataan dalam prosedur tersimpan, serta peristiwa koneksi. Menyediakan tampilan aktivitas server yang paling rinci.
    TSQL_OnPrem sql_batch_completed, sql_batch_starting, existing_connection, login, logout Templat ringan berfokus pada eksekusi batch T-SQL. Menangkap peristiwa awal dan akhir batch tanpa rincian prosedur tersimpan atau RPC, mengurangi beban untuk skenario di mana hanya aktivitas kueri tingkat atas yang diperlukan.
    TSQL_Locks sql_batch_completed,sql_batch_starting,lock_acquired,lock_released,existing_connection,login,logout Menangkap peristiwa batch T-SQL bersama dengan peristiwa akuisisi dan rilis kunci. Berguna untuk mendiagnosis masalah pemblokiran, kebuntuan, dan persaingan kunci.
    TSQL_Duration sql_batch_completed (difilter: durasi > = 1000 mikrodetik), sql_batch_starting, existing_connection, login, logout Menangkap peristiwa batch T-SQL tetapi memfilter sql_batch_completed untuk hanya termasuk batch yang memakan waktu 1 milidetik atau lebih. Berguna untuk mengidentifikasi kueri-kueri lambat sambil mengurangi kebisingan dari pernyataan-pernyataan yang dieksekusi dengan cepat.

    Database Azure SQL dan database SQL dalam templat Fabric:

    Template Peristiwa yang diambil Deskripsi
    Standard_Azure sql_batch_completed, sql_batch_starting, rpc_starting, rpc_completed, attention, existing_connection, login, logout Templat pembuatan profil standar untuk Azure SQL Database. Menangkap aktivitas batch SQL dan RPC dengan peristiwa koneksi. Mirip dengan Standard_OnPrem tetapi tanpa peristiwa tingkat pernyataan prosedur tersimpan.
    TSQL_Azure sql_batch_completed, sql_batch_starting, existing_connection, login, logout Templat pembuatan profil T-SQL ringan untuk Azure SQL Database. Menangkap peristiwa eksekusi batch tanpa RPC atau detail prosedur tersimpan.

    Nota

    Database Azure SQL dan database SQL dalam templat Fabric membuat sesi yang dilingkupkan ke database (ON DATABASE) daripada server. Kunci dan templat yang difilter durasi tidak tersedia untuk koneksi ini.

    Cuplikan layar dropdown pemilihan templat memperlihatkan templat profiler yang tersedia.

  3. Masukkan Nama sesi. Tekan Enter untuk mengonfirmasi atau Escape untuk membatalkan.

    Cuplikan layar dari permintaan input nama sesi untuk sesi baru Query Profiler.

Panel beralih ke tampilan acara langsung, dan sesi Profiler dibuat melalui SQL Tools Service.

Memantau acara langsung

Ketika Anda menjalankan sesi pemprofilan, grid peristiwa menampilkan peristiwa yang telah ditangkap sesuai urutan kronologis. Kisi menampilkan kolom berikut berdasarkan templat yang dipilih:

  • EventClass: Jenis peristiwa yang diambil, seperti sql_batch_starting atau rpc_completed.
  • TextData: Pernyataan T-SQL atau teks peristiwa.
  • ApplicationName: Aplikasi yang menghasilkan peristiwa.
  • LoginName: Login yang terkait dengan peristiwa.
  • ClientProcessID: Pengidentifikasi proses klien.
  • SPID: ID server untuk proses.
  • StartTime: Tanda waktu peristiwa.
  • CPU: Waktu CPU yang dikonsumsi.
  • Pembacaan: Jumlah bacaan logis.
  • Tulisan: Jumlah tulisan logis.
  • Durasi: Waktu eksekusi peristiwa.
  • DatabaseName: Database tempat peristiwa terjadi.
  • HostName: Komputer host yang menghasilkan peristiwa.

Tindakan pada toolbar

Toolbar menyediakan kontrol berikut untuk sesi aktif:

Tindakan Deskripsi
Sesi Baru Membuka alur sesi baru untuk membuat sesi pembuatan profil lain.
Mulai Melanjutkan streaming acara untuk sesi yang dijeda atau dihentikan.
Stop Menghentikan sesi pembuatan profil. Tidak ada peristiwa baru yang tiba, tetapi peristiwa yang diambil tetap terlihat untuk ditinjau, difilter, dan diekspor.
Jeda Menghentikan pembaruan kisi untuk sementara. UI menunjukkan indikator Dijeda .
Hapus Data Menghapus semua baris dari tabel sesi aktif. Jika sesi masih berjalan, event baru terus mengisi tabel.
Hapus Semua Filter Menghapus semua filter kolom aktif dan memulihkan tampilan peristiwa lengkap.
Filter cepat semua kolom... Mencari di semua kolom untuk menemukan peristiwa yang cocok dengan cepat.
Ekspor ke CSV Mengekspor peristiwa yang diambil sesi saat ini ke file CSV.
Gulir otomatis Mengatur apakah grid menggulir ke baris terbaru saat ada kejadian baru. Gulir otomatis aktif secara default untuk sesi baru.

Menyaring acara

Gunakan filter kolom untuk mempersempit kisi peristiwa dan fokus pada aktivitas yang relevan. Setiap header kolom menyertakan ikon filter yang membuka filter khusus untuk jenis data kolom tersebut.

Memfilter menurut nilai kolom (misalnya, DatabaseName atau ApplicationName)

  1. Pilih ikon filter pada header kolom seperti DatabaseName.

  2. Di daftar dropdown filter, gunakan kotak pencarian untuk menemukan nilai, atau pilih dan batalkan pilihan entri tertentu dari daftar kotak centang.

  3. Pilih Terapkan untuk memfilter kisi. Pilih Hapus untuk menghapus filter untuk kolom tersebut.

    Cuplikan layar filter kolom DatabaseName memperlihatkan daftar kotak centang database yang tersedia.

Filter menurut nilai numerik (misalnya, Duration)

  1. Pilih ikon filter pada kolom numerik seperti Duration.

  2. Pilih operator perbandingan (misalnya, , =, ><) dan masukkan ambang numerik.

  3. Pilih Terapkan untuk memfilter kisi.

    Cuplikan layar filter kolom Durasi dengan operator perbandingan numerik dan input nilai.

Saat satu atau beberapa filter aktif, chip filter muncul di bawah toolbar yang memperlihatkan kolom mana yang difilter. Pilih X pada chip untuk menghapus filter tersebut, atau pilih Hapus Semua Filter di toolbar untuk mengatur ulang semua filter sekaligus.

Cuplikan layar chip filter aktif memperlihatkan filter DatabaseName dan ApplicationName yang diterapkan.

Nota

Filter diterapkan di sisi klien pada peristiwa yang saat ini ditampilkan dan peristiwa baru yang dialirkan selama sesi.

Mengelola beberapa sesi

Profiler Kueri mendukung menjalankan beberapa sesi pembuatan profil secara bersamaan, masing-masing dengan koneksi, templat, dan buffer peristiwanya sendiri.

  1. Pilih Sesi Baru dari toolbar untuk membuat sesi lain. Sesi baru dapat menargetkan koneksi yang sama atau berbeda.

  2. Gunakan daftar dropdown Pemilih sesi untuk beralih antar sesi. Setiap sesi menampilkan statusnya (Berjalan, Dijeda, atau Dihentikan) dengan indikator visual.

  3. Saat Anda beralih sesi:

    • Kisi peristiwa diperbarui untuk menampilkan peristiwa yang diambil sesi yang dipilih.
    • Tindakan toolbar beroperasi pada sesi yang dipilih.

Mengekspor peristiwa yang diambil

Anda dapat mengekspor peristiwa yang diambil dari sesi pembuatan profil ke file CSV untuk tinjauan atau berbagi offline.

  1. Pilih Ekspor ke CSV dari toolbar. Ekspor tersedia baik saat sesi berjalan, dijeda, atau dihentikan.

  2. Pilih lokasi dan nama file untuk file CSV.

File yang diekspor berisi peristiwa yang saat ini terlihat di kisi sesi.

Buka file XEL yang sudah ada

Anda dapat membuka dan meninjau file jejak Extended Events yang telah diambil sebelumnya (.xel) dalam tampilan grid Query Profiler.

  1. Buka Palet Perintah (Ctrl+Shift+P atau Cmd+Shift+P).

  2. Pilih MSSQL: Buka file Profiler XEL....

  3. Telusuri ke dan pilih file .xel yang ingin Anda buka.

File terbuka di panel Profiler baca-saja. Acara dimuat dan ditampilkan dalam grid yang sama dengan kemampuan untuk memfilter. Kontrol Mulai, Jeda, dan Hentikan tidak tersedia karena file bukan sesi langsung.

Skenario yang didukung

Profiler Kueri berfungsi dengan target SQL Server dan Azure SQL berikut:

Target Templat yang didukung
SQL Server (lokal, VM, kontainer) Standard_OnPrem, TSQL_OnPrem, TSQL_Locks, TSQL_Duration
Azure SQL Database Standard_Azure

Nota

Jika Anda memilih templat yang tidak didukung atau mencoba sesi tingkat server di Azure SQL Database, Query Profiler memperlihatkan pesan kesalahan yang ditargetkan dan menyarankan templat yang sesuai.

Keterbatasan

  • Tidak ada integrasi AI atau GitHub Copilot dalam pratinjau ini.
  • Tidak ada korelasi lintas database atau lintas server di luar apa yang disediakan oleh Extended Events dan templat saat ini.
  • Tidak ada penyimpanan atau pemuatan preset filter.
  • Tidak ada pemutaran ulang jejak atau pembuatan skrip dari peristiwa yang direkam.
  • Tidak ada analisis offline tanpa file .xel yang ada atau koneksi langsung yang aktif.
  • Titik akhir Azure SQL Managed Instance tidak dapat dijamin didukung dalam pratinjau ini.

Tanggapan dan dukungan

Jika Anda memiliki ide, umpan balik, atau ingin terlibat dengan komunitas, bergabunglah dengan diskusi di https://aka.ms/vscode-mssql-discussions. Untuk melaporkan bug, kunjungi https://aka.ms/vscode-mssql-bug. Untuk meminta fitur baru, buka https://aka.ms/vscode-mssql-feature-request.