- Categorias:
Funções do sistema (Informações do sistema)
SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS¶
Retorna os custos estimados associados à ativação do Clustering automático para uma tabela. Esta função é usada para o seguinte:
Estimar o custo de clustering de uma tabela pela primeira vez.
Estimar o custo de alteração da chave de clustering de uma tabela.
Estimar, quando possível, o custo associado à manutenção da tabela depois que ela for agrupada em torno da chave especificada. Às vezes, uma tabela pode precisar de mais histórico de DML para estimar custos futuros de manutenção.
Importante
As estimativas de custo retornadas pela função SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS são os melhores esforços. Os custos reais realizados podem variar em até 100% (ou, em casos raros, várias vezes) dos custos estimados.
Sintaxe¶
SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS( '<table_name>' ,
[ '( <expr1> [ , <expr2> ... ] )' ] )
Argumentos¶
- “
table_name
” Nome da tabela para a qual você deseja retornar o custo estimado de clustering.
- “
(expr1 [ , expr2 ... ])
” A chave de clustering proposta para a tabela é onde cada expressão é resolvida para uma coluna da tabela. A função estima o custo de clustering da tabela usando essas colunas como a chave de clustering.
Mesmo que apenas um nome de coluna ou expressão seja passado, ele deve estar dentro de parênteses.
Este argumento é necessário para uma tabela sem chave de clustering. Um erro será retornado se o argumento for omitido.
Este argumento é opcional para uma tabela com uma chave de clustering. Se o argumento for omitido, a função estima o custo de clustering da tabela usando a chave de clustering atual da tabela.
Retornos¶
Um valor do tipo VARCHAR. A cadeia de caracteres retornada está no formato JSON e contém os seguintes pares nome/valor:
warning
Indica se as condições podem afetar a precisão da estimativa de custo ou o impacto da escolha de uma chave de clustering.
reportTime
Data em que a saída da função foi gerada.
clusteringKey
Colunas que compõem a chave de clustering.
initial
Descreve o custo previsto de clustering da tabela em torno da chave de clustering especificada. O custo estimado de manutenção da tabela depois de agrupada não está incluso. O objeto JSON
initial
contém os seguintes pares nome-valor.unit
Indica as unidades em que o custo inicial é expresso.
value
Indica o custo para clusterizar a tabela, expresso em
unit
.comment
Interpreta o custo inicial do clustering.
maintenance
Descreve os custos previstos de manutenção de uma tabela bem clusterizada após ela ser clusterizada inicialmente. Essa previsão é baseada na atividade de DML recente porque uma tabela é clusterizada conforme muda.
Um objeto vazio indica que a tabela ou uma das colunas chave do cluster é nova. Isso significa que a função precisa de mais dados históricos sobre as operações de DML para estimar os custos de manutenção.
unit
Indica as unidades em que o custo é expresso.
value
Indica qual será o custo para manter a tabela após o clustering inicial, expresso em
units
por dia.comment
Inclui o período em que os custos ocorrem e o quadro no qual a estimativa se baseia.
Requisitos de controle de acesso¶
Os privilégios necessários para estimar custos são os mesmos necessários para ler a tabela e alterar a chave do cluster. Você precisa dos seguintes privilégios:
Privilégios SELECT e INSERT na tabela ou privilégio OWNERSHIP na tabela.
Privilégio USAGE ou OWNERSHIP no esquema pai e no banco de dados.
Notas de uso¶
As estimativas de custo retornadas pela função SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS são baseadas na amostragem de um subconjunto de micropartições da sua tabela e na captura do tempo de execução do clustering. Dependendo das micropartições específicas amostradas e da velocidade do sistema, as estimativas de custo podem diferir entre as execuções de função.
Para obter a melhor precisão possível, é possível executar SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS várias vezes e calcular a média dos resultados. A função usa trabalhos de clustering de amostra e coleta seu tempo de execução. A estimativa de custo fornecida pode variar dependendo da velocidade do sistema. Executar a função várias vezes e calcular a média dos resultados pode produzir uma estimativa de custo mais precisa.
O motivo mais comum para uma estimativa imprecisa do custo de manutenção é que os padrões de DML anteriores baseados na estimativa não correspondem aos padrões de DML futuros.
Exemplos¶
Retorna os custos estimados associados à definição da coluna tenantId
como a chave de clustering para a tabela myTable
.
SELECT SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS('myTable', '(tenantId)');
{
"reportTime": "Fri, 12 Jul 2024 01:06:18 GMT",
"clusteringKey": "LINEAR(tenantId)",
"initial": {
"unit": "Credits",
"value": 98.197987412,
"comment": "Total upper bound of one time cost"
},
"maintenance": {
"unit": "Credits",
"value": 10.0,
"comment": "Daily maintenance cost estimate provided based on DML history from the
past seven days."
}
}