Bagikan melalui


Gambaran umum rencana eksekusi

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Agar dapat menjalankan kueri, Mesin Database SQL Server harus menganalisis pernyataan untuk menentukan cara yang efisien untuk mengakses data yang diperlukan dan memprosesnya. Analisis ini ditangani oleh komponen yang disebut Pengoptimal Kueri. Input ke Pengoptimal Kueri terdiri dari kueri, skema database (definisi tabel dan indeks), dan statistik database. Pengoptimal Kueri menyusun satu atau beberapa rencana eksekusi kueri, terkadang disebut sebagai rencana kueri atau rencana eksekusi. Pengoptimal Kueri memilih rencana kueri menggunakan serangkaian heuristik untuk menyeimbangkan waktu kompilasi dan merencanakan optimalitas untuk menemukan rencana kueri yang baik.

Tip

Untuk informasi selengkapnya tentang pemrosesan kueri dan rencana eksekusi kueri, lihat bagian Mengoptimalkan pernyataan SELECT dan penembolokan rencana eksekusi dan menggunakan kembali panduan arsitektur pemrosesan Kueri.

Untuk informasi tentang melihat rencana eksekusi di SQL Server Management Studio dan Studio Data Azure, lihat Menampilkan dan menyimpan rencana eksekusi.

Rencana eksekusi kueri adalah definisi dari:

  • Urutan di mana tabel sumber diakses.

    Biasanya, ada banyak urutan di mana server database dapat mengakses tabel dasar untuk membangun tataan hasil. Misalnya, jika pernyataan mereferensikan tiga tabel, server database dapat terlebih dahulu mengakses TableA, gunakan data dari TableA untuk mengekstrak baris yang SELECT cocok dari TableB, lalu menggunakan data dari TableB untuk mengekstrak data dari TableC. Urutan lain di mana server database dapat mengakses tabel adalah:
    TableC, , TableBTableA, atau
    TableB, , TableATableC, atau
    TableB, , TableCTableA, atau
    TableC, , TableATableB

  • Metode yang digunakan untuk mengekstrak data dari setiap tabel.

    Umumnya, ada berbagai metode untuk mengakses data di setiap tabel. Jika hanya beberapa baris dengan nilai kunci tertentu yang diperlukan, server database dapat menggunakan indeks. Jika semua baris dalam tabel diperlukan, server database dapat mengabaikan indeks dan melakukan pemindaian tabel. Jika semua baris dalam tabel diperlukan tetapi ada indeks yang kolom kuncinya berada di ORDER BY, melakukan pemindaian indeks alih-alih pemindaian tabel mungkin menyimpan tataan hasil terpisah. Jika tabel kecil, pemindaian tabel mungkin merupakan metode yang paling efisien untuk hampir semua akses ke tabel.

  • Metode yang digunakan untuk menghitung perhitungan, dan cara memfilter, mengagregasi, dan mengurutkan data dari setiap tabel.

    Saat data diakses dari tabel, ada berbagai metode untuk melakukan penghitungan atas data seperti menghitung nilai skalar, dan untuk menggabungkan dan mengurutkan data seperti yang ditentukan dalam teks kueri, misalnya saat menggunakan GROUP BY klausa atau ORDER BY , dan cara memfilter data, misalnya saat menggunakan WHERE klausa atau HAVING .