Je dois contrôler régulièrement l’état de bases de données SQL Server chez
un client. Actuellement, j’utilise les différents rapports extraits pour
chaque base de données. Mais, comme le nombre de bases de données est assez
important, cela prend beaucoup de temps. De plus, j’ai remarqué qu’il
existait des tables et des vues Système, qui contiennent des données sur les
bases. Mais je n’ai pas trouvé comment afficher les tailles des data et des
logs de toutes les bases en une seule opération. Pourriez-vous m’indiquer la
procédure à suivre, pour afficher un tel rapport ?
Pour résumer, je souhaiterais afficher et enregistrer sous Excel, par
exemple, un rapport multibase, qui permette de visualiser les différentes
bases, en une seule fois.
Je voudrais ainsi voir sous forme de tableaux ou de graphes, les tailles
des data et des logs, ainsi que les pourcentages d’utilisation, comme cela
peut être réalisé avec DBSize, qui n’est malheureusement pas installé chez
mon client.
Dans l’espoir que vous pourrez m’apporter une aide toujours aussi
précieuse, je vous remercie par avance.
--
Nicole
Consultant - développeur
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
Forum
Nicole a écrit :
Bonjour à tous,
Je dois contrôler régulièrement l’état de bases de données SQL Server chez un client. Actuellement, j’utilise les différents rapports extraits pour chaque base de données. Mais, comme le nombre de bases de données est assez important, cela prend beaucoup de temps. De plus, j’ai remarqué qu’il existait des tables et des vues Système, qui contiennent des données sur les bases. Mais je n’ai pas trouvé comment afficher les tailles des data et des logs de toutes les bases en une seule opération. Pourriez-vous m’indiquer la procédure à suivre, pour afficher un tel rapport ? Pour résumer, je souhaiterais afficher et enregistrer sous Excel, par exemple, un rapport multibase, qui permette de visualiser les différentes bases, en une seule fois. Je voudrais ainsi voir sous forme de tableaux ou de graphes, les tailles des data et des logs, ainsi que les pourcentages d’utilisation, comme cela peut être réalisé avec DBSize, qui n’est malheureusement pas installé chez mon client. Dans l’espoir que vous pourrez m’apporter une aide toujours aussi précieuse, je vous remercie par avance.
Avec un "exec sp_helpdb" sur le serveur et un "exec spaceused", vous auriez peut-être des infos précises ?
ou alors essayez ceci (à adapter)
WITH I AS ( SELECT * FROM sys.dm_db_index_physical_stats(NULL, NULL, NULL, NULL, NULL) ) SELECT s.name, t.name, SUM(page_count) / 1024.0 AS KO FROM sys.tables as t INNER JOIN sys.schemas as s ON t.schema_id = s.schema_id INNER join I ON t.object_id = I.object_id GROUP BY s.name, t.name
ou bien cela (à adapter)
USE [MyaBDD]
DECLARE @nomTable varchar(500) DECLARE @RC int
DECLARE Table_Cursor CURSOR FOR SELECT name FROM dbo.sysobjects WHERE xtype='U'
OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @nomTable WHILE @@FETCH_STATUS = 0 BEGIN EXEC @RC = [dbo].[sp_spaceused] @nomTable, DEFAULT FETCH NEXT FROM Table_Cursor INTO @nomTable END
CLOSE Table_Cursor DEALLOCATE Table_Cursor
Cdt, Houdini
Nicole a écrit :
Bonjour à tous,
Je dois contrôler régulièrement l’état de bases de données SQL Server chez
un client. Actuellement, j’utilise les différents rapports extraits pour
chaque base de données. Mais, comme le nombre de bases de données est assez
important, cela prend beaucoup de temps. De plus, j’ai remarqué qu’il
existait des tables et des vues Système, qui contiennent des données sur les
bases. Mais je n’ai pas trouvé comment afficher les tailles des data et des
logs de toutes les bases en une seule opération. Pourriez-vous m’indiquer la
procédure à suivre, pour afficher un tel rapport ?
Pour résumer, je souhaiterais afficher et enregistrer sous Excel, par
exemple, un rapport multibase, qui permette de visualiser les différentes
bases, en une seule fois.
Je voudrais ainsi voir sous forme de tableaux ou de graphes, les tailles
des data et des logs, ainsi que les pourcentages d’utilisation, comme cela
peut être réalisé avec DBSize, qui n’est malheureusement pas installé chez
mon client.
Dans l’espoir que vous pourrez m’apporter une aide toujours aussi
précieuse, je vous remercie par avance.
Avec un "exec sp_helpdb" sur le serveur et un "exec spaceused", vous
auriez peut-être des infos précises ?
ou alors essayez ceci (à adapter)
WITH
I AS
(
SELECT *
FROM sys.dm_db_index_physical_stats(NULL, NULL, NULL, NULL, NULL)
)
SELECT s.name, t.name, SUM(page_count) / 1024.0 AS KO
FROM sys.tables as t
INNER JOIN sys.schemas as s
ON t.schema_id = s.schema_id
INNER join I
ON t.object_id = I.object_id
GROUP BY s.name, t.name
ou bien cela (à adapter)
USE [MyaBDD]
DECLARE @nomTable varchar(500)
DECLARE @RC int
DECLARE Table_Cursor CURSOR FOR
SELECT name FROM dbo.sysobjects WHERE xtype='U'
OPEN Table_Cursor
FETCH NEXT FROM Table_Cursor INTO @nomTable
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC @RC = [dbo].[sp_spaceused] @nomTable, DEFAULT
FETCH NEXT FROM Table_Cursor INTO @nomTable
END
Je dois contrôler régulièrement l’état de bases de données SQL Server chez un client. Actuellement, j’utilise les différents rapports extraits pour chaque base de données. Mais, comme le nombre de bases de données est assez important, cela prend beaucoup de temps. De plus, j’ai remarqué qu’il existait des tables et des vues Système, qui contiennent des données sur les bases. Mais je n’ai pas trouvé comment afficher les tailles des data et des logs de toutes les bases en une seule opération. Pourriez-vous m’indiquer la procédure à suivre, pour afficher un tel rapport ? Pour résumer, je souhaiterais afficher et enregistrer sous Excel, par exemple, un rapport multibase, qui permette de visualiser les différentes bases, en une seule fois. Je voudrais ainsi voir sous forme de tableaux ou de graphes, les tailles des data et des logs, ainsi que les pourcentages d’utilisation, comme cela peut être réalisé avec DBSize, qui n’est malheureusement pas installé chez mon client. Dans l’espoir que vous pourrez m’apporter une aide toujours aussi précieuse, je vous remercie par avance.
Avec un "exec sp_helpdb" sur le serveur et un "exec spaceused", vous auriez peut-être des infos précises ?
ou alors essayez ceci (à adapter)
WITH I AS ( SELECT * FROM sys.dm_db_index_physical_stats(NULL, NULL, NULL, NULL, NULL) ) SELECT s.name, t.name, SUM(page_count) / 1024.0 AS KO FROM sys.tables as t INNER JOIN sys.schemas as s ON t.schema_id = s.schema_id INNER join I ON t.object_id = I.object_id GROUP BY s.name, t.name
ou bien cela (à adapter)
USE [MyaBDD]
DECLARE @nomTable varchar(500) DECLARE @RC int
DECLARE Table_Cursor CURSOR FOR SELECT name FROM dbo.sysobjects WHERE xtype='U'
OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @nomTable WHILE @@FETCH_STATUS = 0 BEGIN EXEC @RC = [dbo].[sp_spaceused] @nomTable, DEFAULT FETCH NEXT FROM Table_Cursor INTO @nomTable END