Spanner menyediakan tabel bawaan yang mencatat statistik operasi baca (atau kueri), tulis, dan hapus untuk tabel (termasuk tabel aliran data perubahan) dan indeks. Dengan statistik operasi tabel, Anda dapat melakukan hal berikut:
Mengidentifikasi tabel dengan peningkatan traffic operasi tulis yang terkait dengan peningkatan penyimpanan.
Mengidentifikasi tabel dengan traffic baca, tulis, dan hapus yang tidak terduga.
Mengidentifikasi tabel yang sering digunakan.
Saat Anda membuat kueri atau menulis ke tabel, jumlah operasi yang sesuai untuk tabel tersebut akan bertambah 1, terlepas dari jumlah baris yang diakses.
Keseluruhan metrik operasi per detik dari database dapat dipantau dengan
Operations per second
, Operations per second by API method
, dan metrik terkait lainnya
dalam diagram Insight Sistem
Anda.
Ketersediaan
Spanner menyediakan statistik operasi tabel dalam
skema SPANNER_SYS
. Data SPANNER_SYS
hanya tersedia melalui antarmuka
SQL. Contoh:
Halaman Spanner Studio database di Konsol Google Cloud
Perintah
gcloud spanner databases execute-sql
executeQuery
API
Metode pembacaan tunggal lainnya yang disediakan Spanner tidak mendukung
SPANNER_SYS
.
Statistik operasi tabel
Tabel berikut melacak statistik pembacaan (atau kueri), penulisan, dan penghapusan di tabel dan indeks Anda selama jangka waktu tertentu:
SPANNER_SYS.TABLE_OPERATIONS_STATS_MINUTE
: Operasi selama interval 1 menitSPANNER_SYS.TABLE_OPERATIONS_STATS_10MINUTE
: Operasi selama interval 10 menitSPANNER_SYS.TABLE_OPERATIONS_STATS_HOUR
: Operasi selama interval 1 jam
Tabel ini memiliki properti berikut:
Setiap tabel berisi data untuk interval waktu yang tidak tumpang-tindih dari panjang yang ditentukan oleh nama tabel.
Interval didasarkan pada waktu jam. Interval 1 menit dimulai pada menit, interval 10 menit dimulai setiap 10 menit dimulai pada jam, dan interval 1 jam dimulai pada jam.
Misalnya, pada pukul 11.59.30, interval terbaru yang tersedia untuk kueri SQL adalah:
- 1 menit: 11.58.00–11.58.59
- 10 menit: 11.40–11.49.59
- 1 jam: 10.00–10.59.59
Skema untuk semua tabel statistik operasi tabel
Nama kolom | Jenis | Deskripsi |
---|---|---|
INTERVAL_END |
TIMESTAMP |
Akhir interval waktu saat ukuran tabel dikumpulkan. |
TABLE_NAME |
STRING |
Nama tabel atau indeks. |
READ_QUERY_COUNT |
INT64 |
Jumlah kueri atau pembacaan yang dilakukan dari tabel. |
WRITE_COUNT |
INT64 |
Jumlah kueri yang menulis ke tabel. |
DELETE_COUNT |
INT64 |
Jumlah kueri yang melakukan penghapusan pada tabel. |
Jika Anda menyisipkan data ke dalam database menggunakan mutasi, write_count
akan bertambah 1 untuk setiap tabel yang diakses oleh pernyataan insert. Selain itu,
kueri yang mengakses indeks, tanpa memindai tabel yang mendasarinya, hanya
menambah read_query_count
pada indeks.
Retensi data
Setidaknya, Spanner menyimpan data untuk setiap tabel selama jangka waktu berikut:
SPANNER_SYS.TABLE_OPERATIONS_STATS_MINUTE
: Interval yang mencakup 6 jam sebelumnya.SPANNER_SYS.TABLE_OPERATIONS_STATS_10MINUTE
: Interval yang mencakup 4 hari sebelumnya.SPANNER_SYS.TABLE_OPERATIONS_STATS_HOUR
: Interval yang mencakup 30 hari sebelumnya.
Contoh kueri
Bagian ini berisi beberapa contoh pernyataan SQL yang mengambil statistik operasi tabel agregat. Anda dapat menjalankan pernyataan SQL ini menggunakan library klien atau gcloud spanner.
Mengkueri tabel dan indeks dengan operasi tulis terbanyak untuk interval terbaru
SELECT interval_end, table_name, write_count FROM spanner_sys.table_operations_stats_minute WHERE interval_end = ( SELECT MAX(interval_end) FROM spanner_sys.table_operations_stats_minute) ORDER BY write_count DESC;
Mengkueri tabel dan indeks dengan operasi penghapusan terbanyak untuk interval terbaru
SELECT interval_end, table_name, delete_count FROM spanner_sys.table_operations_stats_minute WHERE interval_end = ( SELECT MAX(interval_end) FROM spanner_sys.table_operations_stats_minute) ORDER BY delete_count DESC;
Mengkueri tabel dan indeks dengan operasi kueri dan pembacaan terbanyak untuk interval terbaru
SELECT interval_end, table_name, read_query_count FROM spanner_sys.table_operations_stats_minute WHERE interval_end = ( SELECT MAX(interval_end) FROM spanner_sys.table_operations_stats_minute) ORDER BY read_query_count DESC;
Membuat kueri penggunaan tabel selama 6 jam terakhir
SELECT interval_end, read_query_count, write_count, delete_count FROM spanner_sys.table_operations_stats_minute WHERE table_name = table_name ORDER BY interval_end DESC;
Dengan keterangan:
table_name
harus berupa tabel atau indeks yang sudah ada dalam database.
Mengkueri penggunaan tabel selama 14 hari terakhir
GoogleSQL
SELECT interval_end, read_query_count, write_count, delete_count FROM spanner_sys.table_operations_stats_hour WHERE interval_end > TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -14 DAY) AND table_name = table_name ORDER BY interval_end DESC;
Dengan keterangan:
table_name
harus berupa tabel atau indeks yang sudah ada dalam database.
Mengkueri tabel dan indeks tanpa penggunaan dalam 24 jam terakhir
GoogleSQL
(SELECT t.table_name FROM information_schema.tables AS t WHERE t.table_catalog = "" AND t.table_schema = "" AND t.table_type = "BASE TABLE" UNION ALL SELECT cs.change_stream_name FROM information_schema.change_streams cs WHERE cs.change_stream_catalog = "" AND cs.change_stream_schema = "" UNION ALL SELECT idx.index_name FROM information_schema.indexes idx WHERE idx.index_type = "INDEX" AND idx.table_catalog = "" AND idx.table_schema = "") EXCEPT ALL (SELECT DISTINCT(table_name) FROM spanner_sys.table_operations_stats_hour WHERE interval_end > TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -24 HOUR));
Langkah selanjutnya
Gunakan Statistik ukuran tabel untuk menentukan ukuran tabel dan indeks Anda.
Pelajari alat Introspeksi lainnya.
Pelajari praktik terbaik SQL untuk Spanner lebih lanjut.