Schémas :

ACCOUNT_USAGE, READER_ACCOUNT_USAGE

Vue QUERY_HISTORY

Cette vue Account Usage peut être utilisée pour interroger l’historique des requêtes Snowflake selon différentes dimensions (plage de temps, session, utilisateur, entrepôt, etc.) au cours des 365 derniers jours (1 an).

La vue est disponible dans les schémas ACCOUNT_USAGE et READER_ACCOUNT_USAGE avec les différences suivantes :

  • La colonne suivante est disponible uniquement dans la vue du compte de lecteur :

    • READER_ACCOUNT_NAME

  • Les colonnes suivantes ne sont pas fournies dans la vue du compte de lecteur :

    • QUERY_ACCELERATION_BYTES_SCANNED

    • QUERY_ACCELERATION_PARTITIONS_SCANNED

    • QUERY_ACCELERATION_UPPER_LIMIT_SCALE_FACTOR

Voir aussi :

Colonnes

Nom de la colonne

Type de données

Description

READER_ACCOUNT_NAME

TEXT

Nom du compte de lecteur dans lequel l’instruction SQL a été exécutée.

QUERY_ID

TEXT

Identificateur interne / généré par le système pour l’instruction SQL.

QUERY_TEXT

TEXT

Texte de l’instruction SQL. La limite est de 100 000 caractères. Les instructions SQL contenant plus de 100 000 caractères seront tronquées.

DATABASE_ID

NUMBER

Identificateur interne/généré par le système pour la base de données utilisée.

DATABASE_NAME

TEXT

Base de données spécifiée dans le contexte de la requête lors de la compilation.

SCHEMA_ID

NUMBER

Identificateur interne / généré par le système pour le schéma utilisé.

SCHEMA_NAME

TEXT

Schéma spécifié dans le contexte de la requête lors de la compilation.

QUERY_TYPE

TEXT

DML, requête, etc. Si la requête a échoué, le type de requête peut être UNKNOWN.

SESSION_ID

NUMBER

Session qui a exécuté l’instruction.

USER_NAME

TEXT

Utilisateur qui a émis la requête.

ROLE_NAME

TEXT

Rôle actif dans la session au moment de la requête.

WAREHOUSE_ID

NUMBER

Identificateur interne / généré par le système pour l’entrepôt utilisé.

WAREHOUSE_NAME

TEXT

Entrepôt sur lequel la requête a été exécutée, le cas échéant.

WAREHOUSE_SIZE

TEXT

Taille de l’entrepôt lorsque cette instruction est exécutée.

WAREHOUSE_TYPE

TEXT

Type de l’entrepôt lorsque cette instruction est exécutée.

CLUSTER_NUMBER

NUMBER

Le cluster (dans un entrepôt multi-cluster) sur lequel cette instruction a été exécutée.

QUERY_TAG

TEXT

Balise de requête définie pour cette instruction via le paramètre de session QUERY_TAG.

EXECUTION_STATUS

TEXT

Statut d’exécution de la requête. Valeurs valides : success, fail, incident.

ERROR_CODE

NUMBER

Code d’erreur, si la requête a renvoyé une erreur

ERROR_MESSAGE

TEXT

Message d’erreur si la requête a renvoyé une erreur

START_TIME

TIMESTAMP_LTZ

Heure de début de l’instruction (dans le fuseau horaire local)

END_TIME

TIMESTAMP_LTZ

Heure de fin de l’instruction (dans le fuseau horaire local).

TOTAL_ELAPSED_TIME

NUMBER

Temps écoulé (en millisecondes).

BYTES_SCANNED

NUMBER

Nombre d’octets analysés par cette instruction.

PERCENTAGE_SCANNED_FROM_CACHE

FLOAT

Pourcentage de données analysées à partir du cache du disque local. La valeur va de 0,0 à 1,0. Multipliez par 100 pour obtenir un vrai pourcentage.

BYTES_WRITTEN

NUMBER

Octets écrits (par exemple, lors du chargement dans une table).

BYTES_WRITTEN_TO_RESULT

NUMBER

Octets écrits dans un objet de résultat. Par exemple, select * from . . . produira un ensemble de résultats sous forme de tableau représentant chaque champ de la sélection. . . En général, l’objet des résultats représente tout ce qui est produit comme résultat de la requête, et BYTES_WRITTEN_TO_RESULT représente la taille du résultat retourné.

BYTES_READ_FROM_RESULT

NUMBER

Octets lus à partir d’un objet de résultat.

ROWS_PRODUCED

NUMBER

Nombre de lignes produites par cette instruction.

ROWS_INSERTED

NUMBER

Nombre de lignes insérées par la requête.

ROWS_UPDATED

NUMBER

Nombre de lignes mises à jour par la requête.

ROWS_DELETED

NUMBER

Nombre de lignes supprimées par la requête.

ROWS_UNLOADED

