Questo documento spiega come attivare manualmente una compattazione principale in un database Spanner.
Diverse funzionalità relative all'archiviazione in Spanner, come l'archiviazione a livelli o il motore colonnare, si basano su una compattazione principale a livello di database prima di essere completamente abilitate. Per impostazione predefinita, le compattazioni principali vengono eseguite automaticamente in tutte le tabelle in periodi di sette giorni. Ciò significa che potresti dover attendere fino a sette giorni prima che una nuova funzionalità sia completamente disponibile. Per rendere immediatamente disponibili le nuove funzionalità, puoi attivare manualmente una compattazione principale.
Il processo di compattazione è un'operazione a lunga esecuzione (LRO).
Prezzi
L'attivazione di una compattazione principale aumenta temporaneamente la capacità di calcolo sull'istanza Spanner. Ciò potrebbe comportare un aumento dei costi.
Prestazioni
Le compattazioni principali vengono eseguite come operazioni in background. Tuttavia, se la tua istanza ha un utilizzo della CPU costantemente elevato, il carico di lavoro di compattazione potrebbe interferire con altre operazioni critiche. In questi casi, puoi aumentare temporaneamente lo scale up dell'istanza per garantire prestazioni stabili durante la compattazione.
Attivare manualmente una compattazione principale
Console Google Cloud
Apri la Google Cloud console e seleziona la tua istanza.
Seleziona un database.
Nel menu di navigazione, fai clic su Spanner Studio.
Apri una nuova scheda facendo clic su Nuova scheda dell'editor SQL o Nuova scheda.
Richiama il comando seguente per avviare la compattazione:
CALL compact_all();Questa operazione restituisce un ID operazione a lunga esecuzione (LRO) che puoi utilizzare per trovare l'operazione nell'elenco Operazioni.
Per monitorare l'avanzamento dell'operazione di compattazione, nel menu di navigazione, fai clic su Operazioni.
C++
Per attivare le compattazioni in modo programmatico utilizzando la libreria client 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";
}
}
Puoi controllare l'avanzamento di un'operazione di database a lunga esecuzione. Puoi anche annullare la richiesta di compattazione principale in corso utilizzando l'ID LRO. Per maggiori informazioni, consulta Annullare un'operazione di database a lunga esecuzione.