优化SQL Server 索引的小技巧有哪些

技术优化SQL Server 索引的小技巧有哪些优化SQL Server 索引的小技巧有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在

优化SQL Server索引有哪些技巧?很多新手对此不是很清楚。为了帮助大家解决这个问题,下面小编就为大家详细讲解一下。需要的人可以从中学习,希望你能有所收获。

在本文中,我将解释如何使用SQL Server工具来优化数据库索引的使用,本文还涉及到索引的一般知识。关于索引的常识

索引是影响数据库性能的最大因素。由于这个问题的复杂性,我只能简单说一下,但目前有几本好书供大家参考。这里我只讨论两种SQL Server索引,即聚集索引和非聚集索引。在研究构建什么类型的索引时,应该考虑数据类型和保存数据的列。同样,您还必须考虑数据库可能使用的查询类型和最常用的查询类型。  

索引的类型

如果该列包含高度相关的数据,并且经常按顺序访问,则最好使用聚集索引,因为如果使用聚集索引,SQL Server将按升序(默认)或降序物理地重新排列数据列,以便可以快速找到查询的数据。同样,如果搜索控制在一定范围内,最好对这些列使用聚集索引。这是因为由于数据的物理重排,每个表上只有一个聚集索引。

与上述情况相反,如果列中包含的数据相关性较差,则可以使用非托管索引。您可以在一个表中使用多达249个非聚集索引——,尽管我无法想象在实际应用中会使用这么多索引。

默认情况下,当表使用主键时,SQL Server将自动为包含该键的列创建唯一的群集索引。显然,为这些列建立唯一的索引意味着主键的唯一性。在建立外键关系时,如果您打算频繁使用它,那么在外键列上建立非聚集索引是一个很好的方法。如果表有聚集索引,它将使用链表来维护数据页之间的关系。相反,如果表没有聚集索引,SQL Server会将数据页保存在堆栈中。 

数据页

当索引建立时,SQLServer建立一个数据页,这是一个加速搜索的指针。当建立索引时,设置其相应的填充因子。填充因子设置为指示索引中数据页的百分比。随着时间的推移,数据库的更新将消耗现有的可用空间,这将导致页面被拆分。页面拆分的结果是索引的性能降低,因此使用索引的查询将导致数据存储的碎片。建立索引时,设置了索引的填充因子,因此无法动态维护填充因子。为了更新数据页中的填充因子,我们可以停止旧索引,重建索引,重置填充因子(注意:这会影响当前数据库的运行,重要场合请谨慎使用)。DBCC索引碎片整理和DBCC索引碎片整理是清除聚集和非聚集索引碎片的两个命令。INDEXDEFRAG是一个联机操作(也就是说,它不阻止其他表操作,如查询),而DBREINDEX则物理重建索引。在大多数情况下,重建索引可以更好地消除碎片,但这种优势是以阻止索引所在表上当前发生的其他操作为代价的。当有一个大的片段索引时,INDEXDEFRAG将花费很长时间,因为该命令基于一个小的事务块。

填充因子

当您实现上述任何一种方法时,数据库引擎可以更有效地返回索引数据。fillfactor的主题超出了本文的范围,但我仍然提醒您,您需要注意将由fill factor索引的表。

执行查询时,SQL Server会动态选择要使用的索引。因此,SQL Server会根据每个索引中关键字的统计信息来决定使用哪个索引。值得注意的是,在日常数据库活动(如插入、删除和更新表)之后,SQL Server使用的这些统计信息可能已经“过期”,需要更新。您可以通过执行DBCC SHOWCONTIG来检查统计信息的状态。当您认为统计信息“过时”时,可以执行表的UPDATE STATISTICS命令,这样SQL Server就会刷新关于索引的信息。

建立数据库维护计划

SQL Server提供了一个工具来简化和自动维护数据库。这个名为数据库维护计划向导的工具也包括索引的优化。如果运行此向导,您将看到有关数据库中索引的统计信息,这些统计信息作为日志工作并定期更新,从而减少了手动重建索引造成的工作量。如果不想自动定期刷新索引统计,也可以选择在DMPW中重新组织数据和数据页,这样会停止旧的索引,根据特定的填充因子重新构建索引。

阅读以上内容对你有帮助吗?如果您想了解更多相关知识或阅读更多相关文章,请关注行业资讯频道,感谢您的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/128952.html

(0)

相关推荐

  • 373. 查找和最小的K对数字

    技术373. 查找和最小的K对数字 373. 查找和最小的K对数字给定两个以升序排列的整数数组 nums1 和 nums2,以及一个整数 k。
    定义一对值(u,v),其中第一个元素来自nums1,第二个

    礼包 2021年12月16日
  • 抖音刷赞有什么用-抖音刷播放量网站平台

    技术抖音刷赞有什么用-抖音刷播放量网站平台抖音刷赞有什么用-抖音刷播放量网站平台
    抖音刷点赞怎么样呢,这是很多有这方面需求的小伙伴们都关心的问题。就让小编带你了解抖音1w赞多少钱吧~
    刷赞好不好,通常来说,抖音平台的算法

    测评 2021年11月13日
  • 如何使用mysqldump对mysql进行备份和恢复

    技术如何使用mysqldump对mysql进行备份和恢复这篇文章给大家分享的是有关如何使用mysqldump对mysql进行备份和恢复的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mysqld

    攻略 2021年11月3日
  • 1元涨1000粉丝网站,抖音怎么刷粉最划算?

    技术1元涨1000粉丝网站,抖音怎么刷粉最划算?1元涨1000粉丝网站,抖音怎么刷粉最划算?在正常情况下,抖音1元涨1000粉丝是有难度的,如果量大,比如一次性加几万粉,抖音100元涨1000粉丝也是可以做的,毕竟量大从

    测评 2021年11月11日
  • 鬼的笔顺,鬼字里加一个住多一横念什么

    技术鬼的笔顺,鬼字里加一个住多一横念什么魋 tuí 古书上说的一种毛浅而赤黄鬼的笔顺、形似小熊的野兽。姓。笔画数:17; 部首:鬼; 笔顺编号:32511355432411121 详细解释: 魋 tuí 【名】 神兽〖g

    生活 2021年10月21日
  • 立方厘米和升,一升和一立方米怎么换算

    技术立方厘米和升,一升和一立方米怎么换算在线科普啊立方厘米和升!升在国际单位制中表示为L,其次级单位为毫升(mL)。升与其他容积单位的换算关系为:
    1L=1000mL=0.001立方米=1立方分米=1000立方厘米
    1L

    生活 2021年10月21日