- Categorias:
Funções do sistema (Informações do sistema)
SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS¶
Retorna os custos estimados para adicionar uma otimização de pesquisa a uma determinada tabela e configurar colunas específicas para a otimização de pesquisa.
Importante
Os valores retornados pela função SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS são estimativas de melhor esforço com base na amostragem de um conjunto de dados parcial na tabela. Os custos estimados podem variar significativamente (até 50% ou, em casos raros, várias vezes) dos custos reais realizados.
Sintaxe¶
SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('<table_name>' [ , <search_method_with_target> ])
Argumentos¶
table_name
Tabela para a qual você deseja estimar os custos de otimização de pesquisa.
Se o nome da tabela não for totalmente qualificado (na forma de
db_name.schema_name.table_name
ouschema_name.table_name
), a função procura a tabela no esquema atual para a sessão.Observe que o nome completo deve ser delimitado por aspas simples.
search_method_with_target
Especifica um método de pesquisa e um alvo para uma configuração de coluna.
Saída¶
A função retorna um objeto JSON com as propriedades descritas abaixo:
Propriedade |
Descrição |
---|---|
|
Nome da tabela. |
|
|
|
Conjunto de objetos que descrevem os custos previstos da adição de otimização de pesquisa à tabela. |
Cada objeto da matriz costPositions
representa um tipo diferente de estimativa de custos:
...
"costPositions" : [
{
"name" : "BuildCosts",
...
}, {
"name" : "StorageCosts",
...
}, {
"name" : "Benefit",
...
}, {
"name" : "MaintenanceCosts",
...
}
]
...
A propriedade name
identifica o tipo de custo representado pelo objeto. O name
pode ser um dos seguintes:
|
Descrição |
---|---|
|
Este objeto descreve os custos previstos para a criação do caminho de acesso de pesquisa para a tabela. Se a otimização de pesquisa já tiver sido adicionada à tabela, este objeto não contém informações sobre custos. |
|
Este objeto descreve a quantidade prevista de espaço de armazenamento (em TB) necessário para o caminho de acesso de pesquisa para a tabela. . Se a otimização de pesquisa já tiver sido adicionada à tabela, este objeto mostra a quantidade atual de espaço utilizado pelo caminho de acesso da pesquisa. |
|
Este objeto não contém nenhuma informação de custo neste momento. |
|
Este objeto descreve os custos previstos para a manutenção do caminho de acesso de pesquisa para a tabela. Se esta tabela foi criada recentemente, este objeto não contém nenhuma informação de custo. |
Cada objeto da matriz costPositions
pode ter as seguintes propriedades:
Propriedade |
Descrição |
---|---|
|
Nome que identifica o tipo de informação de custo representado por este objeto. |
|
Objeto que descreve os custos previstos em termos das seguintes propriedades: |
value |
Montante do custo previsto. |
unit |
Unidade de medida do custo (por exemplo, “Créditos” para custos de computação, “TB” para custos de armazenamento etc.). |
perTimeUnit |
Para os custos de manutenção, a unidade de tempo que o custo estimado cobre (por exemplo, |
|
Método usado para estimar os custos, caso haja vários métodos disponíveis. |
|
Informações adicionais sobre o custo estimado. |
Notas de uso¶
Para o custo de criação, esta função retorna uma aproximação baseada na criação de caminhos de acesso de pesquisa para uma amostra dos dados na tabela especificada.
Para o custo de manutenção, esta função baseia as estimativas nas mudanças recentes feitas na tabela (as mudanças de bytes ao longo do tempo).
Para chamar a função, você deve ter um warehouse em uso. Se nenhum warehouse estiver em uso no momento, a função informa o seguinte erro:
No active warehouse selected in the current session. Select an active warehouse with the 'use warehouse' command.
Para executar esta função, você pode usar um warehouse X-Small. O tamanho do warehouse não afeta a velocidade e o desempenho desta função.
Como a função usa um warehouse, você é cobrado pelo uso do warehouse dessa função.
A função pode demorar entre 20 segundos até 10 minutos para ser concluída.
Conforme observado acima, o uso de um warehouse de maior tamanho não resulta na execução mais rápida desta função.
Exemplos¶
O exemplo a seguir mostra os custos estimados para adicionar a otimização de pesquisa a uma tabela:
select SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('TABLE_WITHOUT_SEARCH_OPT'); +---------------------------------------------------------------------------+ | SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('TABLE_WITHOUT_SEARCH_OPT') | |---------------------------------------------------------------------------| | { | | "tableName" : "TABLE_WITHOUT_SEARCH_OPT", | | "searchOptimizationEnabled" : false, | | "costPositions" : [ { | | "name" : "BuildCosts", | | "costs" : { | | "value" : 11.279, | | "unit" : "Credits" | | }, | | "computationMethod" : "Estimated", | | "comment" : "estimated via sampling" | | }, { | | "name" : "StorageCosts", | | "costs" : { | | "value" : 0.070493, | | "unit" : "TB" | | }, | | "computationMethod" : "Estimated", | | "comment" : "estimated via sampling" | | }, { | | "name" : "MaintenanceCosts", | | "costs" : { | | "value" : 30.296, | | "unit" : "Credits", | | "perTimeUnit" : "MONTH" | | }, | | "computationMethod" : "Estimated", | | "comment" : "Estimated from historic change rate over last ~11 days." | | } ] | | } | +---------------------------------------------------------------------------+
O exemplo a seguir mostra a saída desta função para uma tabela que já tem otimização de pesquisa:
select SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('TABLE_WITH_SEARCH_OPT'); +---------------------------------------------------------------------------+ | SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('TABLE_WITH_SEARCH_OPT') | |---------------------------------------------------------------------------| | { | | "tableName" : "TABLE_WITH_SEARCH_OPT", | | "searchOptimizationEnabled" : true, | | "costPositions" : [ { | | "name" : "BuildCosts", | | "computationMethod" : "NotAvailable", | | "comment" : "Search optimization is already enabled." | | }, { | | "name" : "StorageCosts", | | "costs" : { | | "value" : 0.052048, | | "unit" : "TB" | | }, | | "computationMethod" : "Measured" | | }, { | | "name" : "Benefit", | | "computationMethod" : "NotAvailable", | | "comment" : "Currently not supported." | | }, { | | "name" : "MaintenanceCosts", | | "costs" : { | | "value" : 30.248, | | "unit" : "Credits", | | "perTimeUnit" : "MONTH" | | }, | | "computationMethod" : "EstimatedUpperBound", | | "comment" : "Estimated from historic change rate over last ~11 days." | | } ] | | } | +---------------------------------------------------------------------------+