Назад | Перейти на главную страницу

Как я могу найти место, используемое журналом транзакций SQL?

Хранимая процедура SQL Server sp_spaceused полезна для определения размера базы данных, нераспределенного пространства и т. Д. Однако (насколько я могу судить) она не сообщает эту информацию для журнала транзакций (и просмотра свойств базы данных в SQL Server Management). Studio также не предоставляет эту информацию для журналов транзакций).

Хотя я могу легко найти физическое пространство, используемое журналом транзакций, просмотрев файл .ldf, как я могу узнать, какая часть файла журнала используется, а какая не используется?

Нашел ответ сразу после того, как отправил вопрос :)

Похоже, что dbcc sqlperf (logspace) и dbcc loginfo - мой друг.

http://www.mssqltips.com/tip.asp?tip=1225

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 

Другой способ - выполнить в MS SQL Management Studio следующую команду:

  • Щелкните правой кнопкой мыши базу данных
  • Задачи
  • Сокращаться
  • Файлы

и выберите File Type = Log, вы увидите не только размер файла и% доступного свободного места.

Для более подходящего подхода с графическим интерфейсом SQL Management Studio может создать отчет о дисковом пространстве (среди прочего) для базы данных (щелкните правой кнопкой мыши узел базы данных в проводнике объектов, выберите отчеты).

В этом отчете также будет отображаться информация о последних изменениях размеров файлов.

Другой способ - запустить perfmon и проверить следующие счетчики:

  • SQLServer: размер файлов журнала баз данных (КБ)
  • SQLServer: используемые файлы журнала баз данных (КБ)
  • SQLServer: процент использования журнала

Эти значения обновляются в реальном времени.