Referensi operator showplan logis dan fisik

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceDatabase SQL di Microsoft Fabric

Operator menjelaskan bagaimana Mesin Database SQL Server menjalankan kueri. Pengoptimal Kueri menggunakan operator untuk membuat rencana kueri untuk membuat hasil atau melakukan operasi yang ditentukan dalam kueri. Rencana kueri adalah pohon yang terdiri dari operator fisik. Operator paling kiri adalah root, yang mendorong eksekusi keseluruhan. Untuk pernyataan SELECT, root biasanya mengembalikan set hasil ke klien. Untuk pernyataan modifikasi data (INSERT, UPDATE, DELETE, MERGE) atau pernyataan seperti SELECT...INTO, akar memandu modifikasi dan mungkin tidak menghasilkan pengembalian baris. Operator tanpa input, di ujung kanan pohon, adalah simpul daun yang biasanya membaca data dari penyimpanan. Operator menengah mengubah, memfilter, atau menggabungkan data saat mengalir dari kanan ke kiri melalui rencana.

Anda dapat melihat rencana pelaksanaan kueri dengan menggunakan pernyataan SET SHOWPLAN, opsi rencana eksekusi grafis di SQL Server Management Studio, atau peristiwa showplan dalam Extended Events.

Jenis operator

Operator diklasifikasikan sebagai operator logis dan fisik.

Operator logis

Operator logis menjelaskan operasi aljabar relasional yang digunakan untuk memproses kueri. Dengan kata lain, operator logis menjelaskan secara konseptual operasi apa yang perlu dilakukan.

Operator fisik

Operator fisik menerapkan operasi yang dijelaskan oleh operator logis. Setiap operator fisik adalah objek atau rutinitas yang melakukan operasi. Misalnya, beberapa operator fisik mengakses kolom atau baris dari tabel, indeks, atau tampilan. Operator fisik lainnya melakukan operasi seperti perhitungan, agregasi, pemeriksaan integritas data, atau gabungan. Operator fisik memiliki biaya yang terkait dengannya.

Operator fisik menginisialisasi, mengumpulkan data, dan menutup. Secara khusus, operator fisik dapat menjawab tiga panggilan metode berikut:

  • Open(): Metode ini Open() menyebabkan operator fisik menginisialisasi dirinya sendiri dan menyiapkan struktur data yang diperlukan. Meskipun operator fisik mungkin menerima banyak Open() panggilan, biasanya hanya menerima satu panggilan.

  • GetRow(): Metode ini GetRow() menyebabkan operator fisik mendapatkan baris data pertama, atau berikutnya. Operator fisik mungkin menerima nol atau banyak GetRow() panggilan.

  • Close(): Metode ini Close() menyebabkan operator fisik melakukan beberapa operasi pembersihan dan mematikan dirinya sendiri. Operator fisik hanya menerima satu Close() panggilan, tetapi Close() panggilan tidak selalu dijamin.

Metode GetRow() mengembalikan satu baris data, dan jumlah pemanggilannya muncul sebagai ActualRows dalam output showplan yang dihasilkan oleh showplan grafis dan XML. Untuk informasi selengkapnya tentang opsi ini SET , lihat MENGATUR PROFIL STATISTIK dan MENGATUR XML STATISTIK.

Elemen bahasa

Beberapa operator dalam rencana kueri mewakili elemen Transact-SQL language daripada operasi relasional. Ini termasuk konstruksi seperti penetapan variabel, konversi jenis, dan alur kontrol (IF/WHILE). Elemen bahasa tidak diklasifikasikan sebagai operator logis atau fisik.

Pengikatan ulang, putar balik, dan akhir pemindaian

Penghitung berikut muncul dalam output showplan dan membantu Anda memahami seberapa sering operator berjalan lagi.

Jumlah ActualRebinds dan ActualRewinds yang muncul dalam output showplan mengacu pada berapa kali metode dipanggil Open() . Kecuali operator berada di sisi dalam gabungan perulangan berlapis, ActualRebinds sama dengan satu, dan ActualRewinds sama dengan nol. Jika operator berada di sisi dalam gabungan perulangan, jumlah total pengikatan ulang dan putar balik harus sama dengan jumlah baris yang diproses di sisi luar gabungan. Pengikatan ulang berarti bahwa satu atau beberapa parameter yang berkorelasi dari gabungan berubah dan sisi dalam harus dievaluasi ulang. Rewind berarti bahwa tidak ada parameter yang berkorelasi berubah dan himpunan hasil internal sebelumnya dapat digunakan kembali.

ActualRebinds dan ActualRewinds ada dalam output showplan XML yang diproduksi dengan menggunakan SET STATISTICS XML ON dan showplan grafis. Mereka diisi untuk operator seperti Index Spool, Remote Query, Row Count Spool, Sort, Table Spool, dan Table-valued Function. ActualRebinds dan ActualRewinds mungkin juga diisi untuk operator seperti Assert dan Filter saat atribut StartupExpression diatur ke TRUE.

Ketika ActualRebinds dan ActualRewinds ada dalam showplan XML, mereka sebanding dengan EstimateRebinds dan EstimateRewinds. Saat tidak ada, perkiraan jumlah baris (EstimateRows) sebanding dengan jumlah baris aktual (ActualRows). Output showplan grafis aktual menampilkan nol untuk pengikatan ulang aktual dan putar balik aktual saat tidak ada.

Penghitung terkait, ActualEndOfScans, tersedia dalam format XML dan tampilan grafik rencana pemrosesan. Setiap kali operator fisik mencapai akhir aliran datanya, penghitung ini bertambah satu per satu. Operator fisik dapat mencapai akhir aliran datanya nol, satu, atau beberapa kali. Seperti halnya mengikat ulang dan menggulir balik, hitung akhir pemindaian bisa lebih dari satu, hanya jika operator berada di bagian dalam gabungan iterasi. Jumlah akhir pemindaian harus kurang dari atau sama dengan penjumlahan dari jumlah pengikatan ulang dan putar balik.

Cara Pengoptimal Kueri memetakan operator logis dan fisik

Pengoptimal Kueri membuat rencana kueri sebagai pohon yang terdiri dari operator logis. Setelah Pengoptimal Kueri membuat rencana, pengoptimal memilih operator fisik untuk setiap operator logis. Pengoptimal Kueri menggunakan pendekatan berbasis biaya untuk menentukan operator fisik mana yang menerapkan operator logis.

Biasanya, operasi logis dapat diimplementasikan oleh beberapa operator fisik. Namun, dalam kasus yang jarang terjadi, operator fisik juga dapat menerapkan beberapa operasi logis.

Pengeksekusian mode batch

Eksekusi mode batch adalah metode pemrosesan kueri yang digunakan untuk memproses sejumlah baris bersama-sama (karenanya istilah batch) daripada memproses satu baris setiap kali. Pemrosesan modus batch menggunakan algoritma yang dioptimalkan untuk CPU berinti ganda dan peningkatan lalu lintas memori pada perangkat keras modern. Mode batch dapat digunakan oleh sekumpulan operator untuk objek rowstore dan columnstore. Untuk informasi selengkapnya, lihat Panduan arsitektur pemrosesan kueri.

Cara membaca rencana eksekusi

Dalam rencana eksekusi grafis, panah menunjuk dari kanan ke kiri, mewakili aliran data. Pada waktu eksekusi, ini berfungsi ke arah yang berlawanan: operator berbasis tarik dan hanya bekerja saat diminta data.

Pengendali akar memanggil GetRow() pada anaknya, yang kemudian memanggil anak-anaknya sendiri, hingga node daun membaca baris dari penyimpanan dan mengembalikannya melalui pusat urutan. Pemindaian Indeks Berkluster di bawah operator Atas, misalnya, tidak memindai seluruh tabel. Pemindaian berhenti segera setelah Top memiliki baris yang cukup. Dalam mode batch, setiap panggilan mengembalikan sekumpulan baris, bukan satu baris tunggal. Kedua arah membaca berguna: kanan ke kiri menunjukkan data apa yang memasuki setiap operator, sementara kiri ke kanan menunjukkan operator mana yang menggerakkan proses.

