(1)文件的分配方式及文件空间检查方法
--------------------sp_spaceused------------------------------
-- 不加任何参数,sp_spaceused返回当前数据库的空间使用情况
sp_spaceused
-- 使用表名作为参数,sp_spaceused返回指定表的空间使用情况
sp_spaceused "Person.Address"
go
(2)数据文件分配
--------------------dbcc page------------------------------
--语法:DBCC Page(<db_id>, <file_id>, <page_id>, <format_id>)
-- db_id的获得
-- 返回所有数据库的ID信息
sp_helpdb
-- 返回当前数据库的ID
select DB_ID()
-- 返回指定名称数据库的ID
select DB_ID('AdventureWorks')
-- file_id的获得
sp_helpfile
-- 返回指定名称表的ID
select file_id('AdventureWorks_Data')
-- 查看某个page的信息
-- 先打开dbcc开关
dbcc traceon(3604)
-- 查看指定页面的信息
-- Metadata+SLOT+Memory dump
dbcc page(11,1,100,1) with TableResults
-- Metadata+Memory dump
dbcc page(11,1,100,2) with TableResults
-- Metadata+IAM
dbcc page(11,1,100,3) with TableResults
(3)数据文件空间使用计算方法
-- 按照区得到数据库文件大小
dbcc showfilestats
-- 得到当前数据库所有表的数据页的情况
SELECT o.name ,
SUM (p.reserved_page_count) as reserved_page_count,
SUM (p.used_page_count) as used_page_count,
SUM (
CASE
WHEN (p.index_id < 2) THEN (p.in_row_data_page_count + p.lob_used_page_count + p.row_overflow_used_page_count)
ELSE p.lob_used_page_count + p.row_overflow_used_page_count
END
) as DataPages,
SUM (
CASE
WHEN (p.index_id < 2) THEN row_count
ELSE 0
END
) as rowCounts
FROM sys.dm_db_partition_stats p
inner join sys.objects o on p.object_id = o.object_id
group by o.name
(4)日志文件
-- 查看日志使用情况
dbcc sqlperf(logspace)