Optimisation d'une table

Le
orange
Bonjour à vous tous,

J'ai besoin d'optimiser une table, car elle devient de plus en plus
grosse (17,5 G) alors que le nombre de données dans la table est
relativement stable. Il y a un peu plus d'un an, elle faisait 8G. Dans
cette table de trois colonnes (ID int, NUMEROPAS int, VALEUR decimal
(10,2)), il devrait y avoir une moyenne d'environ 25 millions de
lignes dedans. Nous conservons 7 jours roulants de données dans cette
table. Après 7 jours nous les supprimons de la table. Donc, les
transactions se résument à ceci. Au cours de l'avant-midi, plusieurs
insertions, tout au long de la journée, de nombreuses sélections et en
soirée, lorsque la bd n'est plus occupée, suppression des données
dépassées 7 jours. Jamais de mises à jour. L'index fait 13.5 G. Il me
semble que quelque chose ne tourne pas rond. Il y a un index PK
(Cluster) sur ID, NUMEROPAS, les deux colonnes croisant et un index
IDX (unique, non-cluster) sur ID, NUMEROPAS, les deux colonnes
croisant.

Merci d'avance pour votre aide.

Charles
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
bruno reiter
Le #19796011
il semble qu'une table partitionnée serait indiquée dans ce cas (edition
enterprise).
Une partition par jour.

BR

"orange" news:
Bonjour à vous tous,

J'ai besoin d'optimiser une table, car elle devient de plus en plus
grosse (17,5 G) alors que le nombre de données dans la table est
relativement stable. Il y a un peu plus d'un an, elle faisait 8G. Dans
cette table de trois colonnes (ID int, NUMEROPAS int, VALEUR decimal
(10,2)), il devrait y avoir une moyenne d'environ 25 millions de
lignes dedans. Nous conservons 7 jours roulants de données dans cette
table. Après 7 jours nous les supprimons de la table. Donc, les
transactions se résument à ceci. Au cours de l'avant-midi, plusieurs
insertions, tout au long de la journée, de nombreuses sélections et en
soirée, lorsque la bd n'est plus occupée, suppression des données
dépassées 7 jours. Jamais de mises à jour. L'index fait 13.5 G. Il me
semble que quelque chose ne tourne pas rond. Il y a un index PK
(Cluster) sur ID, NUMEROPAS, les deux colonnes croisant et un index
IDX (unique, non-cluster) sur ID, NUMEROPAS, les deux colonnes
croisant.

Merci d'avance pour votre aide.

Charles
bruno reiter
Le #19796001
autre chose, pourquoi un index sur ID, NUMEROPAS si le cluster est sur ID,
NUMEROPAS? ça fait double emploi.
et est-ce que les index sont reconstruits régulièrement?

BR

"orange" news:
Bonjour à vous tous,

J'ai besoin d'optimiser une table, car elle devient de plus en plus
grosse (17,5 G) alors que le nombre de données dans la table est
relativement stable. Il y a un peu plus d'un an, elle faisait 8G. Dans
cette table de trois colonnes (ID int, NUMEROPAS int, VALEUR decimal
(10,2)), il devrait y avoir une moyenne d'environ 25 millions de
lignes dedans. Nous conservons 7 jours roulants de données dans cette
table. Après 7 jours nous les supprimons de la table. Donc, les
transactions se résument à ceci. Au cours de l'avant-midi, plusieurs
insertions, tout au long de la journée, de nombreuses sélections et en
soirée, lorsque la bd n'est plus occupée, suppression des données
dépassées 7 jours. Jamais de mises à jour. L'index fait 13.5 G. Il me
semble que quelque chose ne tourne pas rond. Il y a un index PK
(Cluster) sur ID, NUMEROPAS, les deux colonnes croisant et un index
IDX (unique, non-cluster) sur ID, NUMEROPAS, les deux colonnes
croisant.

Merci d'avance pour votre aide.

Charles
orange
Le #19801261
Bonjour M. Reiter,