Deskripsi operator

Bagian ini berisi deskripsi operator logis dan fisik. Anda bisa menampilkan properti paket dan operator kueri menggunakan panel Properti dalam tampilan Rencana Kueri SQL Server Management Studio (SSMS).

Petunjuk

Setiap kali ikon rencana eksekusi grafis tertentu memiliki lingkaran kuning dengan dua panah kanan-ke-kiri, itu berarti operator berjalan secara paralel. Untuk informasi selengkapnya tentang paralelisme, rujuk Panduan Arsitektur Tugas dan Utas.

Ikon Showplan Operator Deskripsi
Gabungan Adaptif Operator Gabungan Adaptif memungkinkan pilihan gabungan hash atau metode gabungan perulangan berlapis untuk ditangguhkan hingga setelah input pertama dipindai.

Adaptive Join adalah operator fisik. Untuk informasi selengkapnya, lihat Memahami gabungan adaptif.
Aggregat Operator Agregat menghitung ekspresi yang berisi satu atau beberapa fungsi agregat.

Agregat adalah operator logis. Ini dapat diimplementasikan oleh operator Stream Aggregate, Hash Match, Window Aggregate, atau UserDefinedAggregate (CLR).
Ekspresi Aritmatika Operator Ekspresi Aritmatika menghitung nilai baru dari nilai yang ada dalam baris. Ekspresi Aritmatika tidak digunakan dalam versi SQL Server yang lebih baru.
Assert Operator Assert memverifikasi kondisi. Misalnya, ini memvalidasi integritas referensial atau memastikan bahwa subkueri skalar mengembalikan satu baris. Untuk setiap baris input, operator Assert mengevaluasi ekspresi di panel Properti dari rencana eksekusi. Jika ekspresi ini mengevaluasi ke NULL, baris diteruskan melalui operator Assert dan eksekusi kueri berlanjut . Jika ekspresi ini dievaluasi menjadi nilai bukan nol, kesalahan yang sesuai akan ditimbulkan.

Assert adalah operator fisik.
Tetapkan Operator Tetapkan menetapkan nilai ekspresi atau konstanta ke variabel.

Tetapkan adalah elemen bahasa.
Tidak Async Concat Operator Async Concat hanya digunakan dalam kueri jarak jauh (kueri terdistribusi). Ini memiliki n anak dan satu simpul induk. Biasanya, beberapa anak adalah komputer jarak jauh yang berpartisipasi dalam kueri terdistribusi. Asinkron Concat mengeluarkan Open() panggilan ke semua anak secara bersamaan dan kemudian menerapkan bitmap untuk setiap anak. Untuk setiap bit yang merupakan 1, Async Concat mengirimkan baris output ke simpul induk sesuai permintaan.

Async Concat adalah operator fisik.
Pembangunan Tabel Hash Batch Operator Batch Hash Table Build membangun tabel hash batch untuk indeks kolom penyimpan yang dioptimalkan untuk memori.

Berlaku untuk: hanya SQL Server 2012 (11.x).
Bitmap SQL Server menggunakan operator Bitmap untuk menerapkan pemfilteran bitmap dalam rencana kueri paralel. Pemfilteran bitmap mempercepat pemrosesan kueri dengan menghilangkan baris dengan nilai kunci yang tidak dapat menghasilkan rekaman gabungan apa pun sebelum melewati baris melalui operator lain seperti operator Paralelisme . Filter bitmap menggunakan representasi ringkas dari sekumpulan nilai dari tabel di satu bagian pohon operator untuk memfilter baris dari tabel kedua di bagian lain pohon. Dengan menghapus baris yang tidak perlu di awal kueri, operator berikutnya memiliki lebih sedikit baris untuk dikerjakan, dan performa kueri secara keseluruhan meningkat. Pengoptimal menentukan kapan bitmap cukup selektif untuk berguna dan operator mana yang akan menerapkan filter.

Bitmap adalah operator fisik.
Buat Bitmap Operator Pembuatan Bitmap muncul di output showplan di mana bitmap dibentuk.

Bitmap Create adalah operator logis.
Tidak Redistribusi Cabang Dalam rencana kueri paralel, terkadang ada wilayah konseptual iterator. Semua iterator dalam wilayah tersebut dapat berjalan pada utas paralel. Wilayah-wilayah tersebut harus dijalankan secara berurutan. Beberapa iterator Paralelisme dalam wilayah individual disebut sebagai Repartisi Cabang. Iterator Paralelisme pada batas dua wilayah tersebut disebut Repartisi Segmen.

Partisi Ulang Cabang dan Partisi Ulang Segmen adalah operator logis.
Menyiarkan Siaran memiliki satu simpul anak dan n simpul induk. Broadcast mengirimkan baris masukannya ke beberapa konsumen sesuai permintaan. Setiap konsumen mendapatkan semua baris. Misalnya, jika semua konsumen adalah sisi build dari gabungan hash, maka n salinan tabel hash dibangun.

Siaran adalah operator logis.
Penghapusan Indeks Berkluster Operator Clustered Index Delete menghapus baris dari indeks berkluster yang ditentukan dalam properti Object, yang tercantum di panel Properties dari showplan grafis dan XML. Jika SeekPredicate atau Predicate ada, maka hanya baris yang memenuhi predikat yang dihapus.

Catatan: Properti Objek mungkin mencantumkan indeks non-kluster tambahan yang dimodifikasi operator secara bersamaan dengan indeks berkluster.

Penghapusan Indeks Berkluster adalah operator fisik.
Sisipkan Indeks Berkluster Operator Clustered Index Insert menyisipkan baris dari inputnya ke dalam indeks berkluster yang ditentukan dalam Properti Objek, yang tercantum di Panel Properti dari showplans grafis dan XML. Showplan XML menyertakan properti SetPredicate dan ColumnReference, yang dapat digunakan untuk menentukan nilai yang diatur untuk setiap kolom. Jika Clustered Index Insert tidak memiliki turunan untuk menyisipkan nilai, baris yang disisipkan diambil dari operator Insert itu sendiri.

Catatan: Properti Objek mungkin mencantumkan indeks non-kluster tambahan yang dimodifikasi operator secara bersamaan dengan indeks berkluster.

Insert Indeks Berkluster adalah operator fisik.
Clustered Index Merge Operator Penggabungan Indeks Terkluster menerapkan aliran data gabungan ke indeks berkluster. Operator menghapus, memperbarui, atau menyisipkan baris dari indeks berkluster yang ditentukan dalam properti Objek , yang tercantum di panel Properti dari showplans grafis dan XML. Operasi aktual yang dilakukan tergantung pada nilai runtime properti ActionColumn .

Catatan: Properti Objek mungkin mencantumkan indeks non-kluster tambahan yang dimodifikasi operator secara bersamaan dengan indeks berkluster.

Penggabungan Indeks Berkluster adalah operator fisik.
Pemindaian Indeks Terkelompok Operator Pemindaian Indeks Berkluster memindai indeks berkluster yang ditentukan dalam properti Objek, yang tercantum di panel Properti dari showplan grafis dan XML. Saat Predikat opsional ada, hanya baris yang memenuhi predikat yang dikembalikan. Jika properti Diurutkan di panel Properti atau XML showplan adalah True, pemroses kueri telah menentukan bahwa baris harus dikembalikan sesuai pengurutan dari indeks berkerumun. Jika properti Ordered adalah False, maka mesin basis data memindai indeks tanpa menjamin urutan dari output. Properti SeekPredicate hanya tersedia untuk indeks berkluster yang dipartisi.

