sql server log文件

确定 SQL Server 实例中具有大量 VDF 的数据库

sql 复制代码
SELECT [name], COUNT(l.database_id) AS 'vlf_count' 
FROM sys.databases AS s
CROSS APPLY sys.dm_db_log_info(s.database_id) AS l
GROUP BY [name]
HAVING COUNT(l.database_id) > 100;

在收缩日志文件之前确定事务日志中最后一个 VLF 的位置

在对事务日志运行 SHRINK FILE 之前,可以使用以下查询来确定最后一个活动 VLF 的位置,以确定事务日志是否可以收缩。

sql 复制代码
 

;WITH cte_vlf AS (
SELECT ROW_NUMBER() OVER(ORDER BY vlf_begin_offset) AS vlfid, DB_NAME(database_id) AS [Database Name], vlf_sequence_number, vlf_active, vlf_begin_offset, vlf_size_mb
    FROM sys.dm_db_log_info(DEFAULT)),
cte_vlf_cnt AS (SELECT [Database Name], COUNT(vlf_sequence_number) AS vlf_count,
    (SELECT COUNT(vlf_sequence_number) FROM cte_vlf WHERE vlf_active = 0) AS vlf_count_inactive,
    (SELECT COUNT(vlf_sequence_number) FROM cte_vlf WHERE vlf_active = 1) AS vlf_count_active,
    (SELECT MIN(vlfid) FROM cte_vlf WHERE vlf_active = 1) AS ordinal_min_vlf_active,
    (SELECT MIN(vlf_sequence_number) FROM cte_vlf WHERE vlf_active = 1) AS min_vlf_active,
    (SELECT MAX(vlfid) FROM cte_vlf WHERE vlf_active = 1) AS ordinal_max_vlf_active,
    (SELECT MAX(vlf_sequence_number) FROM cte_vlf WHERE vlf_active = 1) AS max_vlf_active
    FROM cte_vlf
    GROUP BY [Database Name])
SELECT [Database Name], vlf_count, min_vlf_active, ordinal_min_vlf_active, max_vlf_active, ordinal_max_vlf_active,
((ordinal_min_vlf_active-1)*100.00/vlf_count) AS free_log_pct_before_active_log,
((ordinal_max_vlf_active-(ordinal_min_vlf_active-1))*100.00/vlf_count) AS active_log_pct,
((vlf_count-ordinal_max_vlf_active)*100.00/vlf_count) AS free_log_pct_after_active_log
FROM cte_vlf_cnt;
GO

查看log 大小

sql 复制代码
select mf.name,
mf.type_desc,
mf.state_desc,
mf.size*8.0/1024 as 'SIZE_MB',
max_size/128 as 'MAXSIZE_MB' 
from sys.master_files mf
where   mf.type_desc='LOG' ;

参考:

sys.dm_db_log_info (Transact-SQL) - SQL Server | Microsoft Learn

相关推荐
gmaajt16 分钟前
mysql如何备份与恢复函数定义_mysql mysqldump导出存储对象
jvm·数据库·python
阿丰资源34 分钟前
基于SpringBoot的在线视频教育平台的设计与实现(附源码+数据库+文档,一键运行)
数据库·spring boot·后端
qq_4609784036 分钟前
Python爬虫怎么模拟手机端抓取_设置手机型号User-Agent字符串
jvm·数据库·python
m0_617881425 小时前
如何高效进行堆叠分类器的超参数调优:解决 GridSearchCV 卡顿问题
jvm·数据库·python
编程自留地5 小时前
项目sql语句
前端·数据库·sql
m0_588758485 小时前
如何高效批量删除SQL数据_使用脚本分段删除降低压力
jvm·数据库·python
abc123456sdggfd5 小时前
Layui表单验证失败时如何修改默认弹出的Tips气泡颜色
jvm·数据库·python
Bert.Cai5 小时前
MySQL TRIM()函数详解
数据库·mysql
2301_800976935 小时前
数据库的基本操作后续
java·数据库·sql
SECS/GEM5 小时前
SECS/GEM如何实现越南现场自定义消息
java·服务器·数据库