加入收藏 | 设为首页 | 会员中心 | 我要投稿 上饶站长网 (https://www.0793zz.com.cn/)- 数据库平台、视觉智能、智能搜索、决策智能、迁移!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – HEAP表的有效使用方案是什么?

发布时间:2021-01-12 16:36:46 所属栏目:MsSql教程 来源:网络整理
导读:我目前正在对遗留系统进行一些数据导入,并发现该系统不使用单个聚簇索引.一个快速的谷歌搜索向我介绍了HEAP表的概念,现在我很好奇在HEAP表应该优先于集群表的哪些使用场景? 据我所知,HEAP表仅对审计表有用和/或插入的发生频率远高于选择.它会节省磁盘空间和

我目前正在对遗留系统进行一些数据导入,并发现该系统不使用单个聚簇索引.一个快速的谷歌搜索向我介绍了HEAP表的概念,现在我很好奇在HEAP表应该优先于集群表的哪些使用场景?

据我所知,HEAP表仅对审计表有用和/或插入的发生频率远高于选择.它会节省磁盘空间和磁盘I / O,因为没有要维护的聚簇索引,并且由于非常罕见的读取,额外的碎片不会成为问题.

解决方法

唯一有效的用途是

>导入/导出/ ETL过程中使用的登台表.
>使用SELECT * INTO对表进行临时,临时和短期备份.

临时表通常非常扁平并且在使用之前/之后被截断.

请注意,与数据大小相比,聚簇索引通常很小:数据是索引结构的最低级别.

堆表也有问题.至少这些:

>无法进行碎片整理以减少磁盘空间.这很重要,因为使用的数据页将分散在整个MDF中,例如,因为数据没有来自聚簇索引的“顺序”
>非聚集索引现在指向行,而不是聚集索引条目.这会影响性能:Need for reaching data through clustered index with a non-clustered index

另见

> http://www.sqlbadpractices.com/heap-tables/(不良做法)
> http://msdn.microsoft.com/en-us/library/hh213609.aspx(MS的推荐)
> http://sqlskills.com/BLOGS/PAUL/post/A-SQL-Server-DBA-myth-a-day-(2930)-fixing-heap-fragmentation.aspx(Paul Randal的DBA神话)

(编辑:上饶站长网)

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

    推荐文章
      热点阅读