Clustered Index Scan adalah operator logis dan fisik.
Pencarian Indeks Terkluster Operator Pencarian Indeks Terkluster menggunakan kemampuan mencari indeks untuk mengambil baris dari indeks berkluster. Object property, yang tercantum di pane Properti dari showplan grafis dan XML, berisi nama indeks berkluster yang sedang digunakan. SeekPredicate berisi predikat untuk pencarian. Mesin Database menggunakan indeks untuk memproses hanya baris yang memenuhi SeekPredicate. Ini juga dapat mencakup properti Predikat di mana Mesin Database mengevaluasi semua baris yang memenuhi SeekPredicate. Namun, ini bersifat opsional dan tidak menggunakan indeks untuk menyelesaikan proses tersebut. Properti Yang Diurutkan biasanya Benar untuk operator ini.

Clustered Index Seek adalah operator logis dan fisik.
Pembaruan Indeks Klaster Operator Pemutakhiran Indeks Terkluster memperbarui baris input dalam indeks berkluster yang ditentukan dalam properti Objek yang tercantum di panel Properti dari showplans grafis dan XML. Jika properti Predikat ada, hanya baris yang memenuhi predikat ini yang diperbarui. Jika properti SetPredicate ada, setiap kolom yang diperbarui diatur ke nilai ini. Jika properti DefineValue ada, nilai yang ditentukan operator ini dicantumkan. Nilai-nilai ini mungkin dirujuk dalam SET klausul atau di tempat lain dalam operator ini dan di tempat lain dalam kueri ini.

Catatan: Properti Objek mungkin mencantumkan indeks non-kluster tambahan yang dimodifikasi operator secara bersamaan dengan indeks berkluster.

Update Indeks Terkluster adalah operator logis dan fisik.
Tutup Operator Ciutkan mengoptimalkan pemrosesan pembaruan. Saat pembaruan dilakukan, pembaruan dapat dipisahkan (menggunakan operator Pisahkan ) menjadi penghapusan dan penyisipan. Panel Properti berisi predikat kelompokkan berdasarkan yang mengatur daftar kolom kunci. Jika prosesor kueri menemukan baris yang berdekatan yang menghapus dan menyisipkan nilai kunci yang sama, prosesor kueri menggantikan operasi terpisah ini dengan satu operasi pembaruan yang lebih efisien.

Runtuhkan adalah operator logis dan fisik.
Penghapusan Indeks Penyimpan Kolom Operator Indeks Penyimpan Kolom Hapus mewakili penghapusan baris dari indeks penyimpan kolom yang ditentukan dalam properti Objek, yang tercantum di panel properti dari showplans grafis dan XML. Penghapusan terjadi melalui Penghapusan Indeks Berkluster untuk indeks penyimpan kolom berkluster, dan melalui operator Hapus Indeks untuk indeks penyimpan kolom tidak berkluster. Jenis indeks (Terkluster, NonClustered, ViewClustered, atau ViewNonClustered) ditentukan dalam properti IndexKind di showplan XML. SeekPredicate tidak didukung untuk Hapus Indeks Penyimpan Kolom. Baris yang akan dihapus dibaca dari operator bawahan.

Penghapusan Indeks Kolomstore adalah sebuah operator fisik.
Penyisipan Columnstore Index Operator Indeks Penyimpan Kolom mewakili penyisipan baris dari inputnya ke dalam indeks penyimpan kolom yang ditentukan dalam properti Objek yang tercantum dalam panel Properti dari showplan grafis dan XML. Penyisipan terjadi melalui Penyisipan Indeks Berkluster untuk indeks penyimpan kolom berkluster, dan melalui operator Penyisipan Indeks untuk indeks penyimpan kolom tidak berkluster. Jenis indeks (Terkluster, NonClustered, ViewClustered, atau ViewNonClustered) ditentukan dalam properti IndexKind di showplan XML. Showplan XML menyertakan properti SetPredicate dan ColumnReference, yang dapat digunakan untuk menentukan nilai yang ditetapkan untuk setiap kolom.

Indeks Columnstore adalah operator fisik.
Penggabungan Indeks Columnstore Indeks Penyimpan Kolom Penggabungan mewakili penerapan aliran data penggabungan menggunakan operator Penggabungan Indeks Berkluster. Operator menghapus, memperbarui, atau menyisipkan baris dari indeks penyimpan kolom berkluster yang ditentukan pada Properti Objek, yang tercantum di Panel Properti dari showplan grafis dan XML. Jenis indeks (Terkluster, NonClustered, ViewClustered, atau ViewNonClustered) ditentukan dalam properti IndexKind di showplan XML. Operasi aktual yang dilakukan tergantung pada nilai runtime properti ActionColumn .

Penggabungan Columnstore Index adalah operator fisik.
Pemindaian Indeks Penyimpan Kolom Operator Pemindaian Indeks Columnstore mewakili pemindaian indeks columnstore yang ditentukan dalam Properti Objek, yang tercantum di Panel Properti dari showplans grafis dan XML. Pemindaian terjadi melalui Clustered Index Scan untuk indeks kolom-tertumpuk, dan melalui Index Scan operator untuk indeks kolom non-tertumpuk. Jenis indeks (Terkluster, NonClustered, ViewClustered, atau ViewNonClustered) ditentukan dalam properti IndexKind di showplan XML. Saat Predikat opsional ada, hanya baris yang memenuhi predikat yang dikembalikan. Properti SeekPredicate hanya tersedia untuk indeks penyimpan kolom yang dipartisi, dan hanya untuk kondisi yang setara atau tidak setara. Jika kolom yang dipartisi berada dalam predikat kueri, eliminasi partisi dan eliminasi grup baris dapat mengurangi jumlah grup baris yang akan dipindai.

Pemindaian Indeks Kolomstore adalah operator fisik.
Pembaruan Indeks Columnstore Operator Pembaruan Indeks Penyimpan Kolom mewakili pembaruan ke satu atau beberapa baris dalam indeks penyimpan kolom yang ditentukan dalam Properti Objek, yang terdaftar dalam panel Properti pada showplans grafis dan XML. Pembaruan terjadi melalui operator Pembaruan Indeks Berkluster untuk indeks penyimpan kolom berkluster, dan melalui operator Pembaruan Indeks untuk indeks penyimpan kolom non-kluster. Jenis indeks (Terkluster, NonClustered, ViewClustered, atau ViewNonClustered) ditentukan dalam properti IndexKind di showplan XML. SeekPredicate tidak didukung untuk Update Indeks Kolomstore. Baris yang akan diperbarui dibaca dari operator bawahan. Jika properti SetPredicate ada, setiap kolom yang diperbarui diatur ke nilai ini. Jika properti DefineValue ada, nilai yang ditentukan operator ini dicantumkan. Nilai-nilai ini mungkin dirujuk dalam SET klausul atau di tempat lain dalam operator ini dan di tempat lain dalam kueri ini.

Pembaruan Indeks Kolom adalah operator fisik.
Skalar Komputasi Operator Skalar Komputasi mengevaluasi ekspresi untuk menghasilkan nilai skalar komputasi. Ini kemudian dapat dikembalikan ke pengguna, direferensikan di tempat lain dalam kueri, atau keduanya. Contoh keduanya berada dalam predikat filter atau predikat gabungan.

Operator Komputasi Skalar yang muncul dalam rencana tampilan yang dihasilkan mungkin tidak berisi elemen RunTimeInformation. Dalam showplan grafis, Baris Aktual, Pengikatan Ulang Aktual, dan Putar Ulang Aktual mungkin tidak ada dari jendela Properti ketika opsi Sertakan Rencana Eksekusi Aktual dipilih di SQL Server Management Studio. Ketika ini terjadi, itu berarti bahwa meskipun operator ini digunakan dalam rencana kueri yang dikompilasi, pekerjaan mereka dilakukan oleh operator lain dalam rencana kueri runtime. Jumlah eksekusi dalam output showplan yang dihasilkan oleh SET STATISTICS PROFILE adalah setara dengan jumlah pengikatan ulang dan pengulangan dalam showplans yang dihasilkan oleh SET STATISTICS XML.

