Spanner PGAdapter mendukung pernyataan pengelolaan sesi, yang memungkinkan Anda mengubah status dan perilaku koneksi, menjalankan transaksi, dan menjalankan batch pernyataan secara efisien. Semua pernyataan yang dijelaskan dalam dokumen ini dapat digunakan dengan klien atau driver apa pun yang terhubung ke PGAdapter.
Untuk informasi selengkapnya, lihat daftar lengkap driver PostgreSQL dan ORM yang didukung. Perintah berikut berlaku untuk database dialek PostgreSQL.
Untuk informasi selengkapnya tentang penggunaan PGAdapter, lihat Memulai PGAdapter.
Pernyataan koneksi
Pernyataan berikut membuat perubahan pada atau menampilkan properti koneksi saat ini.
SPANNER.READONLY
Boolean yang menunjukkan apakah koneksi dalam mode hanya baca atau tidak. Defaultnya adalah false
.
SHOW [VARIABLE] SPANNER.READONLY
SET SPANNER.READONLY {TO|=} { true | false }
Anda hanya dapat mengubah nilai properti ini saat tidak ada transaksi aktif.
▶ Contoh: Transaksi hanya baca (Klik untuk meluaskan)
Contoh berikut menunjukkan cara menggunakan properti ini untuk menjalankan transaksi
hanya baca di Spanner.
SET SPANNER.READONLY = TRUE;
-- This transaction is a read-only transaction.
BEGIN TRANSACTION;
-- The following two queries both use the read-only transaction.
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
SELECT first_name, last_name
FROM albums
ORDER BY title;
-- This shows the read timestamp that was used for the two queries.
SHOW SPANNER.READ_TIMESTAMP;
-- This marks the end of the read-only transaction. The next statement will
-- start a new read-only transaction.
COMMIT;
AUTOCOMMIT
Boolean yang menunjukkan apakah koneksi berada dalam mode autocommit atau tidak. Defaultnya adalah true
.
CATATAN: Biasanya, Anda tidak perlu mengubah nilai variabel ini saat
menggunakan driver PostgreSQL dengan PGAdapter. Driver ini
mengelola transaksi secara otomatis untuk Anda dengan menjalankan BEGIN
dan COMMIT
jika diperlukan. Anda dapat menonaktifkan autocommit
saat menggunakan alat command line seperti psql untuk mencegah perubahan data yang tidak disengaja dilakukan secara otomatis.
SHOW [VARIABLE] AUTOCOMMIT
SET AUTOCOMMIT {TO|=} { true | false }
Anda dapat mengubah nilai properti ini hanya jika tidak ada transaksi aktif.
Jika AUTOCOMMIT
disetel ke salah (false), transaksi baru akan dimulai secara otomatis
setelah Anda mengeksekusi COMMIT
atau ROLLBACK
. Pernyataan pertama yang Anda jalankan
akan memulai transaksi.
▶ Contoh: Autocommit (Klik untuk meluaskan)
Contoh berikut menunjukkan cara menggunakan properti autocommit
.
-- The default value for AUTOCOMMIT is true.
SHOW AUTOCOMMIT;
-- This insert statement is automatically committed after it is executed, as
-- the connection is in autocommit mode.
INSERT INTO T (id, col_a, col_b) VALUES (1, 100, 1);
-- Turning off autocommit means that a new transaction is automatically started
-- when the next statement is executed.
SET AUTOCOMMIT = FALSE;
-- The following statement starts a new transaction.
INSERT INTO T (id, col_a, col_b) VALUES (2, 200, 2);
-- This statement uses the same transaction as the previous statement.
INSERT INTO T (id, col_a, col_b) VALUES (3, 300, 3);
-- Commit the current transaction with the two INSERT statements.
COMMIT;
-- Transactions can also be executed in autocommit mode by executing the BEGIN
-- statement.
SET AUTOCOMMIT = TRUE;
-- Execute a transaction while in autocommit mode.
BEGIN;
INSERT INTO T (id, col_a, col_b) VALUES (4, 400, 4);
INSERT INTO T (id, col_a, col_b) VALUES (5, 500, 5);
COMMIT;
SPANNER.RETRY_ABORTS_INTERNALLY
Boolean yang menunjukkan apakah koneksi otomatis mencoba kembali transaksi yang dibatalkan. Nilai defaultnya adalah true
.
SHOW [VARIABLE] SPANNER.RETRY_ABORTS_INTERNALLY
SET SPANNER.RETRY_ABORTS_INTERNALLY {TO|=} { true | false }
Anda hanya dapat menjalankan perintah ini setelah transaksi dimulai
(lihat BEGIN [TRANSACTION | WORK]
) dan sebelum
pernyataan apa pun dijalankan dalam transaksi.
Saat Anda mengaktifkan SPANNER.RETRY_ABORTS_INTERNALLY
, koneksi akan menyimpan
checksum dari semua data yang ditampilkan koneksi ke aplikasi klien. Ini
digunakan untuk mencoba kembali transaksi jika dibatalkan oleh Spanner.
Setelan ini diaktifkan secara default. Sebaiknya nonaktifkan setelan ini jika aplikasi Anda sudah mencoba kembali transaksi yang dibatalkan.
SPANNER.AUTOCOMMIT_DML_MODE
Properti STRING
yang menunjukkan mode autocommit untuk
pernyataan Bahasa Manipulasi Data (DML).
SHOW [VARIABLE] SPANNER.AUTOCOMMIT_DML_MODE
SET SPANNER.AUTOCOMMIT_DML_MODE {TO|=} { 'TRANSACTIONAL' | 'PARTITIONED_NON_ATOMIC' }
Kemungkinan nilainya adalah:
- Dalam mode
TRANSACTIONAL
, driver mengeksekusi pernyataan DML sebagai transaksi atomik terpisah. Driver membuat transaksi baru, menjalankan pernyataan DML, dan melakukan commit transaksi setelah berhasil dieksekusi atau melakukan rollback transaksi jika terjadi error. - Dalam mode
PARTITIONED_NON_ATOMIC
, driver mengeksekusi pernyataan DML sebagai pernyataan pembaruan berpartisi. Pernyataan update yang dipartisi dapat berjalan sebagai serangkaian banyak transaksi, yang masing-masing mencakup subkumpulan baris yang terpengaruh. Pernyataan yang dipartisi memberikan semantik yang melemah sebagai imbalan atas skalabilitas dan performa yang lebih baik.
Nilai defaultnya adalah TRANSACTIONAL
.
▶ Contoh: DML yang dipartisi (Klik untuk meluaskan)
Contoh berikut menunjukkan cara menjalankan
DML Partisi menggunakan PGAdapter.
-- Change autocommit DML mode to use Partitioned DML.
SET SPANNER.AUTOCOMMIT_DML_MODE = 'PARTITIONED_NON_ATOMIC';
-- Delete all singers that have been marked as inactive.
-- This statement is executed using Partitioned DML.
DELETE
FROM singers
WHERE active=false;
-- Change DML mode back to standard `TRANSACTIONAL`.
SET SPANNER.AUTOCOMMIT_DML_MODE = 'TRANSACTIONAL';
STATEMENT_TIMEOUT
Properti jenis STRING
yang menunjukkan nilai waktu tunggu saat ini untuk pernyataan.
SHOW [VARIABLE] STATEMENT_TIMEOUT
SET STATEMENT_TIMEOUT {TO|=} { '<int8>{ s | ms | us | ns }' | <int8> | DEFAULT }
Nilai int8
adalah bilangan bulat yang diikuti dengan akhiran yang menunjukkan unit
waktu. Nilai DEFAULT
menunjukkan bahwa tidak ada nilai waktu tunggu yang ditetapkan. Jika
nilai waktu tunggu pernyataan telah ditetapkan, pernyataan yang memerlukan waktu lebih lama dari
nilai waktu tunggu yang ditentukan akan menyebabkan error waktu tunggu dan membatalkan
transaksi.
Satuan waktu yang didukung adalah:
s
: detikms
: milidetikus
: mikrodetikns
: nanodetik
DEFAULT
adalah 0 detik, yang berarti tidak ada waktu tunggu. Angka int8
tanpa unit menunjukkan int8 ms
. Misalnya, perintah berikut menetapkan waktu tunggu pernyataan menjadi 2 detik.
SET STATEMENT_TIMEOUT TO 2000;
SET STATEMENT_TIMEOUT TO '2s';
Waktu tunggu pernyataan selama transaksi akan membatalkan transaksi, semua
pernyataan berikutnya dalam transaksi yang dibatalkan (kecuali ROLLBACK
) akan gagal.
READ_ONLY_STALENESS
Properti jenis STRING
yang menunjukkan
setelan keusangan hanya baca saat ini yang
digunakan Spanner untuk transaksi dan kueri hanya baca dalam mode
AUTOCOMMIT
.
SHOW [VARIABLE] SPANNER.READ_ONLY_STALENESS SET SPANNER.READ_ONLY_STALENESS {TO|=} staleness_type staleness_type: { 'STRONG' | 'MIN_READ_TIMESTAMP timestamp' | 'READ_TIMESTAMP timestamp' | 'MAX_STALENESS <int8>{ s | ms | us | ns }' | 'EXACT_STALENESS <int8>{ s | ms | us | ns }' }
Nilai keusangan hanya baca berlaku untuk semua transaksi hanya baca berikutnya dan untuk semua kueri dalam mode AUTOCOMMIT
.
Nilai defaultnya adalah STRONG
.
Opsi batas stempel waktu adalah sebagai berikut:
STRONG
memberi tahu Spanner untuk melakukan pembacaan yang kuat.MAX_STALENESS
menentukan interval waktu yang digunakan Spanner untuk melakukan pembacaan keusangan terbatas, secara relatif terhadapnow()
.MIN_READ_TIMESTAMP
menentukan waktu absolut yang digunakan Spanner untuk melakukan pembacaan keusangan terbatas.EXACT_STALENESS
menentukan interval waktu yang digunakan Spanner untuk melakukan pembacaan keusangan yang tepat, secara relatif terhadapnow()
.READ_TIMESTAMP
menentukan waktu absolut yang digunakan Spanner untuk melakukan pembacaan keusangan yang tepat.
Stempel waktu harus menggunakan format berikut:
YYYY-[M]M-[D]D [[H]H:[M]M:[S]S[.DDDDDD]][timezone]
Satuan waktu yang didukung untuk menetapkan nilai MAX_STALENESS
dan EXACT_STALENESS
adalah:
s
: detikms
: milidetikus
: mikrodetikns
: nanodetik
Anda hanya dapat mengubah nilai properti ini saat tidak ada transaksi aktif.
▶ Contoh: Ketidakaktualan hanya baca (Klik untuk meluaskan)
Contoh berikut menunjukkan cara menjalankan kueri menggunakan nilai keusangan kustom dengan PGAdapter.
-- Set the read-only staleness to MAX_STALENESS 10 seconds.
SET SPANNER.READ_ONLY_STALENESS = 'MAX_STALENESS 10s';
-- Execute a query in auto-commit mode. This will return results that are up to
-- 10 seconds stale.
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
-- Read-only staleness can also be applied to read-only transactions.
-- MAX_STALENESS is however only allowed for queries in autocommit mode.
-- Change the staleness to EXACT_STALENESS and start a read-only transaction.
SET SPANNER.READ_ONLY_STALENESS = 'EXACT_STALENESS 10s';
BEGIN;
SET TRANSACTION READ ONLY;
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
SELECT title, singer_id
FROM albums
ORDER BY title;
COMMIT;
-- Read staleness can also be an exact timestamp.
SET SPANNER.READ_ONLY_STALENESS = 'READ_TIMESTAMP 2024-01-26T10:36:00Z';
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
SPANNER.OPTIMIZER_VERSION
Properti jenis STRING
yang menunjukkan
versi pengoptimal. Versi tersebut
bersifat numerik atau 'LATEST
'.
SHOW [VARIABLE] SPANNER.OPTIMIZER_VERSION
SET SPANNER.OPTIMIZER_VERSION {TO|=} { 'version'|'LATEST'|'' }
Menetapkan versi pengoptimal yang akan digunakan untuk semua pernyataan berikut pada
koneksi. Menetapkan versi pengoptimal ke ''
(string kosong)
menunjukkan untuk menggunakan versi terbaru. Jika tidak ada versi pengoptimal yang ditetapkan,
Spanner akan menggunakan versi pengoptimal yang ditetapkan di tingkat database.
Nilai defaultnya adalah ''
.
▶ Contoh: Versi pengoptimal (Klik untuk meluaskan)
Contoh berikut menunjukkan cara menjalankan kueri menggunakan
versi pengoptimal tertentu dengan
PGAdapter.
-- Set the optimizer version to 5 and execute a query.
SET SPANNER.OPTIMIZER_VERSION = '5';
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
-- Execute the same query with the latest optimizer version.
SET SPANNER.OPTIMIZER_VERSION = 'LATEST';
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
-- Revert back to using the default optimizer version that has been set for the
-- database.
SET SPANNER.OPTIMIZER_VERSION = '';
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
SPANNER.OPTIMIZER_STATISTICS_PACKAGE
Properti jenis STRING
yang menunjukkan
paket statistik pengoptimal
saat ini yang digunakan oleh koneksi ini.
SHOW [VARIABLE] SPANNER.OPTIMIZER_STATISTICS_PACKAGE
SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE {TO|=} { 'package'|'' }
Menetapkan paket statistik pengoptimal yang akan digunakan untuk semua pernyataan berikut pada
koneksi. <package>
harus berupa nama paket yang valid. Jika tidak ada paket statistik pengoptimal yang ditetapkan, Spanner akan menggunakan paket statistik pengoptimal yang ditetapkan di tingkat database.
Nilai defaultnya adalah ''
.
▶ Contoh: Paket statistik pengoptimal (Klik untuk meluaskan)
Contoh berikut menunjukkan cara menjalankan kueri menggunakan
paket statistik pengoptimal tertentu dengan
PGAdapter.
-- Show the available optimizer statistics packages in this database.
SELECT * FROM INFORMATION_SCHEMA.SPANNER_STATISTICS;
-- Set the optimizer statistics package and execute a query.
SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE = 'auto_20240124_06_47_29UTC';
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
-- Execute the same query with the default optimizer statistics package.
SET SPANNER.OPTIMIZER_VERSION = '';
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
SPANNER.RETURN_COMMIT_STATS
Properti jenis BOOL
yang menunjukkan apakah statistik harus ditampilkan untuk
transaksi pada koneksi ini. Anda dapat melihat statistik yang ditampilkan dengan menjalankan
perintah SHOW [VARIABLE] COMMIT_RESPONSE
.
SHOW [VARIABLE] SPANNER.RETURN_COMMIT_STATS
SET SPANNER.RETURN_COMMIT_STATS {TO|=} { true | false }
Nilai defaultnya adalah false
.
▶ Contoh: Statistik commit (Klik untuk meluaskan)
Contoh berikut menunjukkan cara melihat statistik commit untuk transaksi
dengan PGAdapter.
-- Enable the returning of commit stats.
SET SPANNER.RETURN_COMMIT_STATS = true;
-- Execute a transaction.
BEGIN;
INSERT INTO T (id, col_a, col_b)
VALUES (1, 100, 1), (2, 200, 2), (3, 300, 3);
COMMIT;
-- View the commit response with the transaction statistics for the last
-- transaction that was committed.
SHOW SPANNER.COMMIT_RESPONSE;
SPANNER.RPC_PRIORITY
Properti jenis STRING
yang menunjukkan prioritas relatif untuk permintaan Spanner. Prioritas berfungsi sebagai petunjuk bagi
penjadwal Spanner dan tidak menjamin urutan eksekusi.
SHOW [VARIABLE] SPANNER.RPC_PRIORITY
SET SPANNER.RPC_PRIORITY {TO|=} {'HIGH'|'MEDIUM'|'LOW'|'NULL'}
'NULL'
berarti tidak ada petunjuk yang harus disertakan dalam permintaan.
Nilai defaultnya adalah 'NULL'
.
Anda juga dapat menggunakan petunjuk pernyataan untuk menentukan prioritas RPC:
/*@RPC_PRIORITY=PRIORITY_LOW*/ SELECT * FROM Albums
Untuk informasi selengkapnya, lihat Priority
.
Laporan transaksi
Pernyataan berikut mengelola dan meng-commit transaksi Spanner.
TINGKAT TRANSACTION ISOLATION
SHOW [ VARIABLE ] TRANSACTION ISOLATION LEVEL
Menampilkan kumpulan hasil dengan satu baris dan satu kolom dari jenis STRING
. Nilai
yang ditampilkan selalu serializable
, karena ini adalah satu-satunya tingkat
isolasi yang didukung untuk database dialek PostgreSQL Spanner.
SPANNER.READ_TIMESTAMP
SHOW [VARIABLE] SPANNER.READ_TIMESTAMP
Menampilkan set hasil dengan satu baris dan satu kolom dari jenis TIMESTAMP
yang berisi
stempel waktu baca dari transaksi hanya baca terbaru. Pernyataan ini
hanya menampilkan stempel waktu jika transaksi hanya baca masih aktif dan
telah menjalankan setidaknya satu kueri, atau segera setelah transaksi hanya baca
di-commit dan sebelum transaksi baru dimulai. Jika tidak, hasilnya adalah NULL
.
▶ Contoh: Stempel waktu baca (Klik untuk meluaskan)
Contoh berikut menunjukkan cara melihat stempel waktu baca terakhir untuk
operasi hanya baca dengan PGAdapter.
-- Execute a query in autocommit mode using the default read-only staleness
-- (strong).
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
-- Shows the read timestamp that was used for the previous query.
SHOW SPANNER.READ_TIMESTAMP;
-- Set a non-deterministic read-only staleness and execute the same query.
SET SPANNER.READ_ONLY_STALENESS = 'MAX_STALENESS 20s';
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
-- Shows the read timestamp that was used for the previous query. The timestamp
-- is determined by Spanner, and is guaranteed to be no less than 20
-- seconds stale.
SHOW SPANNER.READ_TIMESTAMP;
-- The read timestamp of a read-only transaction can also be retrieved.
SET SPANNER.READ_ONLY_STALENESS = 'STRONG';
BEGIN;
SET TRANSACTION READ ONLY;
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
-- Shows the read timestamp of the current read-only transaction. All queries in
-- this transaction will use this read timestamp.
SHOW SPANNER.READ_TIMESTAMP;
SELECT title
FROM albums
ORDER BY title;
-- The read timestamp is the same as for the previous query, as all queries in
-- the same transaction use the same read timestamp.
SHOW SPANNER.READ_TIMESTAMP;
COMMIT;
SPANNER.COMMIT_TIMESTAMP
SHOW [VARIABLE] SPANNER.COMMIT_TIMESTAMP
Menampilkan set hasil dengan satu baris dan satu kolom jenis TIMESTAMP
yang berisi
stempel waktu commit transaksi baca-tulis terakhir yang dilakukan
Spanner. Pernyataan ini hanya menampilkan stempel waktu saat Anda menjalankannya setelah
melakukan transaksi baca-tulis dan sebelum Anda menjalankan pernyataan perubahan skema,
SELECT
, atau DML
berikutnya. Jika tidak, hasilnya adalah NULL
.
▶ Contoh: Stempel waktu commit (Klik untuk meluaskan)
Contoh berikut menunjukkan cara melihat stempel waktu commit terakhir untuk
operasi tulis dengan PGAdapter.
-- Execute a DML statement.
INSERT INTO T (id, col_a, col_b)
VALUES (1, 100, 1), (2, 200, 2), (3, 300, 3);
-- Show the timestamp that the statement was committed.
SHOW SPANNER.COMMIT_TIMESTAMP;
SPANNER.COMMIT_RESPONSE
SHOW [VARIABLE] SPANNER.COMMIT_RESPONSE
Menampilkan kumpulan hasil dengan satu baris dan dua kolom:
COMMIT_TIMESTAMP
(type=TIMESTAMP
) Menunjukkan kapan transaksi terbaru dilakukan.MUTATION_COUNT
(type=int8
) Menunjukkan jumlah mutasi yang diterapkan dalam transaksi yang di-commit. Nilai ini selalu kosong saat dijalankan di emulator.
Jumlah mutasi hanya tersedia jika SET RETURN_COMMIT_STATS
ditetapkan ke true
sebelum commit transaksi.
▶ Contoh: Respons commit (Klik untuk meluaskan)
Contoh berikut menunjukkan cara melihat respons commit terakhir untuk
operasi tulis dengan PGAdapter.
-- Enable returning commit stats in addition to the commit timestamp.
SET SPANNER.RETURN_COMMIT_STATS = true;
-- Execute a DML statement.
INSERT INTO T (id, col_a, col_b)
VALUES (1, 100, 1), (2, 200, 2), (3, 300, 3);
-- Show the timestamp that the statement was committed.
SHOW SPANNER.COMMIT_RESPONSE;
{ START | BEGIN } [ TRANSACTION | WORK ]
{ START | BEGIN } [ TRANSACTION | WORK ] [{ READ ONLY | READ WRITE }]
Memulai transaksi baru. Kata kunci TRANSACTION
dan WORK
bersifat opsional, setara, dan tidak berpengaruh.
- Gunakan
COMMIT
atauROLLBACK
untuk menghentikan transaksi. - Jika Anda telah mengaktifkan mode
AUTOCOMMIT
, pernyataan ini akan mengeluarkan koneksi dari modeAUTOCOMMIT
untuk sementara. Koneksi akan kembali ke modeAUTOCOMMIT
saat transaksi berakhir. - Jika
READ ONLY
atauREAD WRITE
tidak ditentukan, mode transaksi ditentukan oleh mode transaksi default sesi. Default ini ditetapkan menggunakan perintahSET SESSION CHARACTERISTICS AS TRANSACTION
.
Anda hanya dapat menjalankan pernyataan ini saat tidak ada transaksi aktif.
▶ Contoh: BEGIN TRANSACTION (Klik untuk meluaskan)
Contoh berikut menunjukkan cara memulai berbagai jenis transaksi dengan
PGAdapter.
-- This starts a transaction using the current defaults of this connection.
-- The value of SPANNER.READONLY determines whether the transaction is a
-- read/write or a read-only transaction.
BEGIN;
INSERT INTO T (id, col_a, col_b)
VALUES (1, 100, 1);
COMMIT;
-- Set SPANNER.READONLY to TRUE to use read-only transactions by default.
SET SPANNER.READONLY=TRUE;
-- This starts a read-only transaction.
BEGIN;
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
COMMIT;
-- Use the 'READ WRITE' or 'READ ONLY' qualifier in the BEGIN statement to
-- override the current default of the connection.
SET SPANNER.READONLY=FALSE;
BEGIN READ ONLY;
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
COMMIT;
COMMIT [TRANSACTION | WORK]
COMMIT [TRANSACTION | WORK]
Melakukan transaksi saat ini. Kata kunci TRANSACTION
dan WORK
bersifat opsional dan setara, serta tidak berpengaruh.
- Melakukan commit pada transaksi baca-tulis akan membuat semua pembaruan transaksi ini terlihat oleh transaksi lain dan melepaskan semua kunci transaksi di Spanner.
- Melakukan commit pada transaksi hanya baca akan mengakhiri transaksi hanya baca saat ini. Setiap
pernyataan berikutnya akan memulai transaksi baru. Tidak ada perbedaan semantik
antara
COMMIT
danROLLBACK
untuk transaksi hanya baca.
Anda hanya dapat menjalankan pernyataan ini saat ada transaksi aktif.
▶ Contoh: COMMIT TRANSACTION (Klik untuk meluaskan)
Contoh berikut menunjukkan cara melakukan transaksi dengan
PGAdapter.
-- Execute a regular read/write transaction.
BEGIN;
INSERT INTO T (id, col_a, col_b)
VALUES (1, 100, 1);
COMMIT;
-- Execute a read-only transaction. Read-only transactions also need to be
-- either committed or rolled back in PGAdapter in order to mark the
-- end of the transaction.
BEGIN READ ONLY;
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
COMMIT;
ROLLBACK [TRANSACTION | WORK]
ROLLBACK [TRANSACTION | WORK]
Melakukan ROLLBACK
transaksi saat ini. Kata kunci TRANSACTION
dan
WORK
bersifat opsional dan setara, serta tidak berpengaruh.
- Melakukan
ROLLBACK
transaksi baca-tulis akan menghapus mutasi yang dibuffer, me-roll back transaksi di Spanner, dan melepaskan kunci yang disimpan transaksi. - Melakukan
ROLLBACK
transaksi hanya baca akan mengakhiri transaksi hanya baca saat ini. Setiap pernyataan berikutnya akan memulai transaksi baru. Tidak ada perbedaan semantik antaraCOMMIT
danROLLBACK
untuk transaksi hanya baca pada koneksi.
Anda hanya dapat menjalankan pernyataan ini saat ada transaksi aktif.
▶ Contoh: ROLLBACK TRANSACTION (Klik untuk meluaskan)
Contoh berikut menunjukkan cara melakukan rollback transaksi dengan
PGAdapter.
-- Use ROLLBACK to undo the effects of a transaction.
BEGIN;
INSERT INTO T (id, col_a, col_b)
VALUES (1, 100, 1);
-- This will ensure that the insert statement is not persisted in the database.
ROLLBACK;
-- Read-only transactions also need to be either committed or rolled back in
-- PGAdapter in order to mark the end of the transaction. There is no
-- semantic difference between rolling back or committing a read-only
-- transaction.
BEGIN READ ONLY;
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
ROLLBACK;
SET TRANSACTION
SET TRANSACTION { READ ONLY | READ WRITE }
Menetapkan mode transaksi untuk transaksi saat ini.
Anda hanya dapat mengeksekusi pernyataan ini jika AUTOCOMMIT
adalah false
, atau
jika Anda telah memulai transaksi dengan mengeksekusi
BEGIN [TRANSACTION | WORK]
dan belum mengeksekusi pernyataan apa pun dalam transaksi.
Pernyataan ini menetapkan mode transaksi hanya untuk transaksi saat ini. Saat transaksi melakukan commit atau rollback, transaksi berikutnya akan menggunakan mode default untuk koneksi. (Lihat SET SESSION CHARACTERISTICS
.)
▶ Contoh: SET TRANSACTION (Klik untuk meluaskan)
Contoh berikut menunjukkan cara menetapkan karakteristik transaksi dengan
PGAdapter.
-- Start a transaction and set the transaction mode to read-only.
BEGIN;
SET TRANSACTION READ ONLY;
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
-- Commit the read-only transaction to mark the end of the transaction.
COMMIT;
-- Start a transaction and set the transaction mode to read/write.
BEGIN;
SET TRANSACTION READ WRITE;
INSERT INTO T (id, col_a, col_b)
VALUES (1, 100, 1);
COMMIT;
MENETAPKAN KARAKTERISTIK SESI
SET SESSION CHARACTERISTICS AS TRANSACTION { READ ONLY | READ WRITE }
Menetapkan mode transaksi default untuk transaksi dalam sesi ke
READ ONLY
atau READ WRITE
. Pernyataan ini hanya diizinkan jika tidak ada
transaksi aktif.
Perintah SET TRANSACTION
dapat mengganti setelan ini.
▶ Contoh: SET SESSION CHARACTERISTICS (Klik untuk meluaskan)
Contoh berikut menunjukkan cara menetapkan karakteristik sesi dengan
PGAdapter.
-- Set the default transaction mode to read-only.
SET SESSION CHARACTERISTICS AS TRANSACTION READ ONLY;
-- This will now start a read-only transaction.
BEGIN;
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
COMMIT;
-- You can override the default transaction mode with the SET TRANSACTION
-- statement.
SET SESSION CHARACTERISTICS AS TRANSACTION READ WRITE;
BEGIN;
SET TRANSACTION READ ONLY;
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
COMMIT;
SPANNER.STATEMENT_TAG
Properti jenis STRING
yang berisi tag permintaan untuk pernyataan
berikutnya.
SHOW [ VARIABLE ] SPANNER.STATEMENT_TAG
SET SPANNER.STATEMENT_TAG {TO|=} 'tag-name'
Menetapkan tag permintaan untuk pernyataan berikutnya yang akan dieksekusi. Hanya satu tag yang dapat ditetapkan per pernyataan. Tag tidak mencakup beberapa pernyataan; tag tersebut
harus ditetapkan berdasarkan pernyataan. Tag permintaan dapat dihapus dengan menetapkannya
ke string kosong (''
).
Nilai defaultnya adalah ''
.
Anda dapat menetapkan tag transaksi dan tag laporan mutasi untuk laporan mutasi yang sama.
Anda juga dapat menggunakan petunjuk pernyataan untuk menambahkan tag pernyataan:
/*@STATEMENT_TAG='my-tag'*/ SELECT * FROM albums
Untuk informasi selengkapnya, lihat Memecahkan masalah dengan tag permintaan dan tag transaksi.
▶ Contoh: Tag pernyataan (Klik untuk meluaskan)
Contoh berikut menunjukkan cara menetapkan tag pernyataan dengan
PGAdapter.
-- Set the statement tag that should be included with the next statement.
SET SPANNER.STATEMENT_TAG = 'tag1';
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
-- The statement tag property is cleared after each statement execution.
SHOW SPANNER.STATEMENT_TAG;
-- Set another tag for the next statement.
SET SPANNER.STATEMENT_TAG = 'tag2';
SELECT title
FROM albums
ORDER BY title;
-- Set a statement tag with a query hint.
/*@STATEMENT_TAG='tag3'*/
SELECT track_number, title
FROM tracks
WHERE album_id=1 AND singer_id=1
ORDER BY track_number;
SPANNER.TRANSACTION_TAG
Properti jenis STRING
yang berisi tag transaksi untuk transaksi berikutnya.
SHOW [ VARIABLE ] SPANNER.TRANSACTION_TAG
SET SPANNER.TRANSACTION_TAG {TO|=} 'tag-name'
Menetapkan tag transaksi untuk transaksi saat ini yang akan dieksekusi. Hanya satu tag yang dapat ditetapkan per transaksi. Tag tidak mencakup beberapa transaksi; tag tersebut harus ditetapkan per transaksi. Tag transaksi dapat dihapus dengan
menetapkannya ke string kosong (''
). Tag transaksi harus ditetapkan sebelum
pernyataan apa pun dieksekusi dalam transaksi.
Nilai defaultnya adalah ''
.
Anda dapat menetapkan tag transaksi dan tag laporan mutasi untuk laporan mutasi yang sama.
Untuk informasi selengkapnya, lihat Memecahkan masalah dengan tag permintaan dan tag transaksi.
▶ Contoh: Tag transaksi (Klik untuk meluaskan)
Contoh berikut menunjukkan cara menetapkan tag transaksi dengan
PGAdapter.
BEGIN;
-- Set the transaction tag for the current transaction.
SET SPANNER.TRANSACTION_TAG = 'transaction-tag-1';
-- Set the statement tag that should be included with the next statement.
-- The statement will include both the statement tag and the transaction tag.
SET SPANNER.STATEMENT_TAG = 'select-statement';
SELECT first_name, last_name
FROM singers
ORDER BY last_name;
-- The statement tag property is cleared after each statement execution.
SHOW SPANNER.STATEMENT_TAG;
-- Set another tag for the next statement.
SET SPANNER.STATEMENT_TAG = 'insert-statement';
INSERT INTO T (id, col_a, col_b)
VALUES (1, 100, 1);
COMMIT;
-- The transaction tag property is cleared when the transaction finishes.
SHOW SPANNER.TRANSACTION_TAG;
Pernyataan batch
Pernyataan berikut mengelola batch pernyataan DDL dan mengirim batch tersebut ke Spanner.
MULAI DDL BATCH
START BATCH DDL
Memulai batch pernyataan DDL pada koneksi. Semua pernyataan berikutnya
selama batch harus berupa pernyataan DDL. Pernyataan DDL dibuffer secara lokal
dan dikirim ke Spanner sebagai satu batch saat Anda mengeksekusi RUN BATCH
.
Menjalankan beberapa pernyataan DDL sebagai satu batch biasanya lebih cepat daripada menjalankan
pernyataan secara terpisah.
Anda hanya dapat menjalankan pernyataan ini saat tidak ada transaksi aktif.
▶ Contoh: Batch DDL (Klik untuk meluaskan)
Contoh berikut menunjukkan cara menjalankan batch DDL dengan
PGAdapter.
-- Start a DDL batch. All following statements must be DDL statements.
START BATCH DDL;
-- This statement is buffered locally until RUN BATCH is executed.
CREATE TABLE singers (
id bigint primary key,
first_name varchar,
last_name varchar
);
-- This statement is buffered locally until RUN BATCH is executed.
CREATE TABLE albums (
id bigint primary key,
title varchar,
singer_id bigint,
constraint fk_albums_singers foreign key (singer_id) references singers (id)
);
-- This runs the DDL statements as one batch.
RUN BATCH;
RUN BATCH
RUN BATCH
Mengirim semua pernyataan DDL yang dibuffer dalam batch DDL saat ini ke database, menunggu Spanner mengeksekusi pernyataan ini, dan mengakhiri batch DDL saat ini.
Jika Spanner tidak dapat menjalankan setidaknya satu pernyataan DDL, RUN BATCH
akan menampilkan error untuk pernyataan DDL pertama yang tidak dapat dijalankan Spanner. Jika tidak, RUN BATCH
akan berhasil ditampilkan.
ABORT BATCH
Menghapus semua pernyataan DDL yang dibuffer dalam batch DDL saat ini dan mengakhiri batch.
Anda hanya dapat mengeksekusi pernyataan ini jika batch DDL aktif. Anda dapat menggunakan
ABORT BATCH
terlepas dari apakah batch telah menyimpan pernyataan
DDL dalam buffering atau tidak. Semua pernyataan DDL sebelumnya dalam batch akan dibatalkan.
▶ Contoh: Membatalkan batch DDL (Klik untuk meluaskan)
Contoh berikut menunjukkan cara membatalkan batch DDL dengan
PGAdapter.
-- Start a DDL batch. All following statements must be DDL statements.
START BATCH DDL;
-- The following statements are buffered locally.
CREATE TABLE singers (
id bigint primary key,
first_name varchar,
last_name varchar
);
CREATE TABLE albums (
id bigint primary key,
title varchar,
singer_id bigint,
constraint fk_albums_singers foreign key (singer_id) references singers (id)
);
-- This aborts the DDL batch and removes the DDL statements from the buffer.
ABORT BATCH;
START BATCH DML
Pernyataan berikut mengelompokkan dua pernyataan DML bersama-sama dan mengirimkannya dalam satu panggilan ke server. Batch DML dapat dieksekusi sebagai bagian dari transaksi atau dalam mode autocommit.
START BATCH DML;
INSERT INTO MYTABLE (ID, NAME) VALUES (1, 'ONE');
INSERT INTO MYTABLE (ID, NAME) VALUES (2, 'TWO');
RUN BATCH;
▶ Contoh: Batch DML (Klik untuk meluaskan)
Contoh berikut menunjukkan cara menjalankan batch DML dengan
PGAdapter.
-- Start a DML batch. All following statements must be a DML statement.
START BATCH DML;
-- The following statements are buffered locally.
INSERT INTO MYTABLE (ID, NAME) VALUES (1, 'ONE');
INSERT INTO MYTABLE (ID, NAME) VALUES (2, 'TWO');
-- This sends the statements to Spanner.
RUN BATCH;
-- DML batches can also be part of a read/write transaction.
BEGIN;
-- Insert a row using a single statement.
INSERT INTO MYTABLE (ID, NAME) VALUES (3, 'THREE');
-- Insert two rows using a batch.
START BATCH DML;
INSERT INTO MYTABLE (ID, NAME) VALUES (4, 'FOUR');
INSERT INTO MYTABLE (ID, NAME) VALUES (5, 'FIVE');
RUN BATCH;
-- Rollback the current transaction. This rolls back both the single DML
-- statement and the DML batch.
ROLLBACK;
Perintah titik simpan
Titik simpan di PGAdapter diemulasi. Melakukan rollback ke titik simpan akan melakukan rollback seluruh transaksi dan mencobanya lagi hingga titik saat titik simpan ditetapkan. Operasi ini akan gagal dengan
error AbortedDueToConcurrentModificationException
jika data pokok yang
telah digunakan oleh transaksi hingga titik simpan telah berubah.
Membuat dan merilis titik simpan selalu berhasil jika dukungan titik simpan diaktifkan.
Pernyataan berikut mengaktifkan dan menonaktifkan titik simpan yang diemulasi dalam transaksi.
SPANNER.SAVEPOINT_SUPPORT
SHOW [VARIABLE] SPANNER.SAVEPOINT_SUPPORT
SET SPANNER.SAVEPOINT_SUPPORT = { 'DISABLED' | 'FAIL_AFTER_ROLLBACK' | 'ENABLED' }
Properti jenis STRING
yang menunjukkan konfigurasi SAVEPOINT_SUPPORT
saat ini. Nilainya dapat berupa:
DISABLED
: Semua perintah titik simpan dinonaktifkan dan akan gagal.FAIL_AFTER_ROLLBACK
: Perintah titik simpan diaktifkan. Me-roll back ke titik simpan akan me-roll back seluruh transaksi. Operasi akan gagal jika Anda mencoba menggunakan transaksi setelah melakukan rollback ke titik simpan.ENABLED
: Semua perintah titik simpan diaktifkan. Me-roll back ke titik simpan akan me-roll back transaksi dan percobaan ulang dilakukan ke titik simpan. Operasi ini gagal dengan errorAbortedDueToConcurrentModificationException
jika data pokok yang telah digunakan oleh transaksi hingga titik simpan telah berubah.
Nilai defaultnya adalah ENABLED
.
Anda hanya dapat menjalankan pernyataan ini saat tidak ada transaksi aktif.
SAVEPOINT savepoint_name
SAVEPOINT savepoint-name;
SAVEPOINT
membuat titik simpan baru dalam transaksi saat ini.
Transaksi dapat di-roll back ke titik simpan untuk mengurungkan semua operasi yang telah
dieksekusi sejak titik simpan dibuat.
▶ Contoh: Titik simpan (Klik untuk meluaskan)
Contoh berikut menunjukkan cara menyimpan titik dengan
PGAdapter.
-- Start a transaction and execute an insert statement.
BEGIN;
INSERT INTO T (id, col_a, col_b) VALUES (1, 100, 1);
-- Set a savepoint and then execute another insert statement.
SAVEPOINT one_row_inserted;
INSERT INTO T (id, col_a, col_b) VALUES (2, 200, 2);
-- Roll back to the savepoint. This will undo all statements that have been
-- executed after the savepoint.
ROLLBACK TO one_row_inserted;
-- This only commits the first insert statement.
COMMIT;
ROLLBACK TO savepoint_name
ROLLBACK TO savepoint_name
Melakukan rollback transaksi saat ini ke titik simpan dengan nama yang ditentukan.
Tidak semua kasus dapat di-roll back ke titik simpan.
Me-roll back ke titik simpan akan me-roll back seluruh transaksi dan mencobanya lagi hingga
titik tempat titik simpan ditetapkan. Operasi ini akan gagal dengan
AbortedDueToConcurrentModificationException
jika data pokok yang telah
digunakan oleh transaksi hingga titik simpan telah berubah.
RELEASE [SAVEPOINT] nama_titik_simpan
RELEASE savepoint_name
Menghapus titik simpan dari transaksi saat ini. Fungsi ini tidak dapat lagi digunakan untuk
menjalankan pernyataan ROLLBACK TO savepoint_name
.
Pernyataan Siap
Pernyataan berikut membuat dan menjalankan pernyataan yang disiapkan.
PERSIAPKAN
PREPARE statement_name [(data_type, ...)] AS statement
Menyiapkan pernyataan tentang koneksi ini. Pernyataan diuraikan dan divalidasi oleh Spanner dan disimpan dalam memori di PGAdapter.
▶ Contoh: Pernyataan yang disiapkan (Klik untuk meluaskan)
Contoh berikut menunjukkan cara membuat dan menjalankan pernyataan yang disiapkan dengan
PGAdapter.
-- Create a prepared statement that can be used to insert a single row.
PREPARE insert_t AS INSERT INTO T (id, col_a, col_b) VALUES ($1, $2, $3);
-- The prepared statement can be used to insert rows both in autocommit, in a
-- transaction, and in DML batches.
-- Execute in autocommit.
EXECUTE insert_t (1, 100, 1);
-- Execute in transaction.
BEGIN;
EXECUTE insert_t (2, 200, 2);
EXECUTE insert_t (3, 300, 3);
COMMIT;
-- Execute in a DML batch.
START BATCH DML;
EXECUTE insert_t (4, 400, 4);
EXECUTE insert_t (5, 500, 5);
RUN BATCH;
-- Prepared statements can be removed with the DEALLOCATE command.
DEALLOCATE insert_t;
JALANKAN
EXECUTE statement_name [(value, ...)]
Menjalankan pernyataan yang telah dibuat pada koneksi ini dengan PREPARE
.
▶ Contoh: Execute (Klik untuk meluaskan)
Contoh berikut menunjukkan cara menyiapkan dan menjalankan pernyataan dengan
PGAdapter.
-- Create a prepared statement.
PREPARE my_statement AS insert into my_table (id, value) values ($1, $2);
-- Execute the statement twice with different parameter values.
EXECUTE my_statement (1, 'One');
EXECUTE my_statement (2, 'Two');
DEALLOCATE
DEALLOCATE statement_name
Menghapus pernyataan yang disiapkan dari koneksi ini.
Salin
PGAdapter mendukung subset perintah COPY
PostgreSQL.
COPY table_name FROM STDIN
COPY table_name FROM STDIN [BINARY]
Menyalin data dari stdin
ke Spanner. Lebih efisien menggunakan
COPY
untuk mengimpor set data besar ke Spanner daripada menjalankan
pernyataan INSERT
.
COPY
dapat digabungkan dengan SPANNER.AUTOCOMMIT_DML_MODE
untuk menjalankan
transaksi non-atomik. Hal ini memungkinkan transaksi menjalankan lebih banyak mutasi
daripada batas mutasi transaksi standar.
▶ Contoh: Salin (Klik untuk meluaskan)
Contoh berikut menunjukkan cara menyalin data ke dan dari
Spanner dengan PGAdapter.
create table numbers (number bigint not null primary key, name varchar);
Jalankan operasi COPY
atomik:
cat numbers.txt | psql -h /tmp -d test-db -c "copy numbers from stdin;"
Jalankan operasi COPY
non-atomik:
cat numbers.txt | psql -h /tmp -d test-db \
-c "set spanner.autocommit_dml_mode='partitioned_non_atomic'; copy numbers from stdin;"
Salin data dari PostgreSQL ke Spanner:
psql -h localhost -p 5432 -d my-local-db \
-c "copy (select i, to_char(i, 'fm000') from generate_series(1, 1000000) s(i)) to stdout binary" \
| psql -h localhost -p 5433 -d my-spanner-db \
-c "set spanner.autocommit_dml_mode='partitioned_non_atomic'; copy numbers from stdin binary;"
Contoh ini mengasumsikan bahwa PostgreSQL berjalan di port 5432 dan PGAdapter berjalan di port 5433.
Untuk contoh lainnya, lihat PGAdapter - Dukungan COPY.
COPY nama_tabel TO STDOUT [BINARY]
COPY table_name TO STDOUT [BINARY]
Menyalin data dalam tabel atau dari kueri ke stdout
.
Data Boost dan pernyataan kueri yang dipartisi
Dengan Data Boost, Anda dapat menjalankan kueri analisis dan ekspor data dengan dampak yang nyaris nol terhadap workload yang ada di instance Spanner yang disediakan. Peningkatan data hanya didukung untuk kueri yang dipartisi.
Anda dapat mengaktifkan Data Boost dengan pernyataan SET SPANNER.DATA_BOOST_ENABLED
.
PGAdapter mendukung tiga alternatif untuk menjalankan kueri yang dipartisi:
SET SPANNER.AUTO_PARTITION_MODE = true
RUN PARTITIONED QUERY sql
PARTITION sql
diikuti dengan beberapaRUN PARTITION 'partition-token'
Setiap metode ini dijelaskan di bagian berikut.
SPANNER.DATA_BOOST_ENABLED
SHOW SPANNER.DATA_BOOST_ENABLED
SET SPANNER.DATA_BOOST_ENABLED {TO|=} { true | false }
Menetapkan apakah koneksi ini harus menggunakan Data Boost untuk kueri yang dipartisi.
Nilai defaultnya adalah false
.
▶ Contoh: Menjalankan kueri menggunakan Data Boost (Klik untuk meluaskan)
Contoh berikut menunjukkan cara membuat kueri menggunakan Data Boost dengan
PGAdapter.
-- Enable Data Boost on this connection.
SET SPANNER.DATA_BOOST_ENABLED = true;
-- Execute a partitioned query. Data Boost is only used for partitioned queries.
RUN PARTITIONED QUERY SELECT FirstName, LastName FROM Singers;
SPANNER.AUTO_PARTITION_MODE
SHOW SPANNER.AUTO_PARTITION_MODE
SET SPANNER.AUTO_PARTITION_MODE {TO|=} { true | false}
Properti jenis BOOL
yang menunjukkan apakah koneksi secara otomatis menggunakan kueri yang dipartisi untuk semua kueri yang dieksekusi.
- Tetapkan variabel ini ke
true
jika Anda ingin koneksi menggunakan kueri yang dipartisi untuk semua kueri yang dieksekusi. - Tetapkan juga
SPANNER.DATA_BOOST_ENABLED
ketrue
jika Anda ingin koneksi menggunakan Data Boost untuk semua kueri.
Nilai defaultnya adalah false
.
▶ Contoh: Execute (Klik untuk meluaskan)
Contoh ini mengeksekusi dua kueri dengan PGAdapter menggunakan
Data Boost
SET SPANNER.AUTO_PARTITION_MODE = true
SET SPANNER.DATA_BOOST_ENABLED = true
SELECT first_name, last_name FROM singers
SELECT singer_id, title FROM albums
MENJALANKAN KUERI YANG DIPARTISIASI
RUN PARTITIONED QUERY <sql>
Menjalankan kueri sebagai kueri berpartisi di Spanner. Pastikan
SPANNER.DATA_BOOST_ENABLED
ditetapkan ke true
untuk mengeksekusi kueri dengan
Data Boost:
SET SPANNER.DATA_BOOST_ENABLED = true
RUN PARTITIONED QUERY SELECT FirstName, LastName FROM Singers
PGAdapter secara internal mempartisi kueri dan menjalankan partisi secara
paralel. Hasilnya digabungkan menjadi satu kumpulan hasil dan ditampilkan ke
aplikasi. Jumlah thread pekerja yang mengeksekusi partisi dapat ditetapkan dengan
variabel SPANNER.MAX_PARTITIONED_PARALLELISM
.
PARTITION <SQL>
PARTITION <sql>
Membuat daftar partisi untuk mengeksekusi kueri terhadap Spanner
dan menampilkan daftar token partisi ini. Setiap token partisi dapat
dijalankan pada koneksi terpisah pada instance PGAdapter
yang sama atau lain menggunakan perintah RUN PARTITION 'partition-token'
.
▶ Contoh: Kueri partisi (Klik untuk meluaskan)
Contoh berikut menunjukkan cara mempartisi kueri, lalu menjalankan setiap
partisi secara terpisah menggunakan PGAdapter.
-- Partition a query. This returns a list of partition tokens that can be
-- executed either on this connection or on any other connection to the same
-- database.
PARTITION SELECT FirstName, LastName FROM Singers;
-- Run the partitions that were returned from the previous statement.
RUN PARTITION 'partition-token-1';
RUN PARTITION 'partition-token-2';
RUN PARTITION 'partition-token'
RUN PARTITION 'partition-token'
Menjalankan partisi kueri yang sebelumnya telah ditampilkan oleh perintah PARTITION
. Perintah ini dapat dieksekusi pada koneksi apa pun yang terhubung ke database yang sama dengan database yang membuat token partisi.
SPANNER.MAX_PARTITIONED_PARALLELISM
Properti jenis bigint
yang menunjukkan jumlah thread pekerja
yang digunakan PGAdapter untuk mengeksekusi partisi. Nilai ini digunakan untuk:
SPANNER.AUTO_PARTITION_MODE = true
RUN PARTITIONED QUERY sql
SHOW SPANNER.MAX_PARTITIONED_PARALLELISM
SET SPANNER.MAX_PARTITIONED_PARALLELISM {TO|=} <bigint>
Menetapkan jumlah maksimum thread pekerja yang dapat digunakan PGAdapter untuk
menjalankan partisi. Menetapkan nilai ini ke 0
akan memerintahkan PGAdapter untuk
menggunakan jumlah core CPU di komputer klien sebagai maksimum.
Nilai defaultnya adalah 0
.
Langkah selanjutnya
- Pelajari lebih lanjut cara Memulai PGAdapter.
- Lihat daftar lengkap driver dan ORM PostgreSQL yang didukung.