À l'aide de RECUEILLIR des STATISTIQUES de Teradata
Dans Teradata je peux utiliser une instruction comme ...
collect statistics on my_table column(col1)
Cela permettra de recueillir des statistiques sur la table et de les stocker dans DBC vues comme ColumnStats, IndexStats et MultiColumnStats. Je suis aussi sous l'impression que l'optimiseur (moteur d'analyse) trouverez les statistiques lorsqu'elles sont disponibles et de les utiliser au lieu de l'estimation de la table de cardinalité/valeur de l'indice de compte pour prendre de meilleures décisions sur la façon d'exécuter une requête.
Tout cela sonne bien, mais j'ai quelques questions.
- qu'il ya des inconvénients à l'utilisation de
collect stats
? - Quand est-il approprié ou inapproprié d'utiliser de recueillir des statistiques dans vos scripts SQL?
- Quel est l'avantage de performance afin de recueillir des statistiques sur un terrain qui est déjà indexé?
- Combien de temps sont les statistiques enregistrées (tableau, la volatilité des tables)?
- D'autres commentaires concernant
collect statistics
serait appréciée.
Désolé, mais l'OMI à cette question n'est pas un bon "fit" pour. La collecte de statistiques est très important, peut-être la partie essentielle de Teradata et ligne il existe de nombreux articles qui traitent le sujet. Aussi, vous avez trop beaucoup de différentes parties de cette question clairement. Une des balles peut être utile de se poser à nouveau. Le vote pour la fermer comme "non constructif".
Hey Bob pensez-vous qu'il serait mieux pour la migration de la question pour les Administrateurs de Base de données de sites plutôt que de voter "non constructif"? J'ai trouvé des articles, mais pas vraiment répondre à mes question(s)
Hey Bob pensez-vous qu'il serait mieux pour la migration de la question pour les Administrateurs de Base de données de sites plutôt que de voter "non constructif"? J'ai trouvé des articles, mais pas vraiment répondre à mes question(s)
OriginalL'auteur ChrisCamp | 2013-05-21
Vous devez vous connecter pour publier un commentaire.
1>qu'il ya des inconvénients à l'utilisation de recueillir des stats?
Oui, collecter des statistiques de lui-même est beaucoup de temps, il en fait de localiser des données à partir d'AMPLIS et d'insérer les stats dans les tables du dictionnaire.
Supposons que vous avez une définition de table comme:
ct t1(int x1,int y1, z1 int);
La table contient des millions de lignes et z1 est jamais utilisée dans le ST/conditions de Jointure, alors il ne vaut pas la peine de recueillir des statistiques sur le z1.
2>Quand est-il approprié ou inapproprié d'utiliser de recueillir des statistiques dans vos scripts SQL?
Déjà répondu ci-dessus. Si une colonne est destiné à être utilisé comme ST/condition de Jointure .j'.e dans lequel ou sur la clause, vous devez collecter des statistiques, sinon pas besoin.
3>Quel est l'avantage de performance afin de recueillir des statistiques sur un terrain qui est déjà indexé?
ct t1(int x1,int y1) index primaire(x1);
pour une simple requête comme sel * from t1 où x1 = 5;
démontrera l'utilité de recueillir des statistiques.
Comment?
l'optimiseur peut estimer correctement le nombre de lignes de cette requête sélectionne et si t1 va être joint à dire t2, un efficace jointure sera choisi par l'optimiseur.
4>Combien de temps sont les statistiques enregistrées (tableau, la volatilité des tables)?
Table : de façon permanente.
volatils tables: jusqu'à ce que la session expire.
5>Tous les autres commentaires concernant la collecte des statistiques serait appréciée.
Rien n'a été discuté à plusieurs colonnes stats.
Dire, la requête est comme:
sel * from t1 join t2 sur y1=y2 et x1=2;
puis collecte multi-colonne stats sur (x1,y1) serait très utile dans le processus d'optimisation.
Aussi, si la table de la démographie a été modifié (augmentation du nombre de lignes), vous devez envisager de re-collecte les statistiques
OriginalL'auteur user2407394