Skalar Komputasi adalah operator logis dan fisik.
Penggabungan Operator Concatenasi memindai berbagai input, mengembalikan setiap baris hasil pemindaian. Perangkaian biasanya digunakan untuk mengimplementasikan konstruksi Transact-SQL UNION ALL. Operator fisik Penggambungan memiliki dua input atau lebih dan satu output. Konkatenasi menyalin baris dari aliran input pertama ke aliran output, kemudian mengulangi operasi ini untuk setiap aliran input tambahan.

Penggabungan adalah operator logis dan fisik.
Kondisi (Jika dan Selama) Operator Kondisional melakukan pemrosesan kondisional berdasarkan IF atau WHILE perulangan. Jika dan Sementara adalah elemen bahasa.
Pemindaian Konstanta Operator Constant Scan memperkenalkan satu atau beberapa baris konstanta ke dalam query. Operator Skalar Komputasi sering digunakan setelah Pemindaian Konstan untuk menambahkan kolom ke baris yang dihasilkan oleh Pemindaian Konstan. Constant Scan dapat menghasilkan satu atau beberapa baris dengan nol atau lebih kolom.

Pemindaian Konstan adalah operator fisik.
Mengonversi Operator Konversi mengonversi satu jenis data skalar ke jenis data skalar lainnya.

Konversi adalah elemen bahasa.
Cross Join Operator Gabungan Silang menggabungkan setiap baris dari input pertama (atas) dengan setiap baris dari input kedua (bawah).

Cross Join adalah operator logis.
Kursor Operator logis dan fisik Kursor digunakan untuk menjelaskan bagaimana kueri atau pembaruan yang melibatkan operasi kursor dijalankan. Operator fisik menjelaskan algoritma implementasi fisik yang digunakan untuk memproses kursor; misalnya, menggunakan kursor berbasis keyset. Setiap langkah saat menjalankan kursor melibatkan operator fisik. Operator logis menjelaskan properti kursor, seperti kursor hanya dibaca.

Operator logis termasuk Asinkron, Optimis, Utama, Baca Saja, Kunci Gulir, Sekunder, dan Sinkron.

Operator fisik termasuk Dynamic, Fetch Query, Keyset, Population Query, Refresh Query, dan Snapshot.
Nyatakan Operator Deklarasikan mengalokasikan variabel lokal dalam rencana kueri.

Deklarasikan adalah elemen bahasa.
Hapus Operator Hapus menghapus baris (dari objek) yang memenuhi predikat opsional di panel Properti .

Hapus adalah operator logis.
Pemindaian Dihapus Dalam pemicu, operator Deleted Scan memindai tabel yang dihapus.

Pemindaian yang Dihapus adalah operator logis dan fisik.
Tidak Unik Operator Distinct menghapus duplikat dari set baris atau dari kumpulan nilai.

Distinct adalah operator logis.
Tidak Pengurutan Yang Berbeda Operator Penyortiran Unik memindai input, menghapus duplikat, dan melakukan pengurutan menurut kolom yang ditentukan dalam pengurutan unik berdasarkan predikat di panel Properti.

Distinct Sort adalah operator logis.
Mendistribusikan Aliran Operator Distribute Streams hanya digunakan dalam rencana kueri paralel. Operator Distribute Streams mengambil satu aliran input rekaman dan menghasilkan beberapa aliran output. Konten dan format rekaman tidak diubah. Setiap rekaman dari aliran input muncul di salah satu aliran output, kecuali jenis partisinya adalah Siaran, dalam hal ini setiap baris input muncul di semua aliran output. Operator ini secara otomatis mempertahankan urutan relatif rekaman input dalam aliran output. Biasanya, hashing digunakan untuk menentukan saluran keluaran yang dimiliki oleh rekaman input tertentu.

Jika output dipartisi, panel Properti berisi predikat untuk kolom partisi dan kolom partisi.

Distribute Streams adalah operator logis.
Dinamis Operator Dinamis menggunakan kursor yang dapat melihat semua perubahan yang dibuat oleh orang lain.

Dinamis adalah operator fisik.
Eager Spool Operator Eager Spool mengambil seluruh input, menyimpan setiap baris dalam objek sementara tersembunyi yang disimpan dalam database tempdb. Jika operator diganti (misalnya, oleh operator Nested Loops ) tetapi tidak diperlukan pengikatan ulang, data yang di-spool digunakan alih-alih memindai ulang input. Jika pengikatan ulang diperlukan, data yang ditampung dibuang dan objek penampung dibangun kembali dengan memindai kembali input (rebound). Operator Eager Spool membangun file penampungnya dengan cara "bersemangat": ketika operator induk penampung meminta baris pertama, operator penampung mengonsumsi semua baris dari operator inputnya dan menyimpannya di penampung.

Eager Spool adalah operator logis.
Ambil Kueri Operator Ambil Kueri mengambil baris ketika suatu pengambilan data dilakukan terhadap kursor.

Fetch Query adalah operator fisik.
Filter Operator Filter memindai input, hanya mengembalikan baris yang memenuhi ekspresi filter (predikat) yang muncul di panel Properti .
Tidak Alur Tersendiri Operator Flow Distinct memindai input, menghapus duplikat. Sedangkan operator Distinct menggunakan semua input sebelum menghasilkan output apa pun, operator Flow Distinct mengembalikan setiap baris sesuai dengan yang diperoleh dari input (kecuali baris tersebut adalah duplikat, dalam hal ini dibuang).

Flow Distinct adalah operator logis.
Pemeriksaan Referensi Kunci Asing Operator Pemeriksaan Referensi Kunci Asing melakukan pemeriksaan integritas referensial di tempat, dengan membandingkan baris yang dimodifikasi dengan baris dalam tabel yang mereferensikan untuk memastikan bahwa modifikasi tersebut tidak memutuskan integritas referensial. Operator Pemeriksaan Referensi Kunci Asing digunakan ketika lebih dari 253 referensi kunci asing ada pada kunci primer atau unik yang sama.

Pemeriksaan Referensi Kunci Asing adalah operator logis dan fisik.
Gabungan Luar Penuh Operator logika Full Outer Join mengembalikan setiap baris yang memenuhi syarat penggabungan dari input pertama (atas) yang digabungkan dengan setiap baris dari input kedua (bawah). Ini juga mengembalikan baris dari:

- Input pertama yang tidak memiliki kecocokan di input kedua.

- Input kedua yang tidak memiliki kecocokan dalam input pertama.

Input yang tidak berisi nilai yang cocok dikembalikan sebagai nilai null.

Full Outer Join adalah operator logis.
Mengumpulkan Aliran Operator Kumpulkan Aliran hanya digunakan dalam rencana kueri paralel. Operator Kumpulkan Aliran mengonsumsi beberapa aliran input dan menghasilkan satu aliran output rekaman dengan menggabungkan aliran input. Konten dan format rekaman tidak diubah. Jika operator ini menjaga urutan, semua aliran input harus diurutkan. Jika output diurutkan, panel Properti berisi urutan berdasarkan predikat dan nama kolom yang diurutkan.

Gather Streams adalah operator logis.
Kecocokan Hash Operator Hash Match membangun tabel hash dengan menghitung nilai hash untuk setiap baris dari input build-nya. Predikat hash, dengan daftar kolom yang digunakan untuk membuat nilai hash, muncul di panel Properti. Kemudian, untuk setiap baris prob (sebagaimana berlaku), menghitung nilai hash (menggunakan fungsi hash yang sama) dan mencari kecocokan dalam tabel hash. Jika terdapat predikat residu (ditampilkan sebagai Build Residual atau Probe Residual di panel Properties), predikat tersebut juga harus dipenuhi agar baris dianggap cocok. Perilaku tergantung pada operasi logis yang dilakukan:

- Untuk gabungan apa pun, gunakan input pertama (atas) untuk membangun tabel hash dan input kedua (bawah) untuk memeriksa tabel hash. Output cocok (atau tidak cocok) seperti yang ditentukan oleh jenis penggabungan. Jika beberapa gabungan menggunakan kolom gabungan yang sama, operasi ini dikelompokkan ke dalam kelompok hash.

