SQL Server 2005:索引大于存储的数据

前端之家收集整理的这篇文章主要介绍了SQL Server 2005:索引大于存储的数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了一个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

猜你在找的MsSQL相关文章