Spanner menyediakan tabel bawaan berikut:
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR: mencantumkan ukuran tabel dan indeks dalam database Anda.SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR: mencantumkan ukuran tabel dan indeks dalam database Anda untuk setiap grup lokalitas.
Ukuran tabel dalam byte. Ukuran tabel mencakup versi data. Anda dapat menggunakan tabel bawaan ini untuk memantau ukuran tabel dan indeks dari waktu ke waktu. Anda juga dapat memantau ukuran indeks saat membuat, menghapus, dan mengubahnya (saat menyisipkan lebih banyak baris ke dalam indeks atau saat menambahkan kolom baru ke dalamnya). Selain itu, Anda juga dapat melihat ukuran tabel aliran data perubahan.
Penyimpanan database dapat dipantau dengan Metrik total penyimpanan database.
Anda dapat melihat perincian penyimpanan database dengan
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR dan
SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR.
Mengakses statistik ukuran tabel
Spanner menyediakan statistik ukuran tabel dalam skema SPANNER_SYS. Anda dapat menggunakan cara berikut untuk mengakses data SPANNER_SYS:
Halaman Spanner Studio database di konsol Google Cloud .
Perintah
gcloud spanner databases execute-sql.Metode
executeSqlatauexecuteStreamingSql.
Metode baca tunggal berikut yang disediakan Spanner
tidak mendukung SPANNER_SYS:
- Melakukan pembacaan kuat dari satu baris atau beberapa baris dalam tabel.
- Melakukan pembacaan usang dari satu baris atau beberapa baris dalam tabel.
- Membaca dari satu baris atau beberapa baris dalam indeks sekunder.
TABLE_SIZES_STATS_1HOUR
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR berisi ukuran semua tabel dalam database Anda, yang diurutkan berdasarkan interval_end. Interval didasarkan pada waktu jam,
yang berakhir pada jam tersebut. Secara internal, setiap 5 menit, Spanner mengumpulkan data dari semua server, lalu menyediakan data tersebut di tabel TABLE_SIZES_STATS_1HOUR tidak lama setelahnya. Data tersebut kemudian dirata-rata
per jam. Misalnya, pada pukul 11.59.30, TABLE_SIZES_STATS_1HOUR
menampilkan ukuran tabel rata-rata dari interval pukul 10.00.00 - 10.59.59.
Skema tabel
| Nama kolom | Jenis | Deskripsi |
|---|---|---|
INTERVAL_END |
TIMESTAMP |
Akhir interval waktu pengumpulan ukuran tabel. |
TABLE_NAME |
STRING |
Nama tabel atau indeks. |
USED_BYTES |
FLOAT64 |
Penyimpanan berbasis baris yang digunakan oleh tabel atau indeks dalam byte. |
USED_SSD_BYTES |
FLOAT64 |
Penyimpanan berbasis baris SSD yang digunakan oleh tabel atau indeks dalam byte. |
USED_HDD_BYTES |
FLOAT64 |
Penyimpanan berbasis baris HDD yang digunakan oleh tabel atau indeks dalam byte. |
COLUMNAR_USED_BYTES |
FLOAT64 |
Penyimpanan berbentuk kolom yang digunakan oleh tabel atau indeks dalam byte. |
COLUMNAR_USED_SSD_BYTES |
FLOAT64 |
Penyimpanan SSD berbentuk kolom yang digunakan oleh tabel atau indeks dalam byte. |
COLUMNAR_USED_HDD_BYTES |
FLOAT64 |
Penyimpanan HDD berbentuk kolom yang digunakan oleh tabel atau indeks dalam byte. |
COLUMNAR_COVERAGE_RATIO |
FLOAT64 |
Rasio data berformat kolom terhadap total data untuk tabel atau indeks dengan kebijakan kolom diaktifkan. Nilai berkisar
dari 0.0 hingga 1.0. |
COLUMNAR_SSD_COVERAGE_RATIO |
FLOAT64 |
Rasio data SSD berformat kolom terhadap total data SSD untuk tabel atau indeks dengan kebijakan kolom diaktifkan. Nilai berkisar dari
0.0 hingga 1.0. |
COLUMNAR_HDD_COVERAGE_RATIO |
FLOAT64 |
Rasio data HDD berformat kolom terhadap total data HDD untuk tabel atau indeks dengan kebijakan kolom diaktifkan. Nilai berkisar dari
0.0 hingga 1.0. |
Contoh kueri
Bagian ini mencakup beberapa contoh pernyataan SQL yang mengambil statistik ukuran tabel gabungan. Anda dapat menjalankan pernyataan SQL ini menggunakan library klien, gcloud spanner, atau konsolGoogle Cloud .
Membuat kueri 4 tabel dan indeks terbesar untuk interval terbaru
Kueri berikut menampilkan 4 tabel dan indeks terbesar untuk interval terbaru:
SELECT interval_end,
table_name,
used_bytes + columnar_used_bytes AS total_used_bytes
FROM spanner_sys.table_sizes_stats_1hour
WHERE interval_end = (
SELECT MAX(interval_end)
FROM spanner_sys.table_sizes_stats_1hour)
ORDER BY total_used_bytes DESC
LIMIT 4;
Output kueri
| interval_end | table_name | total_used_bytes |
|---|---|---|
2022-11-15 13:00:00-07:00 |
order_item |
60495552 |
2022-11-15 13:00:00-07:00 |
orders |
13350000 |
2022-11-15 13:00:00-07:00 |
item_inventory |
2094549 |
2022-11-15 13:00:00-07:00 |
customer |
870000 |
Tren ukuran kueri untuk tabel atau indeks tertentu selama 24 jam terakhir
Kueri berikut menampilkan ukuran tabel selama 24 jam terakhir:
GoogleSQL
SELECT interval_end,
used_bytes + columnar_used_bytes AS total_used_bytes
FROM spanner_sys.table_sizes_stats_1hour
WHERE interval_end > TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -24 HOUR)
AND table_name = "<var>table_name</var>"
ORDER BY interval_end DESC;
Dengan:
table_nameharus berupa tabel atau indeks yang ada dalam database.
PostgreSQL
SELECT interval_end,
used_bytes + columnar_used_bytes AS total_used_bytes
FROM spanner_sys.table_sizes_stats_1hour
WHERE interval_end > spanner.timestamptz_subtract(now(), '24 HOUR')
AND table_name = '<var>table_name</var>'
ORDER BY interval_end DESC;
Dengan:
table_nameharus berupa tabel atau indeks yang ada dalam database.
Output kueri
| interval_end | total_used_bytes |
|---|---|
2022-11-15 13:00:00-07:00 |
13350000 |
2022-11-15 12:00:00-07:00 |
13350000 |
2022-11-15 11:00:00-07:00 |
13350000 |
2022-11-15 10:00:00-07:00 |
13350000 |
2022-11-15 09:00:00-07:00 |
13350000 |
2022-11-15 08:00:00-07:00 |
12350000 |
2022-11-15 07:00:00-07:00 |
12350000 |
2022-11-15 06:00:00-07:00 |
12350000 |
2022-11-15 05:00:00-07:00 |
11350000 |
2022-11-15 04:00:00-07:00 |
11350000 |
2022-11-15 03:00:00-07:00 |
11350000 |
2022-11-15 02:00:00-07:00 |
11350000 |
2022-11-15 01:00:00-07:00 |
11350000 |
2022-11-15 00:00:00-07:00 |
10350000 |
2022-11-14 23:00:00-07:00 |
10350000 |
2022-11-14 22:00:00-07:00 |
10350000 |
2022-11-14 21:00:00-07:00 |
10350000 |
2022-11-14 20:00:00-07:00 |
10350000 |
2022-11-14 19:00:00-07:00 |
10350000 |
2022-11-14 18:00:00-07:00 |
10350000 |
2022-11-14 17:00:00-07:00 |
10350000 |
2022-11-14 16:00:00-07:00 |
10350000 |
2022-11-14 15:00:00-07:00 |
10350000 |
2022-11-14 14:00:00-07:00 |
10350000 |
2022-11-14 13:00:00-07:00 |
10350000 |
Membuat kueri penggunaan penyimpanan dan cakupan berbasis kolom untuk interval terbaru
Kueri berikut menampilkan ukuran penyimpanan berbasis baris, ukuran penyimpanan berbasis kolom, dan rasio cakupan berbasis kolom untuk tabel dan indeks dalam interval terbaru:
GoogleSQL
SELECT interval_end,
table_name,
used_bytes,
columnar_used_bytes,
columnar_coverage_ratio
FROM spanner_sys.table_sizes_stats_1hour
WHERE interval_end = (
SELECT MAX(interval_end)
FROM spanner_sys.table_sizes_stats_1hour)
ORDER BY columnar_used_bytes DESC;
PostgreSQL
SELECT interval_end,
table_name,
used_bytes,
columnar_used_bytes,
columnar_coverage_ratio
FROM spanner_sys.table_sizes_stats_1hour
WHERE interval_end = (
SELECT MAX(interval_end)
FROM spanner_sys.table_sizes_stats_1hour)
ORDER BY columnar_used_bytes DESC;
Output kueri
| interval_end | table_name | used_bytes | columnar_used_bytes | columnar_coverage_ratio |
|---|---|---|---|---|
2022-11-15 13:00:00-07:00 |
order_item |
45371664 |
15123888 |
0.95 |
2022-11-15 13:00:00-07:00 |
orders |
10012500 |
3337500 |
0.85 |
2022-11-15 13:00:00-07:00 |
item_inventory |
2094549 |
0 |
0 |
2022-11-15 13:00:00-07:00 |
customer |
870000 |
0 |
0 |
Membuat kueri tren penyimpanan dan cakupan berdasarkan kolom untuk tabel atau indeks tertentu selama 24 jam terakhir
Kueri berikut menampilkan ukuran penyimpanan berbentuk kolom dan rasio cakupan untuk tabel atau indeks tertentu selama 24 jam terakhir:
GoogleSQL
SELECT interval_end,
columnar_used_bytes,
columnar_coverage_ratio
FROM spanner_sys.table_sizes_stats_1hour
WHERE interval_end > TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -24 HOUR)
AND table_name = "<var>table_name</var>"
ORDER BY interval_end DESC;
Dengan:
table_nameharus berupa tabel atau indeks yang ada dalam database.
PostgreSQL
SELECT interval_end,
columnar_used_bytes,
columnar_coverage_ratio
FROM spanner_sys.table_sizes_stats_1hour
WHERE interval_end > spanner.timestamptz_subtract(now(), '24 HOUR')
AND table_name = '<var>table_name</var>'
ORDER BY interval_end DESC;
Dengan:
table_nameharus berupa tabel atau indeks yang ada dalam database.
Output kueri
| interval_end | columnar_used_bytes | columnar_coverage_ratio |
|---|---|---|
2022-11-15 13:00:00-07:00 |
3337500 |
0.85 |
2022-11-15 12:00:00-07:00 |
3337500 |
0.85 |
2022-11-15 11:00:00-07:00 |
3140000 |
0.8 |
2022-11-15 10:00:00-07:00 |
2945000 |
0.75 |
2022-11-15 09:00:00-07:00 |
2750000 |
0.7 |
2022-11-15 08:00:00-07:00 |
2355000 |
0.6 |
TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR berisi ukuran semua tabel dalam database Anda, yang diurutkan berdasarkan interval_end, untuk setiap grup lokalitas. Interval didasarkan pada waktu jam, yang berakhir pada jam tersebut. Secara internal,
setiap 5 menit, Spanner mengumpulkan data dari semua server, lalu
menyediakan data tersebut di tabel TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
tidak lama setelahnya. Data tersebut kemudian dirata-rata per jam. Misalnya, pada pukul 11.59.30, TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR menampilkan ukuran tabel rata-rata untuk setiap grup lokalitas dari interval pukul 10.00.00 - 10.59.59.
Skema tabel
| Nama kolom | Jenis | Deskripsi |
|---|---|---|
INTERVAL_END |
TIMESTAMP |
Akhir interval waktu pengumpulan ukuran tabel. |
TABLE_NAME |
STRING |
Nama tabel atau indeks. |
LOCALITY_GROUP |
STRING |
Nama grup lokalitas. |
USED_BYTES |
FLOAT64 |
Ukuran tabel dalam byte. |
USED_SSD_BYTES |
FLOAT64 |
Penyimpanan SSD yang digunakan oleh tabel dalam byte. |
USED_HDD_BYTES |
FLOAT64 |
Penyimpanan HDD yang digunakan oleh tabel dalam byte. |
Retensi data
Minimal, Spanner menyimpan data untuk
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR selama interval yang mencakup 30 hari
sebelumnya.
Langkah berikutnya
- Pelajari alat Introspeksi lainnya.
- Pelajari informasi lain yang disimpan Spanner untuk setiap database dalam tabel skema informasi database.
- Pelajari lebih lanjut praktik terbaik SQL untuk Spanner.
- Pelajari lebih lanjut cara Menyelidiki pemakaian CPU yang tinggi.
- Pelajari columnar engine.
- Pelajari cara memantau columnar engine.