- Untuk operator yang berbeda atau agregat, gunakan input untuk membangun tabel hash (menghapus duplikat dan menghitung ekspresi agregat apa pun). Saat tabel hash dibangun, pindai tabel dan tampilkan semua entri.

- Untuk operator serikat, gunakan input pertama untuk membangun tabel hash (menghapus duplikat). Gunakan input kedua (yang tidak boleh memiliki duplikat) untuk menyelidiki tabel hash, mengembalikan semua baris yang tidak memiliki kecocokan, lalu pindai tabel hash dan kembalikan semua entri.

Hash Match adalah operator fisik. Untuk informasi selengkapnya, lihat Memahami Hash join.
Hapus Indeks Operator Index Delete menghapus baris dari indeks nonkluster yang ditentukan di panel Properti.

Index Delete adalah operator fisik.
Sisipkan Indeks Operator Penyisipan Indeks menyisipkan baris dari input ke dalam indeks non-kluster yang telah ditentukan pada panel Properties. Panel Properti juga berisi predikat set yang menunjukkan nilai yang telah diatur untuk setiap kolom.

Index Sisipan adalah operator fisik.
Pemindaian Indeks Operator Pemindaian Indeks mengambil semua baris dari indeks non-kluster yang ditentukan di panel Properti. Jika predikat where yang bersifat opsional muncul di panel Properti, hanya baris yang memenuhi predikat tersebut yang dikembalikan. Jika properti Diurutkanadalah True, baris dikembalikan dalam urutan di mana indeks nonclustered telah mengurutkannya. Jika properti Ordered adalah False, Database Engine akan memindai indeks tanpa menjamin urutan output.

Pemindaian Indeks merupakan operator logis dan fisik.
Pencarian Indeks Operator Pencarian Indeks menggunakan kemampuan mencari indeks untuk mengambil baris dari indeks yang tidak terkluster. Panel Properti berisi nama indeks non-kluster yang digunakan. Ini juga berisi predikat pencarian . Mesin Database menggunakan indeks untuk memproses hanya baris yang memenuhi predikat pencarian . Ini secara opsional mungkin mencakup predikat di mana , yang dievaluasi Mesin Database terhadap semua baris yang memenuhi predikat pencarian (tidak menggunakan indeks untuk melakukan ini).

Pencarian Indeks adalah operator logis dan fisik.
Spool Indeks Operator Index Spool berisi predikat pencarian di panel Properti. Operator Penampung Indeks memindai baris inputnya, menempatkan salinan setiap baris dalam file penampung tersembunyi (disimpan dalam database tempdb dan hanya ada untuk masa pakai kueri), dan membangun indeks pada baris. Ini memungkinkan Anda untuk menggunakan kemampuan mencari indeks untuk menghasilkan hanya baris yang memenuhi predikat pencarian .

Index Spool adalah operator fisik.
Pembaruan Indeks Operator fisik Pembaruan Indeks memperbarui baris dari inputnya dalam indeks non-klaster yang ditentukan di Properties pane. Jika predikat yang ditetapkan ada, setiap kolom yang diperbarui diatur ke nilai ini.

Index Update adalah operator fisik.
Inner Join Operator Inner Join mengembalikan setiap baris yang memenuhi predikat gabungan dari input pertama (atas) dengan input kedua (bawah).

Inner Join adalah operator logis.
Masukkan Operator Sisipkan menyisipkan setiap baris dari inputnya ke dalam objek yang ditentukan di panel Properti . Operator fisik adalah operator Sisipkan Tabel, Sisipkan Indeks, atau Sisipkan Indeks Berkluster.

Sisipkan adalah operator logis.
Pemindaian Disisipkan Dalam pemicu, operator Inserted Scan memindai tabel inserted.

Inserted Scan adalah operator logis dan fisik.
Intrinsik Operator Intrinsik memanggil fungsi Transact-SQL internal.

Intrinsik adalah elemen bahasa.
Iterator Ikon Iterator serbaguna ditampilkan ketika logika yang menghasilkan rencana tampilan grafis tidak dapat menemukan ikon yang sesuai untuk iterator. Ikon catchall tidak selalu menunjukkan kondisi kesalahan.
Pencarian Indeks Kunci Operator Pencarian Kunci adalah pencarian bookmark pada tabel dengan indeks berkluster atau indeks columnstore berkluster. Untuk indeks berkluster, panel Properti berisi nama indeks berkluster dan kunci pengklusteran yang digunakan untuk mencari baris. Untuk indeks penyimpan kolom berkluster, ColStoreLoc disediakan alih-alih kunci pengklusteran. Key Lookup selalu disertai dengan operator Nested Loops. WITH PREFETCH Jika klausa muncul di panel Properti, prosesor kueri telah menentukan bahwa optimal untuk menggunakan pembacaan awal (prefetching) secara asinkron saat mencari marka buku dalam indeks terkelompok.

Pencarian Kunci dengan jumlah eksekusi yang tinggi relatif terhadap ukuran tabel mungkin mendapat manfaat dari menambahkan indeks penutup. Jumlah eksekusi yang rendah biasanya bukan masalah performa.
Set kunci Operator Keyset menggunakan kursor yang dapat melihat pembaruan, tetapi tidak dapat melihat penyisipan yang dilakukan oleh orang lain.

Keyset adalah operator fisik.
Elemen Bahasa Ikon serbaguna Elemen Bahasa akan ditampilkan ketika ikon yang cocok untuk mekanisme atau fungsi iterasi tidak dapat ditemukan oleh logika yang menciptakan rencana tampilan grafis. Ikon catchall tidak selalu menunjukkan kondisi kesalahan.
Lazy Spool Operator logis Lazy Spool menyimpan setiap baris dari inputnya dalam objek sementara tersembunyi yang disimpan dalam database tempdb. Jika operator diganti (misalnya, oleh operator Nested Loops ) tetapi tidak diperlukan pengikatan ulang, data yang di-spool digunakan alih-alih memindai ulang input. Jika pengikatan ulang diperlukan, data yang di-spool dibuang, dan objek spool dibangun kembali dengan memindai ulang input yang diikat ulang. Operator Lazy Spool membangun file penampungnya dengan cara "malas", yaitu, setiap kali operator induk penampung meminta baris, operator penampung mendapatkan baris dari operator inputnya dan menyimpannya di tampungan, daripada mengonsumsi semua baris sekaligus.

Lazy Spool adalah operator logis.
Tidak Gabungan Semi Anti Kiri Operator Left Anti Semi Join mengembalikan setiap baris dari input pertama (atas) saat tidak ada baris yang cocok di input kedua (bawah). Jika tidak ada predikat gabungan di panel Properti , setiap baris adalah baris yang cocok.

Left Anti Semi Join adalah operator logis.
Tidak Gabungan Luar Kiri Operator Left Outer Join mengembalikan setiap baris yang memenuhi predikat penggabungan dari input pertama (atas) dengan input kedua (bawah). Ini juga mengembalikan baris apa pun dari input pertama yang tidak memiliki baris yang cocok di input kedua. Baris yang tidak cocok di input kedua dikembalikan sebagai nilai null. Jika tidak ada predikat gabungan di panel Properti , setiap baris adalah baris yang cocok.

Left Outer Join adalah operator logis.
Tidak Gabungan Semi Kiri Operator Left Semi Join mengembalikan setiap baris dari input pertama (atas) saat ada baris yang cocok di input kedua (bawah). Jika tidak ada predikat gabungan di panel Properti , setiap baris adalah baris yang cocok.

Left Semi Join adalah operator logis.
Pemindaian Baris Log Operator Pemindai Baris Log memindai log transaksi.

Pemindaian Baris Log adalah operator logis dan fisik.
Interval Penggabungan Operator Gabungkan Interval menggabungkan beberapa interval (berpotensi tumpang tindih) untuk menghasilkan interval minimal dan tidak tumpang tindih yang kemudian digunakan untuk mencari entri indeks. Operator ini biasanya muncul sebelum satu atau beberapa operator Skalar Komputasi melalui operator Pemindaian Konstanta, yang membangun interval (direpresentasikan sebagai kolom dalam baris) yang digabungkan operator ini.