NUMBER

Nombre de lignes déchargées lors de l’exportation des données.

BYTES_DELETED

NUMBER

Nombre d’octets supprimés par la requête.

PARTITIONS_SCANNED

NUMBER

Nombre de micro-partitions analysées.

PARTITIONS_TOTAL

NUMBER

Nombre total de micro-partitions de toutes les tables incluses dans cette requête.

BYTES_SPILLED_TO_LOCAL_STORAGE

NUMBER

Volume de données déversées sur le disque local (« spill to disk »).

BYTES_SPILLED_TO_REMOTE_STORAGE

NUMBER

Volume de données déversées sur le disque distant (« spill to disk »).

BYTES_SENT_OVER_THE_NETWORK

NUMBER

Quantité de données envoyées sur le réseau.

COMPILATION_TIME

NUMBER

Temps de compilation (en millisecondes)

EXECUTION_TIME

NUMBER

Temps d’exécution (en millisecondes)

QUEUED_PROVISIONING_TIME

NUMBER

Temps (en millisecondes) passé dans la file d’attente de l’entrepôt à attendre que les ressources de calcul de l’entrepôt soient provisionnées en raison de la création, de la reprise ou du redimensionnement de l’entrepôt.

QUEUED_REPAIR_TIME

NUMBER

Temps (en millisecondes) passé dans la file d’attente de l’entrepôt à attendre que les ressources de calcul de l’entrepôt soient réparées.

QUEUED_OVERLOAD_TIME

NUMBER

Temps (en millisecondes) passé dans la file d’attente d’entrepôt en raison de la surcharge de l’entrepôt par la charge de la requête actuelle.

TRANSACTION_BLOCKED_TIME

NUMBER

Temps (en millisecondes) passé à être bloquée par un DML simultané.

OUTBOUND_DATA_TRANSFER_CLOUD

TEXT

Fournisseur Cloud cible pour les instructions qui déchargent des données vers une autre région et/ou un autre Cloud.

OUTBOUND_DATA_TRANSFER_REGION

TEXT

Région cible pour les instructions qui déchargent des données dans une autre région et / ou cloud.

OUTBOUND_DATA_TRANSFER_BYTES

NUMBER

Nombre d’octets transférés dans les instructions qui déchargent des données vers une autre région et/ou un autre Cloud.

INBOUND_DATA_TRANSFER_CLOUD

TEXT

Fournisseur de Cloud source pour les instructions qui chargent des données provenant d’une autre région et/ou d’un Cloud.

INBOUND_DATA_TRANSFER_REGION

TEXT

Région source pour les instructions qui chargent des données d’une autre région et/ou d’un autre Cloud.

INBOUND_DATA_TRANSFER_BYTES

NUMBER

Nombre d’octets transférés lors d’une opération de réplication à partir d’un autre compte. Le compte source peut se trouver dans la même région ou dans une région différente du compte actuel.

LIST_EXTERNAL_FILES_TIME

NUMBER

Temps (en millisecondes) consacré à la liste des fichiers externes.

CREDITS_USED_CLOUD_SERVICES

NUMBER

Nombre de crédits utilisés pour les services Cloud. Cette valeur ne prend pas en compte l’ajustement pour les services Cloud, et peut donc être supérieure aux crédits facturés. Pour déterminer le nombre de crédits réellement facturés, exécutez des requêtes sur la vue METERING_DAILY_HISTORY.

RELEASE_VERSION

TEXT

Version de publication au format major_release.minor_release.patch_release.

EXTERNAL_FUNCTION_TOTAL_INVOCATIONS

NUMBER

Nombre total de fois que cette requête a appelé des services distants. Pour des détails importants, voir les notes d’utilisation.

EXTERNAL_FUNCTION_TOTAL_SENT_ROWS

NUMBER

Nombre total de lignes envoyées par cette requête dans tous les appels à tous les services distants.

EXTERNAL_FUNCTION_TOTAL_RECEIVED_ROWS

NUMBER

Nombre total de lignes que cette requête a reçues de tous les appels vers tous les services distants.

EXTERNAL_FUNCTION_TOTAL_SENT_BYTES

NUMBER

Nombre total d’octets que cette requête a envoyés dans tous les appels à tous les services distants.

EXTERNAL_FUNCTION_TOTAL_RECEIVED_BYTES

NUMBER

Nombre total d’octets que cette requête a reçus de tous les appels vers tous les services distants.

QUERY_LOAD_PERCENT

NUMBER

Pourcentage approximatif de ressources de calcul actives dans l’entrepôt pour cette exécution de requête.

IS_CLIENT_GENERATED_STATEMENT

BOOLEAN

Indique si la requête a été générée par le client.

QUERY_ACCELERATION_BYTES_SCANNED

NUMBER

Nombre d’octets analysés par le service d’accélération des requêtes.

