本文說明如何手動觸發 Spanner 資料庫中的主要壓縮作業。
Spanner 中有幾項與儲存空間相關的功能 (例如層級儲存空間或資料欄引擎),必須先完成資料庫範圍內的主要壓縮作業,才能完全啟用。根據預設,所有資料表每七天會自動進行一次主要壓縮作業。也就是說,新功能最多可能需要七天才能全面開放使用。如要立即使用新功能,可以手動觸發主要壓縮作業。
壓縮程序是長時間執行的作業 (LRO)。
定價
觸發主要壓縮作業時,Spanner 執行個體的運算能力會暫時增加。這可能會導致費用增加。
效能
主要壓縮作業會以背景作業的形式執行。不過,如果執行個體的 CPU 使用量持續偏高,壓縮工作負載可能會干擾其他重要作業。在這種情況下,您可以暫時調高執行個體的規模,確保壓縮期間效能穩定。
手動觸發主要壓縮作業
Google Cloud 控制台
開啟 Google Cloud 控制台並選取執行個體。
選取資料庫。
在導覽選單中,按一下「Spanner Studio」。
按一下「開啟新的 SQL 編輯器分頁」或「開啟新分頁」,開啟新分頁。
叫用下列指令來啟動壓縮作業:
CALL compact_all();這項作業會傳回長時間執行作業 (LRO) ID,您可以使用該 ID 在「作業」清單中尋找作業。
如要監控壓縮作業進度,請在導覽選單中點選「Operations」(作業)。
C++
如要使用 C++ 用戶端程式庫以程式輔助方式觸發壓縮作業,請按照下列步驟操作:
void Compact(google::cloud::spanner::Client client) {
namespace spanner = ::google::cloud::spanner;
spanner::SqlStatement select("CALL compact_all()");
auto rows = client.ExecuteQuery(statement);
using RowType = std::tuple<std::string>;
auto rows = client.ExecuteQuery(std::move(select));
for (auto& row : spanner::StreamOf<RowType>(rows)) {
if (!row) throw std::move(row).status();
std::cout << "Long-running operation ID: " << std::get<0>(*row) << "\n";
}
}
您可以查看長時間執行的資料庫作業進度。 您也可以使用 LRO ID 取消進行中的主要壓縮要求。詳情請參閱「取消長時間執行的資料庫作業」。