Schémas :

ACCOUNT_USAGE

Vue QUERY_ATTRIBUTION_HISTORY

Cette vue Account Usage peut être utilisée pour déterminer le coût de calcul d’une requête donnée exécutée sur les entrepôts de votre compte au cours des 365 derniers jours (1 an).

Pour plus d’informations, voir Coût des attributs pour les requêtes.

Colonnes

Nom de la colonne

Type de données

Description

query_id

VARCHAR

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

parent_query_id

VARCHAR

L’ID de requête de la requête parente ou NULL si la requête n’a pas de parent.

root_query_id

VARCHAR

L’ID de requête de la requête la plus élevée de la chaîne ou NULL si la requête n’a pas de parent.

warehouse_id

NUMBER

Identificateur interne/généré par le système pour l’entrepôt sur lequel la requête a été exécutée.

warehouse_name

VARCHAR

Nom de l’entrepôt sur lequel la requête a été exécutée.

query_hash

VARCHAR

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

query_parameterized_hash

VARCHAR

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

query_tag

VARCHAR

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

user_name

VARCHAR

Utilisateur qui a émis la requête.

start_time

TIMESTAMP_LTZ

Heure à laquelle l’exécution de la requête a commencé (dans le fuseau horaire local).

end_time

TIMESTAMP_LTZ

Heure à laquelle l’exécution de la requête s’est terminée (dans le fuseau horaire local).

credits_attributed_compute

NUMBER

Nombre de crédits attribués à cette requête. Inclut uniquement l’utilisation du crédit pour l’exécution de la requête et n’inclut pas le temps d’inactivité de l’entrepôt.

credits_used_query_acceleration

NUMBER

Nombre de crédits consommés par Query Acceleration Service pour accélérer la requête. NULL si la requête n’est pas accélérée. . . Le coût total d’une requête accélérée est la somme de cette colonne et de la colonne credits_attributed_compute.

Notes sur l’utilisation

  • La latence pour cette vue peut aller jusqu’à six heures.

  • Cette vue affiche les résultats pour tout rôle disposant du rôle de base de données USAGE_VIEWER ou GOVERNANCE_VIEWER.

  • La valeur de la colonne credits_attributed_compute contient l’utilisation du crédit d’entrepôt pour l’exécution de la requête, y compris tout redimensionnement et/ou mise à l’échelle automatique des entrepôts à plusieurs clusters. Ce coût est attribué en fonction de la moyenne pondérée de la consommation des ressources.

    La valeur n’inclut aucune utilisation du crédit pour le temps d’inactivité de l’entrepôt. Le temps d’inactivité est une période pendant laquelle aucune requête ne s’exécute dans l’entrepôt et ne peut être mesurée au niveau de l’entrepôt.

    La valeur n’inclut aucune autre utilisation du crédit encourue suite à l’exécution de la requête. Par exemple, les éléments suivants ne sont pas inclus dans le coût de la requête :

    • Coûts du transfert des données

    • Coûts de stockage

    • Coûts des services Cloud

    • Coûts des fonctionnalités sans serveur

    • Coûts des jetons traités par les services AI

  • Pour les requêtes exécutées simultanément, le coût de l’entrepôt est attribué aux requêtes individuelles en fonction de la moyenne pondérée de leur consommation de ressources au cours d’un intervalle de temps donné.

  • Les requêtes à courte durée d’exécution (< = ~100 ms) sont actuellement trop courtes pour l’attribution des coûts par requête et ne sont pas incluses dans la vue.

  • Les données de toutes les colonnes sont disponibles à partir de la mi-août 2024. Certaines données antérieures à cette date peuvent être disponibles dans la vue, mais peuvent être incomplètes.

Exemples

Coûts des requêtes pour l’utilisateur actuel

Pour déterminer les coûts des requêtes exécutées par l’utilisateur actuel pour le mois en cours, exécutez l’instruction suivante :

SELECT user_name, SUM(credits_attributed_compute) AS credits
  FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ATTRIBUTION_HISTORY
  WHERE user_name = CURRENT_USER()
    AND start_time >= DATE_TRUNC('MONTH', CURRENT_DATE)
    AND start_time < CURRENT_DATE
  GROUP BY user_name;
Copy

Pour attribuer le coût de l’entrepôt à l’utilisateur actuel, voir Attribution des coûts d’entrepôt basée sur l’utilisateur.

Coûts des requêtes pour les procédures stockées

Pour les procédures stockées qui émettent plusieurs requêtes hiérarchiques, vous pouvez calculer les coûts de requête attribués à la procédure en utilisant l’ID de requête racine pour la procédure.

  1. Pour trouver l’ID de requête racine pour une procédure stockée, utilisez Vue ACCESS_HISTORY. Par exemple, pour trouver l’ID de requête racine pour une procédure stockée, définissez query_id et exécutez les instructions suivantes :

    SET query_id = '<query_id>';
    
    SELECT query_id,
           parent_query_id,
           root_query_id,
           direct_objects_accessed
      FROM SNOWFLAKE.ACCOUNT_USAGE.ACCESS_HISTORY
      WHERE query_id = $query_id;
    
    Copy

    Pour plus d’informations, voir Exemple : requêtes ancêtres à l’aide de procédures stockées.

  2. Pour additionner les coûts de la requête pour l’ensemble de la procédure, remplacez <id_requête_racine> et exécutez les instructions suivantes :

    SET query_id = '<root_query_id>';
    
    SELECT SUM(credits_attributed_compute) AS total_attributed_credits
      FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ATTRIBUTION_HISTORY
      WHERE (root_query_id = $query_id OR query_id = $query_id);
    
    Copy

Exemples supplémentaires

Pour plus d’exemples, voir Attribution des coûts par balise, utilisateur et requête.