Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
ANALYZE
Met à jour les statistiques de table pour une utilisation par le planificateur de requête.
Privilèges requis
Les privilèges suivants sont requis pour ANALYZE :
Superuser
Utilisateurs ayant le ANALYZE privilège
Propriétaire de la relation
Propriétaire de la base de données avec qui la table est partagée
Syntaxe
ANALYZE [ VERBOSE ] [ [ table_name [ ( column_name [, ...] ) ] ] [ PREDICATE COLUMNS | ALL COLUMNS ]
Paramètres
- VERBOSE
-
Clause qui renvoie des messages d'information sur la progression de l'ANALYZEopération. Cette option est utile lorsque vous ne spécifiez pas une table.
- table_name
-
Vous pouvez analyser des tables spécifiques, y compris les tables temporaires. Vous pouvez qualifier la table avec son nom de schéma. Vous pouvez le cas échéant spécifier un nom_table pour analyser une seule table. Vous ne pouvez pas spécifier plusieurs nom_tables avec une seule instruction ANALYZE nom_table. Si vous ne spécifiez pas un table_name, toutes les tables de la base de données actuellement connectée sont analysées, y compris les tables persistantes du catalogue système. Amazon Redshift ignore l'analyse d'un tableau si le pourcentage de lignes modifiées depuis le dernier ANALYZE est inférieur au seuil d'analyse. Pour de plus amples informations, veuillez consulter Seuil d’analyse.
Vous n'avez pas besoin d'analyser les tables (STLet STV tables) du système Amazon Redshift.
- column_name
-
Si vous spécifiez un nom_table, vous pouvez également spécifier une ou plusieurs colonnes de la table (au forme de liste de colonnes séparées entre parenthèses). Si une liste de colonnes est spécifiée, seules les colonnes de la liste sont analysées.
- PREDICATE COLUMNS | ALL COLUMNS
-
Clauses indiquant si seules les colonnes de prédicat ANALYZE doivent être incluses. Spécifiez PREDICATE COLUMNS pour analyser uniquement les colonnes qui ont été utilisées comme prédicats dans les requêtes précédentes ou qui sont susceptibles d'être utilisées comme prédicats. Spécifiez ALL COLUMNS pour analyser toutes les colonnes. La valeur par défaut est ALLCOLUMNS.
Une colonne est incluse dans l’ensemble de colonnes de prédicat si l’une des conditions suivantes est vraie :
-
La colonne a été utilisée dans une requête dans le cadre d’un filtre, d’une condition de jointure ou d’une clause group by.
-
La colonne est une clé de distribution.
-
La colonne fait partie d’une clé de tri.
Si aucune colonne n'est marquée comme colonne de prédicat, par exemple parce que la table n'a pas encore été interrogée, toutes les colonnes sont analysées même lorsqu'PREDICATECOLUMNSelles sont spécifiées. Lorsque cela se produit, Amazon Redshift peut répondre par un message tel que «
Aucune colonne de prédicat trouvée pour »
. Pour plus d’informations sur les colonnes de prédicat, consultez Analyse des tables.table-name
«. Analyse de toutes les colonnes -
Notes d’utilisation
Amazon Redshift s'exécute automatiquement ANALYZE sur les tables que vous créez à l'aide des commandes suivantes :
-
CREATETABLEEN TANT QUE
-
CREATETEMPTABLEEN TANT QUE
-
SELECT INTO
Vous ne pouvez pas analyser une table externe.
Il n'est pas nécessaire d'exécuter la ANALYZE commande sur ces tables lors de leur création initiale. Si vous les modifiez, vous devez les analyser de la même manière que les autres tables.
Seuil d’analyse
Pour réduire le temps de traitement et améliorer les performances globales du système, Amazon Redshift ignore ANALYZE un tableau si le pourcentage de lignes modifiées depuis la dernière exécution de ANALYZE commande est inférieur au seuil d'analyse spécifié par le paramètre. analyze_threshold_percent Par défaut, analyze_threshold_percent
est 10. Pour modifier analyze_threshold_percent
de la séance en cours, exécutez la commande SET. L’exemple suivant passe de analyze_threshold_percent
à 20 %.
set analyze_threshold_percent to 20;
Pour analyser des tables lorsque seul un petit nombre de lignes a changé, définissez analyze_threshold_percent
sur un petit nombre arbitraire. Par exemple, si vous définissez analyze_threshold_percent
sur 0,01, une table avec 100 000 000 lignes n’est pas ignorée si au moins 10 000 lignes ont été modifiées.
set analyze_threshold_percent to 0.01;
Si une table ANALYZE est ignorée parce qu'elle n'atteint pas le seuil d'analyse, Amazon Redshift renvoie le message suivant.
ANALYZE SKIP
Pour analyser toutes les tables même si aucune ligne n’a été modifiée, définissez analyze_threshold_percent
sur 0.
Pour consulter les résultats des ANALYZE opérations, interrogez la table STL_ANALYZE système.
Pour plus d’informations sur l’analyse des tables, consultez Analyse des tables.
Exemples
Analysez toutes les tables de la TICKIT base de données et renvoyez les informations de progression.
analyze verbose;
Analysez uniquement le LISTING tableau.
analyze listing;
Analysez les VENUENAME colonnes VENUEID et du VENUE tableau.
analyze venue(venueid, venuename);
Analysez uniquement les colonnes de prédicat de la VENUE table.
analyze venue predicate columns;