概述
資料庫巡檢是資料庫管理員保證資料庫健康的必要維護項,全面的巡檢可以及早的發現問題、解決問題、預防問題。今天主要分享一下sqlserver的一些巡檢內容,僅供參考。
一、資料庫空間及狀態檢查
1、所有資料庫的大小
use dbname
go
exec sp_spaceused
go
2、所有資料庫的狀態
select name,
user_access_desc, --用戶訪問模式
state_desc, --資料庫狀態
recovery_model_desc, --恢復模式
page_verify_option_desc, --頁檢測選項
log_reuse_wait_desc --日誌重用等待
from sys.databases ;
3、某個資料庫的大小
按頁面計算空間,有性能影響,基本準確,有時不準確
use dbname
go
exec sp_spaceused
go
4、對某個資料庫,顯示目錄視圖中的頁數和行數錯誤並更正
--可以@updateusage = 'true',會運行dbcc updateusage
exec sp_spaceused @updateusage = 'true'
--顯示目錄視圖中的頁數和行數錯誤並更正
DBCC UPDATEUSAGE('test')
二、數據文件檢查
1、查看某個資料庫中的所有文件及大小
sp_helpfile
2、查看所有文件所在資料庫、路徑、狀態、大小
select db_name(database_id) dbname,
type_desc, --數據還是日誌
name, --文件的邏輯名稱
physical_name, --文件的物理路徑
state_desc, --文件狀態
size * 8.0/1024 as '文件大小(MB)'
from sys.master_files
3、按區extent計算空間,沒有性能影響,基本準確
這裡把TotalExtents*64/1024,單位為MB,同時也適用於計算tempdb的文件大小,但不包括日誌文件
dbcc showfilestats
三、日誌文件檢查
1、查看日誌文件所在資料庫、路徑、狀態、大小
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'
2、所有資料庫的日誌的大小,空間使用率
dbcc sqlperf(logspace)
四、數據文件、日誌文件的I/O統計信息
1、數據和日誌文件的I/O統計信息,包含文件大小
select database_id,
file_id,
file_handle, --windows文件句柄
sample_ms, --自從計算機啟動以來的毫秒數
num_of_reads,
num_of_bytes_read,
io_stall_read_ms, --等待讀取的時間
num_of_writes,
num_of_bytes_written,
io_stall_write_ms,
io_stall, --用戶等待文件完成I/O操作所用的總時間
size_on_disk_bytes --文件在磁碟上所占用的實際字節數
from sys.dm_io_virtual_file_stats(db_id('test'), --資料庫id
1 ) --數據文件id
union all
select database_id,
file_id,
file_handle, --windows文件句柄
sample_ms, --自從計算機啟動以來的毫秒數
num_of_reads,
num_of_bytes_read,
io_stall_read_ms, --等待讀取的時間
num_of_writes,
num_of_bytes_written,
io_stall_write_ms,
io_stall, --用戶等待文件完成I/O操作所用的總時間
size_on_disk_bytes --文件在磁碟上所占用的實際字節數
from sys.dm_io_virtual_file_stats( db_id('test'), --資料庫id
2 ) --日誌文件id
篇幅有限,所以就分成兩部分做介紹了~
覺得有用的朋友多幫忙轉發哦!
後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~