Statistik ukuran tabel

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 Anda membuat, menghapus, dan mengubahnya (saat Anda menyisipkan lebih banyak baris ke dalam indeks atau saat Anda menambahkan kolom baru ke dalamnya). Selain itu, Anda juga dapat melihat ukuran tabel aliran 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 executeSql atau executeStreamingSql.

Metode baca tunggal berikut yang disediakan Spanner tidak mendukung SPANNER_SYS:

  • Melakukan pembacaan yang kuat dari satu baris atau beberapa baris dalam tabel.
  • Melakukan pembacaan basi 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 awal jam. Secara internal, setiap 5 menit, Spanner mengumpulkan data dari semua server, lalu menyediakan data tersebut di tabel TABLE_SIZES_STATS_1HOUR tidak lama setelahnya. Kemudian, data dirata-ratakan 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 saat ukuran tabel dikumpulkan.
TABLE_NAME STRING Nama tabel atau indeks.
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.

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 Google Cloud console.

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
    FROM spanner_sys.table_sizes_stats_1hour
    WHERE interval_end = (
          SELECT MAX(interval_end)
          FROM spanner_sys.table_sizes_stats_1hour)
    ORDER BY used_bytes DESC
    LIMIT 4;
  

Output kueri
interval_end table_name 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
  FROM spanner_sys.table_sizes_stats_1hour
WHERE interval_end > TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -24 HOUR)
  AND table_name = "table_name"
ORDER BY interval_end DESC;

Dengan:

  • table_name harus berupa tabel atau indeks yang ada dalam database.

PostgreSQL

SELECT interval_end, used_bytes
  FROM spanner_sys.table_sizes_stats_1hour
WHERE interval_end > spanner.timestamptz_subtract(now(), '24 HOUR')
  AND table_name = 'table_name'
ORDER BY interval_end DESC;

Dengan:

  • table_name harus berupa tabel atau indeks yang ada dalam database.
Output kueri
interval_end 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

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 awal jam. 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. Kemudian, data dirata-ratakan 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 10.00.00 - 10.59.59.

Skema tabel

Nama kolom Jenis Deskripsi
INTERVAL_END TIMESTAMP Akhir interval waktu saat ukuran tabel dikumpulkan.
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

Setidaknya, Spanner menyimpan data selama SPANNER_SYS.TABLE_SIZES_STATS_1HOUR untuk interval yang mencakup 30 hari sebelumnya.

Langkah berikutnya