Interval Penggabungan adalah operator logis dan fisik.
Gabungkan Gabungan Operator Gabung Gabung melakukan gabungan dalam, gabungan luar kiri, gabungan semi kiri, gabungan anti semi kiri, gabungan luar kanan, gabungan semi kanan, anti semi gabungan kanan, gabungan luar penuh, penggabungan, dan operasi logis gabungan gabungan.

Di panel Properti, operator Gabungan Merge berisi predikat penggabungan jika operasi melakukan gabungan satu-ke-banyak, atau predikat gabungan banyak-ke-banyak jika operasi melakukan gabungan banyak-ke-banyak. Panel Properti juga menyertakan daftar kolom yang dipisahkan koma yang digunakan untuk melakukan operasi. Operator Gabungkan Gabungan memerlukan dua input yang diurutkan pada kolom masing-masing, mungkin dengan menyisipkan operasi pengurutan eksplisit ke dalam rencana kueri. Penggabungan gabungan sangat efektif jika pengurutan eksplisit tidak diperlukan, misalnya, jika ada indeks pohon B yang sesuai dalam database atau jika urutan pengurutan dapat dieksploitasi untuk beberapa operasi, seperti gabungan gabungan dan pengelompokan dengan rollup.

Merge Join adalah sebuah operator fisik. Untuk informasi selengkapnya, lihat Memahami Merge Join.
Perulangan Berlapis Operator Nested Loops melakukan gabungan dalam, gabungan luar kiri, gabungan semi kiri, dan operasi logis anti semi gabungan kiri.

Gabungan perulangan berlapis menjalankan input dalam (bawah) sekali untuk setiap baris input luar (atas). Saat properti Referensi Luar ada, gabungan bersifat dinamis: nilai kolom yang tercantum dari baris luar didorong ke input dalam sehingga operatornya hanya mengembalikan baris yang cocok. Properti Predikat tidak digunakan dalam kasus ini. Saat Referensi Luar tidak ada, gabungan bersifat statis: input dalam mengembalikan baris yang sama pada setiap eksekusi, dan Predikat di panel Properti menentukan kombinasi mana yang memenuhi syarat sebagai kecocokan.

OPTIMIZED Saat atribut diatur ke True, operator menyusun ulang input luar untuk meningkatkan lokalitas I/O saat mengakses input dalam. Ini kadang-kadang disebut gabungan Perulangan Berlapis yang Dioptimalkan.

Loop Bersarang adalah operator fisik. Untuk informasi selengkapnya, lihat Memahami Nested Loops joins.
Tidak Sisipkan Indeks Online Operator Sisipan Indeks Online menunjukkan bahwa operasi indeks (membuat, mengubah, atau menghilangkan) dilakukan secara online. Artinya, data tabel yang mendasar tetap tersedia untuk pengguna selama operasi indeks.

Online Index Insert adalah operator fisik.
Tidak Paralelisme Operator Paralelisme (atau Exchange Iterator) melakukan operasi logis streaming distribusi, pengumpulan aliran, dan pemartisian ulang aliran. Panel Properti dapat berisi predikat untuk kolom partisi dengan daftar kolom yang dipisahkan koma yang sedang dipartisi. Panel Properti juga dapat berisi urutan berdasarkan predikat, mencantumkan kolom untuk mempertahankan urutan pengurutan selama pemartisian.

Catatan: Jika kueri telah dikompilasi sebagai kueri paralel, tetapi pada waktu proses kueri dijalankan sebagai kueri serial, output showplan yang dihasilkan oleh SET STATISTICS XML atau dengan menggunakan opsi Sertakan Rencana Eksekusi Aktual di SQL Server Management Studio tidak berisi RunTimeInformation elemen untuk operator Paralelisme . Dalam SET STATISTICS PROFILE output, jumlah baris aktual dan jumlah eksekusi aktual menampilkan nol untuk operator Paralelisme . Ketika salah satu kondisi terjadi, itu berarti bahwa operator Paralelisme hanya digunakan selama kompilasi kueri dan bukan dalam rencana kueri runtime. Terkadang rencana kueri paralel dijalankan secara serial jika ada beban bersamaan yang tinggi di server.

Paralelisme adalah operator fisik. Untuk informasi selengkapnya tentang operator Paralelisme, lihat Operator Paralelisme.
Pemindaian Tabel Parameter Operator Pemindaian Tabel Parameter membaca kumpulan baris internal yang dihasilkan dalam INSERT ... EXEC pernyataan. Kumpulan baris ini berisi output modul yang dijalankan, seperti prosedur tersimpan atau batch SQL dinamis, ketika hasil tersebut dimasukkan ke dalam tabel, tabel sementara, atau variabel tabel.

Parameter Table Scan adalah operator logis dan fisik.
Tidak Agregat Parsial Agregat Parsial biasanya digunakan dalam paket paralel. Ini menerapkan fungsi agregasi ke baris input sebanyak mungkin sehingga penulisan ke disk (dikenal sebagai "tumpahan") tidak diperlukan. Hash Match adalah satu-satunya operator fisik (iterator) yang menerapkan agregasi parsial.

Agregat Parsial adalah operator logis.
Kueri Populasi Operator 'Query Populasi' mengisi tabel kerja sebuah kursor saat kursor dibuka.

Kueri Populasi adalah operator fisik.
Letakkan Operator Put menyisipkan data ke dalam tabel eksternal (PolyBase). Tidak seperti operator sisipan lainnya, Put tidak mengembalikan baris apa pun ke operator induknya. Pada SQL Server 2016 (13.x) hingga SQL Server 2019 (15.x), operator Put menargetkan Hadoop dan berjalan dalam mode baris. Pada SQL Server 2022 (16.x) dan versi yang lebih baru, operator Put menargetkan Azure Storage atau penyimpanan yang kompatibel dengan S3 dan berjalan dalam mode batch. Untuk informasi selengkapnya, lihat CREATE EXTERNAL TABLE AS SELECT (CETAS).

Put adalah operator fisik.

Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru.
Refresh Query Operator Refresh Kueri mengambil data saat ini untuk baris dalam buffer pengambilan.

Kueri Refresh adalah operator fisik.
Penghapusan Jarak Jauh Operator Hapus Jarak Jauh akan menghapus baris-baris input dari objek jarak jauh.

Hapus Jarak Jauh adalah operator logis dan fisik.
Pemindaian Indeks Jarak Jauh Operator Pemindaian Indeks Jarak Jauh memindai indeks jarak jauh yang ditentukan di panel Properti.

Pemindaian Indeks Jarak Jauh adalah operator logis dan fisik.
Pencarian Indeks Jarak Jauh Operator Pencarian Indeks Jarak Jauh menggunakan kemampuan pencarian objek indeks jarak jauh untuk mengambil baris. Panel Properti berisi nama indeks jarak jauh yang digunakan dan predikat pencarian .

Pencarian Indeks Jarak Jauh adalah operator logis dan fisik.
Penyisipan Jarak Jauh Operator Remote Insert menyisipkan baris masukan ke dalam objek jarak jauh.

Penyisipan Jarak Jauh adalah operator logis dan fisik.
Kueri Jarak Jauh Operator Kueri Remote mengirimkan permintaan ke sumber remote. Teks kueri yang dikirim ke server jarak jauh muncul di panel Properti .

Permintaan Jarak Jauh adalah operator logika dan fisik.
Pemindaian Jarak Jauh Operator Remote Scan memindai objek dari jarak jauh. Nama objek jarak jauh muncul di panel Properti .

Pemindaian Jarak Jauh adalah operator logis dan fisik.
Pembaruan Jarak Jauh Operator Remote Update digunakan untuk memperbarui baris input pada objek jarak jauh.

