Y a-t-il moyen de connaitre la taille des statistiques ?
En SQL Server 7 et 2000, je sais que les statistiques sont stockées dans
sysindexes.statblob qui est de type image et qui représente un pointeur mais
je
ne vois pas comment je peux connaitre la taille que représente les
statistiques
d'une table.
Par avance, merci pour votre réponse.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
bruno reiter [MVP]
datalength()
br
"Houdini" wrote in message news:
Y a-t-il moyen de connaitre la taille des statistiques ? En SQL Server 7 et 2000, je sais que les statistiques sont stockées dans sysindexes.statblob qui est de type image et qui représente un pointeur
mais
je ne vois pas comment je peux connaitre la taille que représente les statistiques d'une table. Par avance, merci pour votre réponse.
datalength()
br
"Houdini" <Houdini@discussions.microsoft.com> wrote in message
news:66059C2E-3976-4F21-BB9B-C2B2FB990F14@microsoft.com...
Y a-t-il moyen de connaitre la taille des statistiques ?
En SQL Server 7 et 2000, je sais que les statistiques sont stockées dans
sysindexes.statblob qui est de type image et qui représente un pointeur
mais
je
ne vois pas comment je peux connaitre la taille que représente les
statistiques
d'une table.
Par avance, merci pour votre réponse.
Y a-t-il moyen de connaitre la taille des statistiques ? En SQL Server 7 et 2000, je sais que les statistiques sont stockées dans sysindexes.statblob qui est de type image et qui représente un pointeur
mais
je ne vois pas comment je peux connaitre la taille que représente les statistiques d'une table. Par avance, merci pour votre réponse.
Med Bouchenafa
Je suis curieux de savoir quel usage tu penses faire de cette information. As tu investigué DBCC SHOW_STATISTICS ?
-- Bien cordialement Med Bouchenafa
"Houdini" a écrit dans le message de news:
Y a-t-il moyen de connaitre la taille des statistiques ? En SQL Server 7 et 2000, je sais que les statistiques sont stockées dans sysindexes.statblob qui est de type image et qui représente un pointeur mais je ne vois pas comment je peux connaitre la taille que représente les statistiques d'une table. Par avance, merci pour votre réponse.
Je suis curieux de savoir quel usage tu penses faire de cette information.
As tu investigué DBCC SHOW_STATISTICS ?
--
Bien cordialement
Med Bouchenafa
"Houdini" <Houdini@discussions.microsoft.com> a écrit dans le message de
news: 66059C2E-3976-4F21-BB9B-C2B2FB990F14@microsoft.com...
Y a-t-il moyen de connaitre la taille des statistiques ?
En SQL Server 7 et 2000, je sais que les statistiques sont stockées dans
sysindexes.statblob qui est de type image et qui représente un pointeur
mais
je
ne vois pas comment je peux connaitre la taille que représente les
statistiques
d'une table.
Par avance, merci pour votre réponse.
Je suis curieux de savoir quel usage tu penses faire de cette information. As tu investigué DBCC SHOW_STATISTICS ?
-- Bien cordialement Med Bouchenafa
"Houdini" a écrit dans le message de news:
Y a-t-il moyen de connaitre la taille des statistiques ? En SQL Server 7 et 2000, je sais que les statistiques sont stockées dans sysindexes.statblob qui est de type image et qui représente un pointeur mais je ne vois pas comment je peux connaitre la taille que représente les statistiques d'une table. Par avance, merci pour votre réponse.
Houdini
Merci Bruno -> en faisant SELECT DATALENGTH(statblob) FROM sysindexes where name='nom_stats', j'obtiens une valeur en octets. Je pense que cela correspond à la taille des stats. C'est ca ?
Merci Med -> explication sur ma question : on a laissé l'option "create statistiques" sur un serveur infocentre de PROD et on a beaucoup de statistiques qui sont créées (_WA_Sys...). On a des bases assez volumineuses (plusieurs Go chacune) et on voulait connaitre la taille des statistiques créées afin de voir si ca représentait une taille importante ou pas (la place libre fond comme neige au soleil avec l'évolution de l'infocentre). J'ai lu que les statistiques ne sont pas stockées dans les pages de données mais à un autre endroit précisé par le pointeur. Ou sont-elles stockées ? dans quel groupe de fichiers ? (sachant qu'on a un fichier primary, data, index) Pour etre plus général, on se pose la question sur "utiliser ou non l'option create statistiques" ? Y a-t-il des contraintes (places disque, temps de création des stats, ...) ? Quel est ton avis sur le sujet ?
Par avance, merci pour vos réponses.
Je trouve cet espace d'échange très sympa et les réponses très réactives. A+
Houdini
Merci Bruno -> en faisant SELECT DATALENGTH(statblob) FROM sysindexes where
name='nom_stats', j'obtiens une valeur en octets. Je pense que cela
correspond à la taille des stats. C'est ca ?
Merci Med -> explication sur ma question : on a laissé l'option "create
statistiques" sur un serveur infocentre de PROD et on a beaucoup de
statistiques qui sont créées (_WA_Sys...). On a des bases assez volumineuses
(plusieurs Go chacune) et on voulait connaitre la taille des statistiques
créées afin de voir si ca représentait une taille importante ou pas (la place
libre fond comme neige au soleil avec l'évolution de l'infocentre).
J'ai lu que les statistiques ne sont pas stockées dans les pages de données
mais à un autre endroit précisé par le pointeur. Ou sont-elles stockées ?
dans quel groupe de fichiers ? (sachant qu'on a un fichier primary, data,
index)
Pour etre plus général, on se pose la question sur "utiliser ou non l'option
create statistiques" ? Y a-t-il des contraintes (places disque, temps de
création des stats, ...) ? Quel est ton avis sur le sujet ?
Par avance, merci pour vos réponses.
Je trouve cet espace d'échange très sympa et les réponses très réactives.
A+
Merci Bruno -> en faisant SELECT DATALENGTH(statblob) FROM sysindexes where name='nom_stats', j'obtiens une valeur en octets. Je pense que cela correspond à la taille des stats. C'est ca ?
Merci Med -> explication sur ma question : on a laissé l'option "create statistiques" sur un serveur infocentre de PROD et on a beaucoup de statistiques qui sont créées (_WA_Sys...). On a des bases assez volumineuses (plusieurs Go chacune) et on voulait connaitre la taille des statistiques créées afin de voir si ca représentait une taille importante ou pas (la place libre fond comme neige au soleil avec l'évolution de l'infocentre). J'ai lu que les statistiques ne sont pas stockées dans les pages de données mais à un autre endroit précisé par le pointeur. Ou sont-elles stockées ? dans quel groupe de fichiers ? (sachant qu'on a un fichier primary, data, index) Pour etre plus général, on se pose la question sur "utiliser ou non l'option create statistiques" ? Y a-t-il des contraintes (places disque, temps de création des stats, ...) ? Quel est ton avis sur le sujet ?
Par avance, merci pour vos réponses.
Je trouve cet espace d'échange très sympa et les réponses très réactives. A+
Houdini
Med Bouchenafa
Il y a sp_spaceused sysindexes qui peut te donner rapidement l'information sur la taille occupée. Concernant ta question sur quel groupe sont stockées les stats, elles le sont par défaut sur le groupe PRIMARY. Il est possible de les deplacer sur un groupe special avec l'option TEXTIMAGE_ON (voir Aide En Ligne). Je ne pense pas cependant que cette option puisse s'appliquer à une table système comme sysindexes. Concernant ta question sur le fait de mettre ou pas l'option "auto create statistics" sur une base de données. Comme toujours cela dépend. Mais sur une base de production OLTP, il vaut mieux eviter et programmer un job pour la mise à jour des statistiques par UPDATE STATISTICS dans une fenêtre de temps qui le permettrait. Concernant l'espace pris par ces stats, je dois avouer que je n'ai jamais investiqué ce point mais dorénavant je ferais plus attention. Merci
Bien cordialement Med Bouchenafa
"Houdini" a écrit :
Merci Bruno -> en faisant SELECT DATALENGTH(statblob) FROM sysindexes where name='nom_stats', j'obtiens une valeur en octets. Je pense que cela correspond à la taille des stats. C'est ca ?
Merci Med -> explication sur ma question : on a laissé l'option "create statistiques" sur un serveur infocentre de PROD et on a beaucoup de statistiques qui sont créées (_WA_Sys...). On a des bases assez volumineuses (plusieurs Go chacune) et on voulait connaitre la taille des statistiques créées afin de voir si ca représentait une taille importante ou pas (la place libre fond comme neige au soleil avec l'évolution de l'infocentre). J'ai lu que les statistiques ne sont pas stockées dans les pages de données mais à un autre endroit précisé par le pointeur. Ou sont-elles stockées ? dans quel groupe de fichiers ? (sachant qu'on a un fichier primary, data, index) Pour etre plus général, on se pose la question sur "utiliser ou non l'option create statistiques" ? Y a-t-il des contraintes (places disque, temps de création des stats, ...) ? Quel est ton avis sur le sujet ?
Par avance, merci pour vos réponses.
Je trouve cet espace d'échange très sympa et les réponses très réactives. A+
Houdini
Il y a sp_spaceused sysindexes qui peut te donner rapidement l'information
sur la taille occupée.
Concernant ta question sur quel groupe sont stockées les stats, elles le
sont par défaut sur le groupe PRIMARY. Il est possible de les deplacer sur un
groupe special avec l'option TEXTIMAGE_ON (voir Aide En Ligne).
Je ne pense pas cependant que cette option puisse s'appliquer à une table
système comme sysindexes.
Concernant ta question sur le fait de mettre ou pas l'option "auto create
statistics" sur une base de données. Comme toujours cela dépend.
Mais sur une base de production OLTP, il vaut mieux eviter et programmer un
job pour la mise à jour des statistiques par UPDATE STATISTICS dans une
fenêtre de temps qui le permettrait.
Concernant l'espace pris par ces stats, je dois avouer que je n'ai jamais
investiqué ce point mais dorénavant je ferais plus attention. Merci
Bien cordialement
Med Bouchenafa
"Houdini" a écrit :
Merci Bruno -> en faisant SELECT DATALENGTH(statblob) FROM sysindexes where
name='nom_stats', j'obtiens une valeur en octets. Je pense que cela
correspond à la taille des stats. C'est ca ?
Merci Med -> explication sur ma question : on a laissé l'option "create
statistiques" sur un serveur infocentre de PROD et on a beaucoup de
statistiques qui sont créées (_WA_Sys...). On a des bases assez volumineuses
(plusieurs Go chacune) et on voulait connaitre la taille des statistiques
créées afin de voir si ca représentait une taille importante ou pas (la place
libre fond comme neige au soleil avec l'évolution de l'infocentre).
J'ai lu que les statistiques ne sont pas stockées dans les pages de données
mais à un autre endroit précisé par le pointeur. Ou sont-elles stockées ?
dans quel groupe de fichiers ? (sachant qu'on a un fichier primary, data,
index)
Pour etre plus général, on se pose la question sur "utiliser ou non l'option
create statistiques" ? Y a-t-il des contraintes (places disque, temps de
création des stats, ...) ? Quel est ton avis sur le sujet ?
Par avance, merci pour vos réponses.
Je trouve cet espace d'échange très sympa et les réponses très réactives.
A+
Il y a sp_spaceused sysindexes qui peut te donner rapidement l'information sur la taille occupée. Concernant ta question sur quel groupe sont stockées les stats, elles le sont par défaut sur le groupe PRIMARY. Il est possible de les deplacer sur un groupe special avec l'option TEXTIMAGE_ON (voir Aide En Ligne). Je ne pense pas cependant que cette option puisse s'appliquer à une table système comme sysindexes. Concernant ta question sur le fait de mettre ou pas l'option "auto create statistics" sur une base de données. Comme toujours cela dépend. Mais sur une base de production OLTP, il vaut mieux eviter et programmer un job pour la mise à jour des statistiques par UPDATE STATISTICS dans une fenêtre de temps qui le permettrait. Concernant l'espace pris par ces stats, je dois avouer que je n'ai jamais investiqué ce point mais dorénavant je ferais plus attention. Merci
Bien cordialement Med Bouchenafa
"Houdini" a écrit :
Merci Bruno -> en faisant SELECT DATALENGTH(statblob) FROM sysindexes where name='nom_stats', j'obtiens une valeur en octets. Je pense que cela correspond à la taille des stats. C'est ca ?
Merci Med -> explication sur ma question : on a laissé l'option "create statistiques" sur un serveur infocentre de PROD et on a beaucoup de statistiques qui sont créées (_WA_Sys...). On a des bases assez volumineuses (plusieurs Go chacune) et on voulait connaitre la taille des statistiques créées afin de voir si ca représentait une taille importante ou pas (la place libre fond comme neige au soleil avec l'évolution de l'infocentre). J'ai lu que les statistiques ne sont pas stockées dans les pages de données mais à un autre endroit précisé par le pointeur. Ou sont-elles stockées ? dans quel groupe de fichiers ? (sachant qu'on a un fichier primary, data, index) Pour etre plus général, on se pose la question sur "utiliser ou non l'option create statistiques" ? Y a-t-il des contraintes (places disque, temps de création des stats, ...) ? Quel est ton avis sur le sujet ?
Par avance, merci pour vos réponses.
Je trouve cet espace d'échange très sympa et les réponses très réactives. A+
Houdini
bruno reiter [MVP]
concernant l'emplacement, la colonne étant de type image, comme (en général) pour les autres colonnes de ce type, les infos sont stockées dans des pages BLOBs, voir le livre de K.Delaney "inside SQL2000" qui explique parfaitement ceci.
br
"Houdini" wrote in message news:
Merci Bruno -> en faisant SELECT DATALENGTH(statblob) FROM sysindexes
where
name='nom_stats', j'obtiens une valeur en octets. Je pense que cela correspond à la taille des stats. C'est ca ?
Merci Med -> explication sur ma question : on a laissé l'option "create statistiques" sur un serveur infocentre de PROD et on a beaucoup de statistiques qui sont créées (_WA_Sys...). On a des bases assez
volumineuses
(plusieurs Go chacune) et on voulait connaitre la taille des statistiques créées afin de voir si ca représentait une taille importante ou pas (la
place
libre fond comme neige au soleil avec l'évolution de l'infocentre). J'ai lu que les statistiques ne sont pas stockées dans les pages de
données
mais à un autre endroit précisé par le pointeur. Ou sont-elles stockées ? dans quel groupe de fichiers ? (sachant qu'on a un fichier primary, data, index) Pour etre plus général, on se pose la question sur "utiliser ou non
l'option
create statistiques" ? Y a-t-il des contraintes (places disque, temps de création des stats, ...) ? Quel est ton avis sur le sujet ?
Par avance, merci pour vos réponses.
Je trouve cet espace d'échange très sympa et les réponses très réactives. A+
Houdini
concernant l'emplacement, la colonne étant de type image, comme (en général)
pour les autres colonnes de ce type, les infos sont stockées dans des pages
BLOBs, voir le livre de K.Delaney "inside SQL2000" qui explique parfaitement
ceci.
br
"Houdini" <Houdini@discussions.microsoft.com> wrote in message
news:0A7B7098-757E-4D62-8A84-0B057A5EBBE7@microsoft.com...
Merci Bruno -> en faisant SELECT DATALENGTH(statblob) FROM sysindexes
where
name='nom_stats', j'obtiens une valeur en octets. Je pense que cela
correspond à la taille des stats. C'est ca ?
Merci Med -> explication sur ma question : on a laissé l'option "create
statistiques" sur un serveur infocentre de PROD et on a beaucoup de
statistiques qui sont créées (_WA_Sys...). On a des bases assez
volumineuses
(plusieurs Go chacune) et on voulait connaitre la taille des statistiques
créées afin de voir si ca représentait une taille importante ou pas (la
place
libre fond comme neige au soleil avec l'évolution de l'infocentre).
J'ai lu que les statistiques ne sont pas stockées dans les pages de
données
mais à un autre endroit précisé par le pointeur. Ou sont-elles stockées ?
dans quel groupe de fichiers ? (sachant qu'on a un fichier primary, data,
index)
Pour etre plus général, on se pose la question sur "utiliser ou non
l'option
create statistiques" ? Y a-t-il des contraintes (places disque, temps de
création des stats, ...) ? Quel est ton avis sur le sujet ?
Par avance, merci pour vos réponses.
Je trouve cet espace d'échange très sympa et les réponses très réactives.
A+
concernant l'emplacement, la colonne étant de type image, comme (en général) pour les autres colonnes de ce type, les infos sont stockées dans des pages BLOBs, voir le livre de K.Delaney "inside SQL2000" qui explique parfaitement ceci.
br
"Houdini" wrote in message news:
Merci Bruno -> en faisant SELECT DATALENGTH(statblob) FROM sysindexes
where
name='nom_stats', j'obtiens une valeur en octets. Je pense que cela correspond à la taille des stats. C'est ca ?
Merci Med -> explication sur ma question : on a laissé l'option "create statistiques" sur un serveur infocentre de PROD et on a beaucoup de statistiques qui sont créées (_WA_Sys...). On a des bases assez
volumineuses
(plusieurs Go chacune) et on voulait connaitre la taille des statistiques créées afin de voir si ca représentait une taille importante ou pas (la
place
libre fond comme neige au soleil avec l'évolution de l'infocentre). J'ai lu que les statistiques ne sont pas stockées dans les pages de
données
mais à un autre endroit précisé par le pointeur. Ou sont-elles stockées ? dans quel groupe de fichiers ? (sachant qu'on a un fichier primary, data, index) Pour etre plus général, on se pose la question sur "utiliser ou non
l'option
create statistiques" ? Y a-t-il des contraintes (places disque, temps de création des stats, ...) ? Quel est ton avis sur le sujet ?
Par avance, merci pour vos réponses.
Je trouve cet espace d'échange très sympa et les réponses très réactives. A+
Houdini
Houdini
Je configurerais donc bien mes serveurs SQL Server de la facon suivante : pour les serveurs OLTP, je décocherais les options "auto create stats" et "auto update stats" et je programmerais un update stats soit toutes les nuits soit une fois le week-end (suivant l'importance des MAJ) et pour les serveurs décisionnels (serveurs infocentre mis à jour toutes les nuits et chargés en requetes BO la journée), je décocherais l'option "auto update stats" mais en m'assurant qu'un update stats est bien fait après chaque alimentation (ou une supp/création des index) et je laisserais l'option "auto create stats" afin de permettre la création de nouvelles statistiques sur des colonnes utilisées dans une jointure/where si elles ne sont pas indexées afin d'optimiser les requetes. Est-ce un bon choix à votre avis ? Encore merci pour éclaircissements
Houdini
Je configurerais donc bien mes serveurs SQL Server de la facon suivante :
pour les serveurs OLTP, je décocherais les options "auto create stats" et
"auto update stats" et je programmerais un update stats soit toutes les nuits
soit une fois le week-end (suivant l'importance des MAJ)
et pour les serveurs décisionnels (serveurs infocentre mis à jour toutes les
nuits et chargés en requetes BO la journée), je décocherais l'option "auto
update stats" mais en m'assurant qu'un update stats est bien fait après
chaque alimentation (ou une supp/création des index) et je laisserais
l'option "auto create stats" afin de permettre la création de nouvelles
statistiques sur des colonnes utilisées dans une jointure/where si elles ne
sont pas indexées afin d'optimiser les requetes.
Est-ce un bon choix à votre avis ?
Encore merci pour éclaircissements
Je configurerais donc bien mes serveurs SQL Server de la facon suivante : pour les serveurs OLTP, je décocherais les options "auto create stats" et "auto update stats" et je programmerais un update stats soit toutes les nuits soit une fois le week-end (suivant l'importance des MAJ) et pour les serveurs décisionnels (serveurs infocentre mis à jour toutes les nuits et chargés en requetes BO la journée), je décocherais l'option "auto update stats" mais en m'assurant qu'un update stats est bien fait après chaque alimentation (ou une supp/création des index) et je laisserais l'option "auto create stats" afin de permettre la création de nouvelles statistiques sur des colonnes utilisées dans une jointure/where si elles ne sont pas indexées afin d'optimiser les requetes. Est-ce un bon choix à votre avis ? Encore merci pour éclaircissements
Houdini
lionelp
Bonjour,
Il est possible de faire: sp_spaceused sysindexes ou select sum(reserved)*8 from sysindexes where id=2 (ce qui revient au même)
L'histogramme (entête et échantillonage) doit faire dans les 32Ko maximum. Il faut savoir que l'échantillonage conservera un maximum de 200 steps (voir ouput du showcontig).
Concernant les _Wa_Sys_, îl est conseillé de suprimer ces statistiques après : un changement de version une installation de service pack ou de hotfix
Cordialement, LionelP
"Houdini" a écrit :
Y a-t-il moyen de connaitre la taille des statistiques ? En SQL Server 7 et 2000, je sais que les statistiques sont stockées dans sysindexes.statblob qui est de type image et qui représente un pointeur mais je ne vois pas comment je peux connaitre la taille que représente les statistiques d'une table. Par avance, merci pour votre réponse.
Bonjour,
Il est possible de faire:
sp_spaceused sysindexes
ou
select sum(reserved)*8 from sysindexes where id=2 (ce qui revient au même)
L'histogramme (entête et échantillonage) doit faire dans les 32Ko maximum.
Il faut savoir que l'échantillonage conservera un maximum de 200 steps (voir
ouput du showcontig).
Concernant les _Wa_Sys_, îl est conseillé de suprimer ces statistiques après :
un changement de version
une installation de service pack ou de hotfix
Cordialement,
LionelP
"Houdini" a écrit :
Y a-t-il moyen de connaitre la taille des statistiques ?
En SQL Server 7 et 2000, je sais que les statistiques sont stockées dans
sysindexes.statblob qui est de type image et qui représente un pointeur mais
je
ne vois pas comment je peux connaitre la taille que représente les
statistiques
d'une table.
Par avance, merci pour votre réponse.
Il est possible de faire: sp_spaceused sysindexes ou select sum(reserved)*8 from sysindexes where id=2 (ce qui revient au même)
L'histogramme (entête et échantillonage) doit faire dans les 32Ko maximum. Il faut savoir que l'échantillonage conservera un maximum de 200 steps (voir ouput du showcontig).
Concernant les _Wa_Sys_, îl est conseillé de suprimer ces statistiques après : un changement de version une installation de service pack ou de hotfix
Cordialement, LionelP
"Houdini" a écrit :
Y a-t-il moyen de connaitre la taille des statistiques ? En SQL Server 7 et 2000, je sais que les statistiques sont stockées dans sysindexes.statblob qui est de type image et qui représente un pointeur mais je ne vois pas comment je peux connaitre la taille que représente les statistiques d'une table. Par avance, merci pour votre réponse.