Catégories :

Information Schema , Fonctions de table

SEARCH_OPTIMIZATION_HISTORY

Cette fonction de table est utilisée pour interroger l’historique de maintenance du service d’optimisation de recherche pour une table spécifiée à l’intérieur d’une plage de dates spécifiée. Les informations renvoyées par la fonction incluent le nom de la table et les crédits consommés chaque fois qu’une opération de maintenance d’optimisation de recherche a lieu.

Syntaxe

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

Arguments

Tous les arguments sont facultatifs.

DATE_RANGE_START => constant_expr , . DATE_RANGE_END => constant_expr

La plage de date/heure pour laquelle afficher l’historique. Par exemple, si vous spécifiez que la date de début est 2019-04-03 et que la date de fin est 2019-04-05, vous obtenez des données pour le 3, le 4 et 5 avril. (Les points de terminaison sont inclus.)

  • Si ni date de début, ni date de fin n’est spécifiée, la valeur par défaut correspondra aux 12 dernières heures.

  • Si aucune date de fin n’est spécifiée, mais si une date de début l’est, alors CURRENT_DATE à minuit est utilisée comme date de fin de plage.

  • Si aucune date de début n’est spécifiée, mais qu’une date de fin est spécifiée, la plage commence 12 heures avant le début de DATE_RANGE_END.

TABLE_NAME => string

Le nom de la table. Si spécifié, affiche uniquement l’historique de la table spécifiée. Le nom peut inclure le nom du schéma et le nom de la base de données.

Si aucun nom n’est spécifié, les résultats comprennent les données pour chaque table qui a une optimisation de recherche pour laquelle la maintenance a eu lieu dans la période spécifiée.

Notes sur l’utilisation

  • Renvoie les résultats uniquement pour le rôle ACCOUNTADMIN ou tout rôle auquel le privilège global MONITOR USAGE a été explicitement accordé.

    Note

    Un rôle doté du privilège MONITOR USAGE peut afficher l’utilisation du crédit par objet, mais pas les noms d’objet. Il est également nécessaire d’accorder SELECT au rôle sur un objet pour que le nom de l’objet soit renvoyé par cette fonction. Si le rôle ne dispose pas des privilèges suffisants pour voir le nom de l’objet, celui-ci peut être affiché avec un nom de substitution tel que « inconnu_# », où « # » représente un ou plusieurs chiffres.

  • Lors de l’appel d’une fonction de la table de schémas d’informations, la session doit avoir un schéma INFORMATION_SCHEMA en cours d’utilisation ou le nom de la fonction doit être complètement qualifié. Pour plus de détails, voir Schéma d’information de Snowflake.

  • L’historique est affiché par incréments de 1 heure.

Sortie

La fonction renvoie les colonnes suivantes :

Nom de la colonne

Type de données

Description

START_TIME

TIMESTAMP_LTZ

Début de l’intervalle de temps spécifié.

END_TIME

TIMESTAMP_LTZ

Fin de l’intervalle de temps spécifié.

CREDITS_USED

TEXT

Nombre de crédits facturés pour la maintenance de l’index de recherche durant la fenêtre START_TIME et END_TIME.

TABLE_NAME

TEXT

Nom de la table.

Exemples

Récupérer l’historique d’une durée d’une heure pour votre compte :

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

Voici un exemple de sortie :

+-------------------------------+-------------------------------+--------------+----------------------------------+
| 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

Récupérer l’historique des 12 dernières heures pour votre compte :

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

Récupérer l’historique de la semaine passée pour une table spécifiée :

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

Récupérer l’historique de maintenance de la semaine écoulée pour toutes les tables de votre compte :

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