SQL Server DBA日常巡检(上)

1、数据库

代码如下:

--所有数据库的大小
exec sp_helpdb   
--所有数据库的状态
select name,
      user_access_desc,           --用户访问模式
      state_desc,                 --数据库状态
      recovery_model_desc,        --恢复模式
      page_verify_option_desc,    --页检测选项
      log_reuse_wait_desc         --日志重用等待
from sys.databases

--某个数据库的大小:按页面计算空间,有性能影响,基本准确,有时不准确
use test
go
exec sp_spaceused  
go
--可以@updateusage = 'true',会运行dbcc updateusage
exec sp_spaceused  @updateusage = 'true'

--对某个数据库,显示目录视图中的页数和行数错误并更正
DBCC UPDATEUSAGE('test')

2、数据文件

代码如下:

--查看某个数据库中的所有文件及大小
sp_helpfile   

--查看所有文件所在数据库、路径、状态、大小
select db_name(database_id) dbname,
      type_desc,      --数据还是日志
      name,           --文件的逻辑名称
      physical_name,  --文件的物理路径
      state_desc,     --文件状态
      size * 8.0/1024 as '文件大小(MB)'        
from sys.master_files   

--按区extent计算空间,没有性能影响,基本准确,把TotalExtents*64/1024,单位为MB
--同时也适用于计算tempdb的文件大小,但不包括日志文件
dbcc showfilestats

3、日志文件

代码如下:

--查看日志文件所在数据库、路径、状态、大小
select db_name(database_id) dbname,
      type_desc,      --数据还是日志
      name,           --文件的逻辑名称
      physical_name,  --文件的物理路径
      state_desc,     --文件状态
      size * 8.0/1024 as '文件大小(MB)'        
from sys.master_files
where type_desc = 'LOG'   

--所有数据库的日志的大小,空间使用率
dbcc sqlperf(logspace) 

上一篇:SQL Server DBA日常巡检(下)


下一篇:SQL经典面试题