Saat baris tabel ditambahkan, dihapus, atau diperbarui, mesin berbentuk kolom tidak akan langsung memperbarui data di penyimpanan kolom. Sebagai gantinya, mesin ini menandai konten yang terpengaruh di penyimpanan kolom sebagai tidak valid, dan kueri direncanakan serta dieksekusi menggunakan data berorientasi kolom dari penyimpanan kolom dan data berorientasi baris dari cache baris dan penyimpanan database.
Seiring waktu, karena makin banyak blok data yang menjadi tidak valid, peningkatan performa kueri yang diberikan oleh columnar engine akan berkurang hingga data berbentuk kolom perlu dimuat ulang untuk mendapatkan kembali peningkatan performa kueri. Saat batas refresh ini tercapai, columnar engine akan menggunakan tugas latar belakang untuk me-refresh data yang tidak valid di penyimpanan kolom. Secara default, columnar engine menggunakan batas refresh 50, yang menunjukkan bahwa konten tertentu di penyimpanan kolom ditandai untuk di-refresh saat 50% kontennya menjadi tidak valid. Anda dapat mengubah batas refresh ini untuk menyesuaikan overhead refresh otomatis dan berpotensi mendapatkan performa kueri berkelanjutan yang lebih baik untuk workload aplikasi Anda.
Selain itu, Anda dapat memuat ulang data tabel secara manual di penyimpanan kolom kapan saja. Biasanya, Anda melakukan pemuatan ulang manual saat ingin perubahan pada tabel diterapkan di penyimpanan kolom sesegera mungkin setelah melakukan perubahan.
Mengubah batas refresh columnar engine
Edit nilai flag database google_columnar_engine.refresh_threshold_percentage untuk mengubah batas refresh columnar engine.
ALTER SYSTEM SET google_columnar_engine.refresh_threshold_percentage=THRESHOLD;
THRESHOLD: nilai bilangan bulat antara 1 dan
100. Nilai ini menentukan persentase blok data dalam konten
yang harus menjadi tidak valid agar konten ditandai untuk dimuat ulang.
Memuat ulang data tabel secara manual di penyimpanan kolom
Jalankan fungsi SQL google_columnar_engine_refresh untuk memperbarui data tabel secara manual di penyimpanan kolom dalam memori.
SELECT google_columnar_engine_refresh(TABLE_NAME);
TABLE_NAME: string yang berisi nama tabel atau tampilan terwujud. Jika tabel atau tampilan berada dalam skema selain public, tentukan nama skema menggunakan format SCHEMA_NAME.TABLE_NAME—misalnya, myschema.mytable.