Nous n'avons pas de DBA spécifiquement pour notre base de données. Une
autre personne et moi essayons du mieux que nous pouvons à maintenir
et optimiser la base de données. On apprend graduellement. De ce que
je comprends de votre dernier message, l'index sur ID, NUMEROPAS n'est
qu'une redondance, elle ne sert à rien en soit puisqu'il n'y en a un
identique sur le cluster. Je devrais donc pouvoir le supprimer. Nous
avons 2 autres tables avec la même structure, mais contenant des
données à pas de temps différents. Celle qui pose problème contient
des données journalières. Une deuxième table contient des données
hebdomadaires et une troisième contient des données mensuelles. J'ai
remarqué qu'elles n'ont qu'un cluster (ID, NUMEROPAS) sur chacune
d'elle.

Pour ce qui est des tâches d'optimisations, il y a une job qui
optimise la base de données toutes les fins de semaine. Compactage et
réindexation. Une sauvegarde est faite tous les soirs.

Ce matin, l'index fait 18G alors que la table fait 17G.


Charles
Fred BROUARD
Le #19825341
Mettre deux index (la clef primaire genère un index) sur les mêmes
colonnes ne sert à rien, ci ce n'est qu'au doubler artificiellement le
volume de vos données.

A +

orange a écrit :
Bonjour à vous tous,

J'ai besoin d'optimiser une table, car elle devient de plus en plus
grosse (17,5 G) alors que le nombre de données dans la table est
relativement stable. Il y a un peu plus d'un an, elle faisait 8G. Dans
cette table de trois colonnes (ID int, NUMEROPAS int, VALEUR decimal
(10,2)), il devrait y avoir une moyenne d'environ 25 millions de
lignes dedans. Nous conservons 7 jours roulants de données dans cette
table. Après 7 jours nous les supprimons de la table. Donc, les
transactions se résument à ceci. Au cours de l'avant-midi, plusieurs
insertions, tout au long de la journée, de nombreuses sélections et en
soirée, lorsque la bd n'est plus occupée, suppression des données
dépassées 7 jours. Jamais de mises à jour. L'index fait 13.5 G. Il me
semble que quelque chose ne tourne pas rond. Il y a un index PK
(Cluster) sur ID, NUMEROPAS, les deux colonnes croisant et un index
IDX (unique, non-cluster) sur ID, NUMEROPAS, les deux colonnes
croisant.

Merci d'avance pour votre aide.

Charles




--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
Enseignant aux Arts & Métiers PACA et à L'ISEN Toulon - Var Technologies
*********************** http://www.sqlspot.com *************************
laarif
Le #21101191
orange a écrit le 20/07/2009 à 18h55 :
Bonjour à vous tous,

J'ai besoin d'optimiser une table, car elle devient de plus en plus
grosse (17,5 G) alors que le nombre de données dans la table est
relativement stable. Il y a un peu plus d'un an, elle faisait 8G. Dans
cette table de trois colonnes (ID int, NUMEROPAS int, VALEUR decimal
(10,2)), il devrait y avoir une moyenne d'environ 25 millions de
lignes dedans. Nous conservons 7 jours roulants de données dans cette
table. Après 7 jours nous les supprimons de la table. Donc, les
transactions se résument à ceci. Au cours de l'avant-midi, plusieurs
insertions, tout au long de la journée, de nombreuses sélections et en
soirée, lorsque la bd n'est plus occupée, suppression des données
dépassées 7 jours. Jamais de mises à jour. L'index fait 13.5 G. Il me
semble que quelque chose ne tourne pas rond. Il y a un index PK
(Cluster) sur ID, NUMEROPAS, les deux colonnes croisant et un index
IDX (unique, non-cluster) sur ID, NUMEROPAS, les deux colonnes
croisant.

Merci d'avance pour votre aide.

Charles


essayer de reindexer vos tables avant de compacter
Publicité
Poster une réponse
Anonyme