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

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 ou schema_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

tableName

Nome da tabela.

searchOptimizationEnabled

true se a propriedade de otimização de pesquisa estiver definida para a tabela; caso contrário, false.

costPositions

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",
    ...
  }
]
...
Copy

A propriedade name identifica o tipo de custo representado pelo objeto. O name pode ser um dos seguintes:

name de objeto em costPositions

Descrição

BuildCosts

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.

StorageCosts

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.

Benefit

Este objeto não contém nenhuma informação de custo neste momento.

MaintenanceCosts

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

name

Nome que identifica o tipo de informação de custo representado por este objeto.

costs

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, "MONTH" para o custo por mês).

computationMethod

Método usado para estimar os custos, caso haja vários métodos disponíveis.

comment

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.
    
    Copy

    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." |
|   } ]                                                                     |
| }                                                                         |
+---------------------------------------------------------------------------+
Copy

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." |
|   } ]                                                                     |
| }                                                                         |
+---------------------------------------------------------------------------+
Copy