Categorias:

Information Schema , Funções de tabela

SEARCH_OPTIMIZATION_HISTORY

Esta função de tabela é usada para consultar o histórico de manutenção do serviço de otimização de pesquisa de uma tabela determinada dentro de um intervalo de datas especificado. As informações retornadas pela função incluem o nome da tabela e os créditos consumidos cada vez que ocorreu uma operação de manutenção de otimização de pesquisa.

Sintaxe

SEARCH_OPTIMIZATION_HISTORY(
      [ DATE_RANGE_START => <constant_expr> ]
      [ , DATE_RANGE_END => <constant_expr> ]
      [ , TABLE_NAME => '<string>' ] )
Copy

Argumentos

Todos os argumentos são opcionais.

DATE_RANGE_START => constant_expr , . DATE_RANGE_END => constant_expr

O intervalo de data/hora para o qual se deve exibir o histórico. Por exemplo, se você especificar que a data de início é 03-04-2019 e a data final é 05-04-2019, então você obtém dados para 3 de abril, 4 de abril e 5 de abril. (Os pontos de extremidade estão incluídos).

  • Se não for especificada nem uma data de início nem uma data final, o padrão será as últimas 12 horas.

  • Se uma data final não for especificada, mas uma data de início for especificada, então CURRENT_DATE à meia-noite é usada como o fim do intervalo.

  • Se uma data de início não for especificada, mas uma data final for especificada, então o intervalo começa 12 horas antes do início de DATE_RANGE_END.

TABLE_NAME => string

O nome da tabela. Se especificado, mostra apenas o histórico para a tabela especificada. O nome pode incluir o nome do esquema e o nome do banco de dados.

Se um nome não for especificado, então os resultados incluem os dados para cada tabela que tem otimização de pesquisa para a qual a manutenção ocorreu dentro do intervalo de tempo especificado.

Notas de uso

  • Retorna resultados apenas para a função ACCOUNTADMIN ou qualquer função que tenha sido explicitamente concedido o privilégio global MONITOR USAGE.

    Nota

    Uma função com o privilégio MONITOR USAGE pode ver o uso de crédito por objeto, mas não os nomes de objetos. A função também deve ter SELECT em um objeto para que o nome do objeto seja devolvido por esta função. Se a função não tiver privilégios suficientes para ver o nome do objeto, o nome do objeto pode ser exibido com um nome substituto, como “desconhecido_#”, onde “#” representa um ou mais dígitos.

  • Ao chamar uma função de tabela do Information Schema, a sessão deve ter um esquema INFORMATION_SCHEMA em uso ou o nome da função deve ser totalmente qualificado. Para obter mais detalhes, consulte Snowflake Information Schema.

  • O histórico é exibido em incrementos de 1 hora.

Saída

A função retorna as seguintes colunas:

Nome da coluna

Tipo de dados

Descrição

START_TIME

TIMESTAMP_LTZ

Início do intervalo especificado.

END_TIME

TIMESTAMP_LTZ

Fim do intervalo especificado.

CREDITS_USED

TEXT

Número de créditos faturados para manutenção do índice de pesquisa durante o intervalo START_TIME e END_TIME.

TABLE_NAME

TEXT

Nome da tabela.

Exemplos

Recuperar o histórico para um intervalo de uma hora para sua conta:

select *
  from table(information_schema.search_optimization_history(
    date_range_start=>'2019-05-22 19:00:00.000',
    date_range_end=>'2019-05-22 20:00:00.000'));
Copy

Aqui está uma amostra da saída:

+-------------------------------+-------------------------------+--------------+----------------------------------+
| START_TIME                    | END_TIME                      | CREDITS_USED | TABLE_NAME                       |
|-------------------------------+-------------------------------+--------------+----------------------------------|
| 2019-05-22 19:00:00.000 -0700 | 2019-05-22 20:00:00.000 -0700 |  0.223276651 | TEST_DB.TEST_SCHEMA.TEST_TABLE_1 |
+-------------------------------+-------------------------------+--------------+----------------------------------+
Copy

Recuperar o histórico das últimas 12 horas para sua conta:

select *
  from table(information_schema.search_optimization_history(
    date_range_start=>dateadd(H, -12, current_timestamp)));
Copy

Recuperar o histórico da última semana para uma tabela específica:

select *
  from table(information_schema.search_optimization_history(
    date_range_start=>dateadd(D, -7, current_date),
    date_range_end=>current_date,
    table_name=>'mydb.myschema.my_table')
    );
Copy

Recuperar o histórico de manutenção da última semana para todas as tabelas de sua conta:

select *
  from table(information_schema.search_optimization_history(
    date_range_start=>dateadd(D, -7, current_date),
    date_range_end=>current_date)
    );
Copy