Operator eksekusi kueri

Halaman ini menjelaskan operator yang digunakan dalam rencana eksekusi kueri Spanner. Untuk mengetahui informasi tentang cara mengambil rencana eksekusi untuk kueri tertentu menggunakan konsol Google Cloud , lihat Memahami cara Spanner menjalankan kueri.

Paket eksekusi mendukung database dialek GoogleSQL dan database dialek PostgreSQL.

Memetakan konstruksi SQL ke operator eksekusi kueri

Pemetaan yang tepat antara konstruksi SQL dan operator eksekusi kueri bergantung pada pengoptimalan kueri. Tabel berikut menunjukkan beberapa pemetaan umum:

SQL Operator eksekusi kueri
Referensi tabel Pemindaian Tabel, Pemindaian Indeks
WHERE Pindai Filter, Filter
GROUP BY Agregat
Fungsi skalar (seperti ISNULL) Komputasi
Fungsi agregat (seperti SUM) Agregat
JOIN Operator gabungan apa pun; lihat Gabungan
Subkueri Subkueri Skalar atau Array
LIMIT Batas, Urutkan Batas
ORDER BY Urutkan, Batas Urutan

Operator eksekusi kueri

Bagian ini mencantumkan semua operator eksekusi kueri yang dapat membentuk rencana eksekusi kueri di Spanner.

Operator daun

Operator yang tidak memiliki turunan.

Nama Ringkasan
Membuka array Meratakan array input menjadi baris elemen.
Buat hubungan Menampilkan nol baris atau lebih.
Relasi unit Menampilkan satu baris.
Relasi kosong Tidak menampilkan baris.
Pindai Memindai sumber baris dan menampilkannya.
Filter pemindaian Bekerja dengan pemindaian untuk mengurangi jumlah baris yang dibaca dari database.

Operator unary

Operator yang memiliki satu turunan relasional.

Nama Ringkasan
Agregat Menerapkan pernyataan SQL GROUP BY dan fungsi agregat.
Menerapkan mutasi Menerapkan mutasi dari pernyataan Bahasa Manipulasi Data (DML) ke tabel.
Buat batch Mengelompokkan baris inputnya ke dalam urutan.
Komputasi Menghasilkan output dengan membaca baris inputnya dan menambahkan satu atau beberapa kolom tambahan yang dihitung menggunakan ekspresi skalar.
Compute struct Membuat variabel untuk struktur yang berisi kolom untuk setiap kolom input.
DataBlockToRowAdapter Menyesuaikan metode eksekusi berorientasi batch ke metode eksekusi berorientasi baris.
Filter Membaca semua baris dari inputnya, menerapkan predikat skalar pada setiap baris, lalu hanya menampilkan baris yang memenuhi predikat.
Batas Membatasi jumlah baris yang ditampilkan.
Gabungan lokal yang terpisah Menemukan pemisahan tabel yang disimpan di server lokal, menjalankan subkueri pada setiap pemisahan, lalu membuat gabungan yang menggabungkan semua hasil.
Penetapan ID acak Menghasilkan output dengan membaca baris inputnya dan menambahkan angka acak ke setiap baris.
RowToDataBlockAdapter Menyesuaikan metode eksekusi berorientasi baris dengan metode eksekusi berorientasi batch.
Hasil serialisasi Menyerialkan setiap baris hasil akhir kueri untuk ditampilkan kepada klien.
Urutkan Membaca baris input, mengurutkannya berdasarkan kolom, lalu menampilkan hasil yang telah diurutkan.
Fungsi bernilai tabel (TVF) Menghasilkan output dengan membaca baris input dan menerapkan fungsi yang ditentukan.
Input gabungan Menampilkan hasil ke operator gabungan semua.

Operator biner

Operator yang memiliki dua turunan relasional.

Nama Ringkasan
Daftar untuk bergabung Menerapkan setiap baris di sisi input ke sisi peta menggunakan metode penerapan.
Hash join Membaca baris dari input yang ditandai sebagai build dan menyisipkannya ke dalam tabel hash berdasarkan kondisi gabungan.
Gabungan penggabungan Menggunakan kedua aliran input secara bersamaan dan menampilkan baris saat kondisi penggabungan terpenuhi.
Gabungan rekursif Melakukan penggabungan dua input, satu yang mewakili kasus dasar, dan yang lainnya mewakili kasus rekursif.

Operator N-ary

Operator yang memiliki lebih dari dua turunan relasional.

Nama Ringkasan
Gabungkan semua Menggabungkan semua set baris turunannya tanpa menghapus duplikat.

Operator terdistribusi

Operator yang dieksekusi di beberapa server.

Nama Ringkasan
Gabungan terdistribusi Secara konseptual membagi satu atau beberapa tabel menjadi beberapa pemisahan, mengevaluasi subkueri secara terpisah pada setiap pemisahan dari jarak jauh, lalu menggabungkan semua hasil.
Penerapan terdistribusi Memperluas operator gabungan terapan dengan menjalankan di beberapa server.
Gabungan penggabungan terdistribusi Mendistribusikan kueri di beberapa server jarak jauh, lalu menggabungkan hasil kueri untuk menghasilkan hasil yang diurutkan.
Gabungan hash siaran push Menerapkan gabungan SQL menggunakan gabungan hash terdistribusi.

Subkueri skalar

Sub-ekspresi SQL yang menampilkan satu nilai skalar.

Nama Ringkasan
Subkueri skalar Sub-ekspresi SQL yang menampilkan satu nilai skalar.

Subkueri array

Sub-ekspresi SQL yang menampilkan array.

Nama Ringkasan
Subkueri array Sub-ekspresi SQL yang menampilkan array.

Konstruktor struct

Operator yang membuat struct (kumpulan kolom) untuk baris yang dihasilkan dari operasi komputasi.

Nama Ringkasan
Konstruktor struct Operator yang membuat struct (kumpulan kolom) untuk baris yang dihasilkan dari operasi komputasi.