|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Membre du Club
![]() Inscription : février 2005 Messages : 168 ![]() |
Bonjour à tous.
Je me retrouve confonté à une drôle de situation. J'ai une base dont la taille grossit sans cesse ( logique me direz vous !) . Or quand je la procédure stocké qui permet de vérifier la place je m'aperçois qu'il y a énormément de place inutilisée. Mes questions : - Est ce dû à de la fragmentation ? - Comment puis je récupérer cette taille énorme qui représente plus que la moitié de la taille de la base ? Merci beaucoup. ApprentiOracle Citation:
|
|
|
|
00
|
|
|
#2 | |
|
Membre du Club
![]() Inscription : février 2005 Messages : 168 ![]() |
A priori,
En vérifiant la place des tables, l'essentiel est pris par une seule table. Citation:
|
|
|
|
00
|
|
|
#3 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 950 ![]() |
Cela ne sert à rien de récupérer l'espace. C'est au contraire très contre performant. Lisez l'article que j'ai écrit à ce sujet :
http://www.google.fr/url?sa=t&source...TjHpP4a5LUnq8g Néanmoins vous pouvez utiliser les commandes SHRINKFILE ou SHRINDATABASE. A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : février 2005 Messages : 168 ![]() |
Bonjour SQLpro et merci de votre réponse.
Malheureusement, je n'accéde pas à votre lien. edition : j'y accéde maintenant merci. |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : février 2005 Messages : 168 ![]() |
Merci pour votre article ,que j'ai parcouru.
Je vais quand même tenter de réduire la table car il ne devrait plus y avoir d'insertion dans cette table. Elle sera uniquement consultée. Qu'en pensez vous ? Merci |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 950 ![]() |
Pourquoi pas !
Et si elle n'est réellement plus mise à jour, passez là en READ ONLY. Vous n'aurez plus de verrous. A + A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : février 2005 Messages : 168 ![]() |
Oui, c'est une bonne idée !
Merci encore. |
|
|
00
|
|
|
#8 |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 770 ![]() |
Cela ne semble pas être le cas ici mais pensez tout de même à vérifier l'espace réellement utilisé par vos tables.
Il m'est arrivé, sur une base en SQL 2000 de trouver des tables dont l'espace réservé (par tables) était beaucoup plus important que l'espace utilisé. J'avais trouvé des "explications" ici. D'après ce que j'en ai compris, l'absence d'index cluster sur les tables provoquait ces perturbations. L'ajout d'index cluster sur les tables en question m'a permis de réduire drastiquement la taille de la base. La base est alors passé de 15 à 3Go (sans avoir repris de volume depuis). |
|
|
00
|
|
|
#9 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Oui car avec les tables HEAP, les suppressions de données provoquent des "trous" et des "forwarded records" qui peuvent engendrer une certaine fragmentation et une allocation d'espace inutile.
Le seul moyen de réordonner les pages de façon optimale est de créer un index cluster sur la table. ++ |
|
00
|
|
|
#10 |
|
Membre du Club
![]() Inscription : février 2005 Messages : 168 ![]() |
Intéressant !
Jinroh77, vous n'avez créé qu'un index cluster et cela vous a permis sans rien faire de diminuer l'espace unused de la table ? Je vais lire votre lien de ce pas ! Merci à vous mikedavem,Jinroh77 et Sqlpro pour vos idées et conseils ! |
|
|
00
|
|
|
#11 | |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 770 ![]() |
Citation:
J'étais sur une base CRM avec des colonne standard donc j'ai pu scripter cela (recherche des tables concernées, vérification de l'existante de la colonne me permettant de créer l'index et création de l'index) pour l'ensemble de ma base. |
|
|
|
00
|
|
|
#12 |
|
Membre du Club
![]() Inscription : février 2005 Messages : 168 ![]() |
Bonjour à tous ,
J'ai suivi les conseils de Jinroh77 et j'ai créé un index cluster sur ma table doc_word. Seulement l'espace UNUSED n' a pas diminué. J'ai tenté également de créer une table clone de ma table en faisant un "select * into doc_word1 from doc_word. Et j'obtiens à peu de chose près le même d'espace unused sur ma table doc_word1 que sur ma table doc_word. J'ai donc l'impression que cet espace est en fait bien utilisé. D'ailleurs en faisant un DBCC UPDATEUSAGE(BASE), et en refaisant exec sp_spaceused 'doc_word', j'obtiens bien un petit unused. LA différence avec l'unused du début est passé dans la colonne DATA. cldt |
|
|
00
|
|
|
#13 |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 770 ![]() |
Est-ce que vus aviez essayé le DBCC UPDATEUSAGE avant de créer l'index clustered ?
Il y avait effectivement peut-être une lacune de ce côté. |
|
|
00
|
|
|
#14 |
|
Membre du Club
![]() Inscription : février 2005 Messages : 168 ![]() |
|
|
|
00
|
|
|
#15 |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 770 ![]() |
Dommage, on n'y avait pas pensé, mais ça aurait été interessant de le faire avant, créer l'index et refaire.
Bon en tout cas, le unused semble avoir trouvé sa place. L'espace used est-il beaucoup plus important que avant toutes ces modifications ? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com