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> ... ] )' ] )
Copy

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)');
Copy
{
  "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."
  }
}