Sql server 问题诊断
1.exec sp_spaceused 查看数据空空间使用情况
2、
--改成当前库 use DB_Name --创建变量 指定要查看的表 declare @table_id int set @table_id=object_id('TableName') --执行 dbcc showcontig(@table_id)
查看特定表的索引碎片
3、select page_count,avg_page_space_used_in_percent from sys.dm_db_index_physical_stats (DB_ID('Test'),object_id('dbo.tablefortest'),null,null,'sampled') a;
4、理解为什么产生了索引碎片?一页能存储8k左右的数据。
如何设置填充因子的值并没有一个公式或者理念可以准确的设置。使用填充因子虽然可以减少更新或者插入时的分页,但同时因为需要更多的页,所以降低了查询的性能和占用更多的磁盘空间.如何设置这个值进行trade-off需要根据具体的情况来看.
具体情况要根据对于表的读写比例来看,我这里给出我认为比较合适的值:
1.当读写比例大于100:1时,不要设置填充因子,100%填充
2.当写的次数大于读的次数时,设置50%-70%填充
3.当读写比例位于两者之间时80%-90%填充
上面的数据仅仅是我的看法,具体设置的数据还要根据具体情况进行测试才能找到最优.
5、dbcc checkdb