Pembaruan Jarak Jauh adalah operator logika dan fisik.
Aliran Partisi Ulang Operator Repartition Streams (atau pertukaran iterator) mengonsumsi beberapa aliran dan menghasilkan beberapa aliran rekaman. Konten dan format rekaman tidak diubah. Jika Pengoptimal Kueri menggunakan filter bitmap, jumlah baris dalam aliran output berkurang. Setiap rekaman dari aliran input ditempatkan ke dalam satu aliran output. Jika operator ini mempertahankan urutan, semua aliran input harus diurutkan dan digabungkan ke dalam beberapa aliran output yang diurutkan. Jika output dipartisi, panel Properti berisi predikat untuk kolom-kolom partisi dan kolom-kolom partisi. Jika output diurutkan, panel Properti berisi urutan berdasarkan predikat dan kolom yang diurutkan. Operator hanya digunakan dalam rancangan kueri paralel.

Repartition Streams adalah operator logis.
Hasil Operator Hasil adalah data yang dikembalikan di akhir rencana kueri. Ini biasanya merupakan elemen utama dari showplan.

Hasilnya adalah elemen bahasa.
Pencarian RID Pencarian RID adalah pencarian bookmark pada tumpukan menggunakan pengidentifikasi baris yang disediakan (RID). Panel Properti berisi label penanda buku yang digunakan untuk mencari baris dalam tabel dan nama tabel di mana baris tersebut dicari. Pencarian RID selalu disertai oleh operator Nested Loops .

RID Lookup adalah operator fisik. Untuk informasi selengkapnya tentang bookmark lookups, lihat Read Committed and Bookmark Lookup.
Tidak Right Anti Semi Join Operator Right Anti Semi Join menghasilkan setiap baris dari input kedua (bawah) saat baris yang cocok di input pertama (atas) tidak ada. Baris yang cocok didefinisikan sebagai baris yang memenuhi predikat di panel Properti (jika tidak ada predikat, setiap baris adalah baris yang cocok).

Right Anti Semi Join adalah operator logis.
Tidak Gabungan Luar Kanan Operator Right Outer Join mengembalikan setiap baris yang memenuhi kondisi gabungan antara input kedua (bawah) dengan setiap baris yang cocok dari input pertama (atas). Ini juga mengembalikan baris apa pun dari input kedua yang tidak memiliki baris yang cocok di input pertama, digabungkan dengan NULL. Jika tidak ada predikat gabungan di panel Properti , setiap baris adalah baris yang cocok.

Right Outer Join adalah operator logis.
Tidak Right Semi Join Operator Right Semi Join mengembalikan setiap baris dari input kedua (bawah) saat ada baris yang cocok di input pertama (atas). Jika tidak ada predikat gabungan di panel Properti , setiap baris adalah baris yang cocok.

Right Semi Join adalah operator logis.
Kumpulan Jumlah Baris Operator Row Count Spool memindai input, menghitung berapa banyak baris yang ada dan mengembalikan jumlah baris yang sama tanpa data apa pun di dalamnya. Operator ini digunakan ketika penting untuk memeriksa keberadaan baris, bukan data yang terkandung dalam baris. Misalnya, jika operator Nested Loops melakukan operasi left semi join dan predikat gabungan berlaku untuk input bagian dalam, maka mungkin ada spool jumlah baris yang ditempatkan di bagian atas input bagian dalam dari operator Nested Loops. Kemudian operator Nested Loops dapat menentukan berapa banyak baris yang dihasilkan oleh spool jumlah baris (karena data aktual dari sisi dalam tidak diperlukan) untuk menentukan apakah akan mengembalikan baris luar.

Row Count Spool adalah operator fisik.
Tidak Redistribusi Segmen Dalam rencana kueri paralel, terkadang ada wilayah konseptual iterator. Semua iterator dalam wilayah tersebut bisa dijalankan pada utas paralel. Wilayah itu sendiri harus berjalan secara serial. Beberapa iterator Paralelisme dalam wilayah individual disebut Pempartisian Ulang Cabang. Iterator Paralelisme pada batas dua wilayah tersebut disebut Repartisi Segmen.

Partisi Ulang Cabang dan Partisi Ulang Segmen adalah operator logis.
Segmen Operator Segment membagi input yang diatur menjadi segmen berdasarkan nilai satu atau beberapa kolom. Kolom ini ditampilkan sebagai argumen di operator Segment . Input diurutkan menurut kolom ini. Operator menggunakan kolom segmen untuk menandai baris pertama dari setiap segmen.

Segmen adalah operator fisik dan logis.
Proyek Rangkaian Operator Sequence Project menambahkan kolom untuk melakukan komputasi terhadap set yang diurutkan. Ini memerlukan pembagian input yang diatur ke dalam segmen berdasarkan nilai satu atau beberapa kolom.

Sequence Project adalah operator logis dan fisik.
Sekuens Operator Urutan menjalankan setiap input secara berurutan (atas ke bawah) dan hanya mengembalikan baris yang berasal dari input terakhir (bawah). Penggunaan umum mencakup rencana pembaruan yang luas (di mana setiap input biasanya merupakan pembaruan dari objek yang berbeda), kueri yang memanfaatkan fungsi bernilai tabel dengan multi-pernyataan, serta kueri yang memakai SHORTEST_PATH pada tabel grafik.

Urutannya adalah operator logis dan fisik.
Snapshot Operator Snapshot membuat kursor yang tidak melihat perubahan yang dibuat oleh orang lain.

Rekam jepret adalah operator fisik.
urutkan Operator Sort mengurutkan semua baris yang masuk. Panel Properti berisi urutan yang berbeda berdasarkan predikat jika duplikat dihapus oleh operasi ini, atau urutan berdasarkan predikat dengan daftar kolom yang dipisahkan koma yang sedang diurutkan. Kolom diawali dengan nilai ASC jika kolom diurutkan dalam urutan naik, atau nilai DESC jika kolom diurutkan dalam urutan turun.

Sortir adalah operator logis dan fisik.
Split Operator Pisahkan digunakan untuk mengoptimalkan pemrosesan pembaruan. Ini membagi setiap operasi pembaruan menjadi operasi penghapusan dan penyisipan.

Pemisahan adalah operator logis dan fisik.
Spool Operator Penampung menyimpan hasil kueri perantara ke database tempdb.
Pengolahan Agregat Aliran Data Operator Stream Aggregate mengelompokkan baris berdasarkan satu atau beberapa kolom, lalu menghitung satu atau beberapa ekspresi agregat yang dikembalikan oleh kueri. Operator Stream Aggregate memerlukan input yang diurutkan berdasarkan kolom dalam grupnya. Pengoptimal menggunakan operator Sortir sebelum operator ini jika data belum diurutkan karena operator Urutkan sebelumnya, atau karena pencarian atau pemindaian indeks yang diurutkan. SHOWPLAN_ALL Dalam pernyataan atau rencana eksekusi grafis di SQL Server Management Studio, kolom dalam grup menurut predikat tercantum di panel Properti, dan ekspresi agregat tercantum di kolom Nilai yang Ditentukan.

Stream Aggregate adalah operator fisik.
Pengalih Jaringan Switch adalah jenis iterator penggabungan khusus yang memiliki n input. Ekspresi dikaitkan dengan setiap operator Pengalihan . Bergantung pada nilai pengembalian ekspresi (antara 0 dan n-1), Switch menjalankan input yang sesuai dan mengembalikan barisnya. Switch digunakan untuk menerapkan rencana permintaan untuk INSERT INTO pernyataan terhadap pandangan yang dipartisi. Ini juga digunakan untuk menerapkan rencana kueri yang melibatkan kursor maju cepat dengan operator tertentu seperti TOP operator.

Switch adalah operator logis dan fisik.
Hapus Tabel Operator Hapus Tabel menghapus baris dari tabel yang ditentukan di panel Properti dari rencana eksekusi kueri.

