La procédure SQL Server SP_SpaceSuced stockée est utile pour déterminer une taille de la base de données, un espace non alloué, etc. (Pour autant que je sache, il ne signale pas ces informations pour le journal des transactions (et en regardant les propriétés de la base de données dans la gestion SQL Server. Studio ne fournit également pas cette information pour les journaux de transaction).
Bien que je puisse facilement trouver l'espace physique utilisé par un journal de transaction en regardant le fichier .ldf, comment puis-je savoir la quantité de fichier journal utilisé et quelle quantité est inutilisée?
create table #dbsize
(Dbname varchar(30),dbstatus varchar(20),Recovery_Model varchar(10) default ('NA'), file_Size_MB decimal(20,2)default (0),Space_Used_MB decimal(20,2)default (0),Free_Space_MB decimal(20,2) default (0))
go
insert into #dbsize(Dbname,dbstatus,Recovery_Model,file_Size_MB,Space_Used_MB,Free_Space_MB)
exec sp_msforeachdb
'use [?];
select DB_NAME() AS DbName,
CONVERT(varchar(20),DatabasePropertyEx(''?'',''Status'')) ,
CONVERT(varchar(20),DatabasePropertyEx(''?'',''Recovery'')),
sum(size)/128.0 AS File_Size_MB,
sum(CAST(FILEPROPERTY(name, ''SpaceUsed'') AS INT))/128.0 as Space_Used_MB,
SUM( size)/128.0 - sum(CAST(FILEPROPERTY(name,''SpaceUsed'') AS INT))/128.0 AS Free_Space_MB
from sys.database_files where type=0 group by type'
go
select * from #dbsize
Un autre moyen - effectuer dans MS SQL Management Studio la commande suivante:
et sélectionnez Type de fichier = Connexion Vous verrez non seulement la taille du fichier et% de l'espace libre disponible.
Autre moyen - Incendez Perfmon et consultez les compteurs suivants:
Ces valeurs mettent à jour en temps réel.