加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 08:38:27 所属栏目:MsSql教程 来源:网络整理
导读:我创建了一个2个文件组的数据库:1个主要和1个索引. 主文件组包括1个数据文件(* .mdf):存储所有表 索引文件组包括1个索引文件(* .ndf):存储所有索引 大多数索引是非聚簇索引 使用数据库很短时间后,数据文件为2GB,但索引文件为12 GB.我不知道在我的数据库中
我创建了一个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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读