Table Delete adalah operator fisik.
Sisipkan Tabel Operator Sisipkan Tabel menyisipkan baris dari inputnya ke dalam tabel yang ditentukan di panel Properti dari rencana eksekusi kueri. Panel Properti juga berisi predikat 'set', yang menunjukkan nilai yang ditetapkan untuk setiap kolom. Jika Table Insert tidak memiliki turunan untuk nilai sisipan, maka baris yang disisipkan diambil dari operator Sisipkan itu sendiri.

Table Insert adalah operator fisik.
Penggabungan Tabel Operator Penggabungan Tabel menerapkan aliran data penggabungan ke kumpulan. Operator menghapus, memperbarui, atau menyisipkan baris dalam tabel yang ditentukan di panel Properti operator. Operasi aktual yang dilakukan tergantung pada nilai runtime properti ActionColumn

Table Merge adalah operator fisik.
Pemindaian Tabel Operator Table Scan mengambil semua baris dari tabel yang ditentukan pada pane Properti dari rencana eksekusi kueri. Jika kondisi where muncul di panel Properti, hanya baris yang memenuhi kondisi tersebut yang dikembalikan.

Table Scan adalah operator logis dan fisik.
Table Spool Operator Table Spool memindai input dan menempatkan salinan setiap baris dalam tabel spool tersembunyi yang disimpan dalam database tempdb dan hanya ada untuk masa pakai kueri. Jika operator diganti (misalnya, oleh operator Nested Loops ) tetapi tidak diperlukan pengikatan ulang, data yang di-spool digunakan alih-alih memindai ulang input.

Table Spool adalah operator fisik.
Pembaruan Tabel Operator Pembaruan Tabel memperbarui baris input dalam tabel yang ditentukan dalam panel Properti dari rencana eksekusi kueri. Predikat set menentukan nilai setiap kolom yang diperbarui. Nilai-nilai ini mungkin dirujuk dalam SET klausul atau di tempat lain dalam operator ini, dan di tempat lain dalam kueri ini.

Table Update adalah operator fisik.
Fungsi bernilai tabel Operator Fungsi Bernilai Tabel mengevaluasi fungsi bernilai tabel (baik Transact-SQL atau CLR), dan menyimpan baris yang dihasilkan di database tempdb. Ketika iterator induk meminta baris, Fungsi bernilai tabel mengembalikan baris dari tempdb.

Kueri dengan panggilan ke fungsi bernilai tabel menghasilkan rencana kueri dengan iterator Fungsi Bernilai Tabel. Fungsi bernilai tabel dapat dievaluasi dengan nilai parameter yang berbeda:

- Fungsi bernilai tabel Pembaca XML menginput BLOB XML sebagai parameter dan menghasilkan himpunan baris yang mewakili simpul XML dalam urutan dokumen XML. Parameter input lainnya mungkin membatasi simpul XML yang dikembalikan ke subset dokumen XML.

- Fungsi Pembaca XML Bernilai Tabel dengan filter XPath adalah jenis khusus dari Fungsi Bernilai Tabel Pembaca XML yang membatasi output ke simpul XML yang memenuhi satu ekspresi XPath.

Fungsi bernilai tabel adalah operator logis dan fisik.
Atas Operator Teratas memindai input, hanya mengembalikan jumlah atau persen baris pertama yang ditentukan, mungkin berdasarkan urutan pengurutan. Panel Properties bisa berisi daftar kolom yang diperiksa untuk ikatan. Dalam paket pembaruan, operator Teratas digunakan untuk memberlakukan batas jumlah baris.

Top adalah operator logis dan fisik.
Tidak Top N Sort Pemeringkatan Top N mirip dengan iterator Urut, kecuali hanya N baris pertama yang diperlukan, dan bukan seluruh himpunan hasil. Untuk nilai kecil N, mesin eksekusi kueri SQL Server mencoba melakukan seluruh operasi pengurutan dalam memori. Untuk nilai N yang besar, mesin eksekusi kueri menggunakan metode pengurutan yang lebih umum yang bukan parameter N.
UDX Extended Operator (UDX) menerapkan salah satu dari banyak operasi XQuery dan XPath di SQL Server.

- Operator yang diperluas (UDX) FOR XML digunakan untuk menserialisasikan baris relasional yang mengaturnya input ke representasi XML dalam satu kolom BLOB dalam satu baris output. Ini adalah operator agregasi XML yang sensitif terhadap urutan.

- Operator UDX (Extended Operator) XML SERIALIZER adalah operator agregasi XML yang sensitif terhadap urutan. Ini memasukkan baris yang mewakili simpul XML atau skalar XQuery dalam urutan dokumen XML dan menghasilkan BLOB XML berseri dalam satu kolom XML dalam satu baris output.

- Operator yang diperluas (UDX) XML FRAGMENT SERIALIZER adalah jenis XML SERIALIZER khusus yang digunakan untuk memproses baris input yang mewakili fragmen XML yang dimasukkan dalam ekstensi modifikasi data sisipkan XQuery.

- Operator yang diperluas (UDX) XQUERY STRING mengevaluasi nilai string XQuery dari baris input yang mewakili simpul XML. Ini adalah operator agregasi string yang tergantung pada urutan. Ini menghasilkan satu baris dengan kolom yang mewakili skalar XQuery yang berisi nilai string input.

- Operator yang diperluas (UDX) XQUERY LIST DECOMPOSER adalah operator dekomposisi daftar XQuery. Untuk setiap baris input yang mewakili simpul XML, baris tersebut menghasilkan satu atau beberapa baris yang masing-masing mewakili skalar XQuery yang berisi nilai elemen daftar jika inputnya adalah jenis daftar XSD.

- Operator yang diperluas (UDX) XQUERY DATA mengevaluasi fungsi XQuery fn:data() pada input yang mewakili simpul XML. Ini adalah operator agregasi string yang peka terhadap urutan. Ini menghasilkan satu baris dengan kolom yang mewakili skalar XQuery yang berisi hasil fn:data().

- Operator XQUERY CONTAINS yang diperluas mengevaluasi fungsi XQuery fn:contains() pada input yang mewakili simpul XML. Ini adalah operator agregasi string yang sensitif terhadap urutan. Ini menghasilkan satu baris dengan kolom yang mewakili skalar XQuery yang berisi hasil fn:contains().

- Operator yang diperluas UPDATE XML NODE memperbarui simpul XML di XQuery mengganti ekstensi modifikasi data dalam modify() metode pada jenis XML.

Operator UDX adalah operator logis dan fisik.
union Operator Union memindai beberapa input, menghasilkan setiap baris yang dipindai dan menghapus duplikat.

Union adalah operator logis.
Pembaruan Operator Update memperbarui setiap baris dari masukan yang diterimanya dalam objek yang ditentukan di panel Properti dari rencana pelaksanaan kueri.

Perbarui adalah operator logis. Operator fisik adalah Pembaruan Tabel, Pembaruan Indeks, Pembaruan Indeks Berkluster, atau Pembaruan Indeks Penyimpan Kolom.
Tidak Agregat Jendela Operator Agregat Jendela mengevaluasi satu atau beberapa ekspresi agregat dengan definisi jendela dan menambahkan hasilnya ke aliran data.

Agregat Jendela adalah operator logis dan fisik.
Spool Jendela Operator Window Spool memperluas setiap baris ke dalam kumpulan baris yang mewakili jendela yang terkait dengannya. Dalam kueri, OVER klausa menentukan jendela dalam kumpulan hasil kueri dan fungsi jendela lalu menghitung nilai untuk setiap baris di jendela. Operator menyimpan semua baris input dalam worktable tersembunyi di database tempdb atau dalam memori.

Window Spool adalah operator logis dan fisik.

Catatan

Dokumentasi umumnya menggunakan istilah B-tree untuk merujuk ke indeks. Dalam indeks rowstore, Mesin Database mengimplementasikan pohon B+. Ini tidak berlaku untuk indeks penyimpan kolom atau indeks pada tabel yang dioptimalkan memori. Untuk informasi selengkapnya, lihat panduan arsitektur dan desain indeks SQL Server dan Azure SQL.