QUERY_ACCELERATION_PARTITIONS_SCANNED

NUMBER

Nombre de partitions analysées par le service d’accélération des requêtes.

QUERY_ACCELERATION_UPPER_LIMIT_SCALE_FACTOR

NUMBER

Facteur d’échelle de limite supérieure dont aurait bénéficié une requête.

TRANSACTION_ID

NUMBER

ID de la transaction qui contient l’instruction ou 0 si l’instruction n’est pas exécutée dans une transaction.

CHILD_QUERIES_WAIT_TIME

NUMBER

Temps (en millisecondes) pour compléter la recherche en cache lors de l’appel d’une fonction mémoïsable.

ROLE_TYPE

VARCHAR

Spécifie APPLICATION, DATABASE_ROLE ou ROLE qui a exécuté la requête.

QUERY_HASH

TEXT

La valeur de hachage calculée sur la base du texte SQL canonisé.

QUERY_HASH_VERSION

NUMBER

La version de la logique utilisée pour calculer QUERY_HASH.

QUERY_PARAMETERIZED_HASH

TEXT

La valeur de hachage calculée à partir de la requête paramétrée.

QUERY_PARAMETERIZED_HASH_VERSION

NUMBER

La version de la logique utilisée pour calculer QUERY_PARAMETERIZED_HASH.

OWNER_ROLE_TYPE

TEXT

Type de rôle qui possède l’objet, soit ROLE ou DATABASE_ROLE. . Si une Snowflake Native App est propriétaire de l’objet, la valeur est APPLICATION. . Snowflake renvoie NULL si vous supprimez l’objet, car un objet supprimé n’a pas de rôle propriétaire.

Notes sur l’utilisation

Général

  • La latence pour la vue peut atteindre 45 minutes.

  • Les valeurs des colonnes EXTERNAL_FUNCTION_TOTAL_INVOCATIONS, EXTERNAL_FUNCTION_TOTAL_SENT_ROWS, EXTERNAL_FUNCTION_TOTAL_RECEIVED_ROWS, EXTERNAL_FUNCTION_TOTAL_SENT_BYTES et EXTERNAL_FUNCTION_TOTAL_RECEIVED_BYTES sont affectées par de nombreux facteurs, notamment :

    • Le nombre de fonctions externes dans l’instruction SQL.

    • Le nombre de lignes par lot envoyées à chaque service distant.

    • Le nombre de tentatives en raison d’erreurs transitoires (par exemple, parce qu’une réponse n’a pas été reçue dans le délai prévu).

Tables hybrides

Les conseils suivants concernent l’exécution de requêtes sur des tables hybrides lors de l’utilisation de vues QUERY_HISTORY.

  • Les requêtes de courte durée qui utilisent exclusivement des tables hybrides ne génèrent plus d’enregistrement dans cette vue ou dans QUERY_HISTORY (fonction de table Information Schema). Pour surveiller ces requêtes, utilisez la fonction AGGREGATE_QUERY_HISTORY. Cette vue vous permet de surveiller plus facilement les charges de travail opérationnelles à haut débit pour détecter les tendances et les problèmes.

  • Les requêtes à courte durée d’exécution qui opèrent exclusivement sur des tables hybrides ne fourniront plus de profil de requête que vous pouvez inspecter dans Snowsight.

  • Les requêtes sur les tables hybrides génèrent un enregistrement dans la vue QUERY_HISTORY et un profil de requête si l’une des conditions suivantes est remplie :

    • Une requête est exécutée sur n’importe quel type de table autre que les tables hybrides. Cette condition garantit qu’il n’y a pas de changement de comportement pour les charges de travail existantes non Unistore.

    • Une requête échoue avec un EXECUTION_STATUS qui est failed_with_incident (voir QUERY_HISTORY). Cette condition garantit que vous pouvez enquêter et signaler la requête spécifique qui a échoué afin d’obtenir de l’aide.

    • Une requête dure plus longtemps qu’environ 500 millisecondes. Cette condition permet d’étudier les problèmes de performance des requêtes lentes.

    • La taille du résultat de la requête est trop importante.

    • Une requête est associée à une transaction Snowflake.

    • Une requête contient une fonction système avec des effets secondaires.

    • Une requête n’est pas l’un des types d’instructions suivants : SELECT, INSERT, DELETE, UPDATE, MERGE.

    • Une requête est exécutée à partir de SnowSQL, Snowsight ou de la console classique. Cette condition garantit que vous pouvez générer manuellement un profil de requête complet afin d’étudier les problèmes de performance pour toute requête spécifique, même si elle n’est pas classée comme étant en cours d’exécution depuis longtemps.

    • Même si une requête ne répond à aucun des critères ci-dessus, les requêtes peuvent également être échantillonnées périodiquement pour générer un enregistrement dans la vue QUERY_HISTORY et un profil de requête pour faciliter votre enquête.