Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara Membuat Rencana Eksekusi di SQL Server

Rencana eksekusi kueri SQL dihasilkan saat pengoptimal kueri menentukan cara paling efisien untuk mengirimkan data yang diminta oleh kueri. Rencana ini adalah representasi dari operasi database yang dijalankan kueri, menunjukkan objek mana yang digunakan kueri, jenis penggunaan, dan cara penggunaannya.

Sudah menjadi rahasia umum bahwa kueri yang berkinerja buruk adalah indikator utama bahwa ada sesuatu yang salah dalam database. Jadi melihat "di balik kap mesin" pada rencana eksekusi kueri adalah salah satu cara terbaik untuk menentukan penyebab masalah kinerja.

Informasi yang tersedia dalam rencana eksekusi SQL sangat berharga untuk pemecahan masalah DBA masalah kinerja kueri SQL Server karena memungkinkan mereka untuk mendapatkan akar penyebab masalah dan menyetel kueri sesuai kebutuhan.

Memeriksa rencana eksekusi SQL adalah salah satu langkah pertama dalam penyetelan kinerja karena rencana tersebut dengan jelas menyoroti sumber masalah yang paling mungkin dalam kueri, termasuk operator yang mahal, jumlah catatan yang tidak biasa yang mengalir di antara operator, dan operator tambahan.

DBA juga mendapat manfaat dari peringatan rencana eksekusi yang memperingatkan pengguna tentang masalah seperti tumpahan tempdb dan indeks yang hilang.

Jenis Rencana Eksekusi SQL

Ada dua jenis utama rencana eksekusi SQL:perkiraan rencana eksekusi dan rencana estimasi aktual.

Perkiraan rencana pelaksanaan paling baik digambarkan sebagai semacam ramalan cuaca. Sesuai dengan namanya, perkiraan rencana eksekusi menggunakan perhitungan perkiraan, statistik, dan parameter lain untuk memperkirakan langkah-langkah yang mungkin diikuti oleh SQL Server Engine untuk mengeksekusi kueri yang dikirimkan setelah mengurai kueri.

Anda tidak perlu menjalankan kueri untuk menghasilkan jenis rencana eksekusi ini, jadi ini bagus untuk kueri kompleks yang membutuhkan waktu lama untuk membuat rencana eksekusi yang sebenarnya.

Rencana eksekusi aktual mengeksekusi kueri yang dikirimkan dan kemudian menampilkan langkah-langkah yang terjadi selama eksekusi. Jenis rencana ini menampilkan perhitungan nyata dan langkah-langkah aktual (bukan perkiraan) yang diikuti oleh SQL Server Engine.

Karena jenis rencana eksekusi ini benar-benar menjalankan kueri, ini adalah pilihan yang baik untuk memecahkan masalah kinerja kueri.

Cara Membuat Rencana Eksekusi SQL

Hackernoon memberikan deskripsi singkat tentang cara menghasilkan perkiraan dan rencana eksekusi aktual. Prosesnya dapat diringkas menjadi langkah-langkah berikut:

Buat perkiraan rencana eksekusi

  • Buka database
  • Sorot kueri
  • Klik “Kueri”
  • Klik “Tampilkan Perkiraan Rencana Eksekusi”, atau gunakan pintasan Ctrl + L

Buat rencana eksekusi yang sebenarnya

  • Buka database
  • Sorot kueri
  • Klik “Kueri”
  • Klik “Sertakan Rencana Eksekusi Aktual”, atau gunakan pintasan Ctrl + M

Anda akan menemukan penjelasan mendetail tentang cara membuat perkiraan rencana eksekusi dan rencana eksekusi aktual dalam dokumentasi resmi Microsoft.

Mengapa Rencana Eksekusi SQL Perkiraan dan Aktual Mungkin Berbeda

Secara umum, rencana pelaksanaan yang diperkirakan dan yang sebenarnya akan serupa. Namun, ada kalanya mereka berbeda. Ini normal dan terjadi karena statistik basis data dan data aktual berbeda. Perbedaan ini dapat diperkenalkan melalui beberapa saluran:

Paralelisme

Biaya paket dapat menyebabkan dua rencana eksekusi dibuat untuk kueri yang dikirimkan. SQL Server Engine akan memilih apakah akan menggunakan paket paralel atau tidak, jadi mungkin satu paket menggunakan paket paralel dan paket lainnya menggunakan paket serial.

Statistik basi

Saat Anda memasukkan data ke dalam dan menghapus data dari tabel dan indeks atau mengubah tabel atau skema indeks, statistik akan berubah. Jika statistik tidak diperbarui secara berkala, rencana pelaksanaan yang sebenarnya akan berbeda dari rencana pelaksanaan yang diperkirakan.

Estimasi paket tidak valid

Jika kueri berisi pernyataan yang memerlukan tabel sementara yang hanya ada jika kueri dijalankan, membuat perkiraan rencana eksekusi akan membuat kesalahan karena tidak ada kueri yang dieksekusi. Kueri yang sama akan berjalan dengan baik dalam rencana eksekusi yang sebenarnya karena kueri telah dieksekusi.

Rencana eksekusi SQL adalah sumber daya yang berharga untuk memecahkan masalah kinerja SQL Server. Mengetahui cara membuat perkiraan dan rencana eksekusi SQL aktual adalah alat penting untuk setiap DBA yang ditugaskan untuk menyetel kueri untuk kinerja yang optimal.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat daftar semua kolom dalam sebuah tabel?

  2. Cara mendapatkan semua Tabel dengan atau tanpa Batasan Kunci Utama di Database Sql Server - Tutorial SQL Server / TSQL 59

  3. Secara terprogram mengambil sumber prosedur tersimpan SQL Server yang identik dengan sumber yang dikembalikan oleh gui SQL Server Management Studio?

  4. Akankah Pekerjaan SQL Server melewati proses terjadwal jika sudah berjalan?

  5. Buat Pemicu untuk mencatat SQL yang memengaruhi tabel?