Salut
Je doit remplir une table [données agrégées] à partir d’une autre table [données brutes].
La tables [données brutes] contient le chiffre d’affaire de la société la quantité de ventes et le budget (quantité et montant) par mois.
Dans la table [donnée agrégées], je dois garder les même données et rajouter les données cumulés par année jusqu’au mois courant, ainsi que ces même données pour les années N-1 et N-2 en rajoutant les totaux pour ces deux année.
Au début, pour remplir la table [données agrégées], j’utilisais une requête toute con :
mais en faisant cela au bout d’une heure (je faisais autre chose pendant ce temps, rassurez-vous) j’ai une erreur me disant que la table tempdb était pleine à craquer et que l’exécution de la requête s’est arrêté à cause de cela
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 insert into [données agrégées] ( ) select from [données brutes] ( )
j’ai donc créé des tables intermédiaires (une pour l’année courante, une pour l’année N-1 et une autre pour l’année N-2) dans une procédure stockée que je remplie et qui me servent à remplir la table principale. Ça a marché au début mais maintenant j’ai encore ce message d’erreur (mais au bout de 20 minutes cette fois) :
Si vous connaissez un moyen pour optimiser les ressource dans mon cas, aidez moi, ça fait un moment que je rame ...Msg 9002, Niveau 17, État 4, Procédure majInfSec, Ligne 233
Le journal des transactions de la base de données 'tempdb' est plein. Pour savoir pourquoi il est impossible de réutiliser de l'espace dans le journal, consultez la colonne log_reuse_wait_desc dans sys.databases.
Msg 9002, Niveau 17, État 4, Procédure majInfSec, Ligne 233
Le journal des transactions de la base de données 'tempdb' est plein. Pour savoir pourquoi il est impossible de réutiliser de l'espace dans le journal, consultez la colonne log_reuse_wait_desc dans sys.databases.
La requêteMe donne le résultat suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part select log_reuse_wait_desc from sys.databases
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9log_reuse_wait_desc ------------------------------ NOTHING NOTHING NOTHING NOTHING NOTHING ACTIVE_TRANSACTION NOTHING
PS:à la ligne 233 dema requête il y a juste un point virgul (représentant la fin de la création de la table temporaire pour l'année N-2 et le début du remplissage de la table temporaire à l'année courante
PS2:j'utilise le même principe pour une autre table et ça fonctionne (mais je doit avouer qu'il y a moitier moins de données^^)
Partager