我创建了一个2个文件组的数据库:1个主要和1个索引.
>主文件组包括1个数据文件(* .mdf):存储所有表
>索引文件组包括1个索引文件(* .ndf):存储所有索引
大多数索引是非聚簇索引
使用数据库很短时间后,数据文件为2GB,但索引文件为12 GB.我不知道在我的数据库中发生了什么问题.
我有一些疑问:
>如何减小索引文件的大小?
>如何知道索引文件中存储的内容?
>如何跟踪索引文件的所有影响?
>如何限制索引文件的大小增长?
解决方法
如何减小索引文件的大小?
删除一些不必要的索引或减少现有索引的数量.请记住,聚簇索引列是所有非聚类索引中包含的“隐藏”列.
如果a,b,c,d上的索引和a,c上的索引,则可以考虑删除第二个索引,因为第一个覆盖第二个索引.
您也可以通过查看sys.dm_db_index_usage_stats来获得find potential unused indexes
如何知道什么存储在索引文件中?
它将存储您定义的任何存储!以下查询将帮助您了解哪些索引使用的空间最大,什么原因(在行数据中,lob数据)
SELECT convert(char(8),object_name(i.object_id)) AS table_name,i.name AS index_name,i.index_id,i.type_desc as index_type,partition_id,partition_number AS pnum,rows,allocation_unit_id AS au_id,a.type_desc as page_type_desc,total_pages AS pages FROM sys.indexes i JOIN sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id JOIN sys.allocation_units a ON p.partition_id = a.container_id order by pages desc