- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL Server
系统性能调优解决方案
前言
近几年 , 医药流通市场经历了激烈的震荡 , 导致行业逐步成熟和企业的快速变革 , 差异化经营成为众多医药流通的竞争选择。时空产品在中国医药流通企业的发展过程中得到了广泛且深入应用 , 大量的客户化开发和定制支撑了企业管理中横向和纵向的变化,很好的适应了企业在发展过程中不
断变化的需求。
对于数据库管理系统的使用,很多用户都面临着一个很棘手的问题: 系统效率下降 。产生效率下降的因素是多方面:
硬件问题
软件问题
实施问题
正因为产生效率下降的因素很多,所以如何去查找原因成为我们首要关注的问题,时空公司也处在积极探索过程中。时空公司在解决一些客户问题的过程中积累了一些方法和思路,归纳总结后呈现给体系内的技术人员,本方案就系统效率调整所必需的基础知识、方法、技巧等几个方面进行阐述,从而让技术人员能够快速定位问题,解决问题,为合作伙伴提供优质,快捷的服务。
索引简介
索引是根据数据库表中一个或多个列的值进行排序的结构。 索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。 数据库使用索引的方式与使用书的目录很相似,通过搜索索引找到特定的值,然后跟随指针到达包含该值的行。
索引键 :用于创建索引的列。
索引类型
聚集索引 :
聚集索引基于数据行的键值在表内排序和存储这些数据行。由于数据行按基于聚集索引键的排序次序存储,因此聚集索引对查找行很有效。每个表只能有一个聚集索引,因为数据行本
身只能按一个顺序存储。数据行本身构成聚集索引的最低级别(叶子节点) 。只有当表包含聚集索引时,表内的数据行才按排序次序存储。如果表没有聚集索引,则其数据行按堆集方式存储。
聚集索引对于那些经常要搜索范围值的列特别有效。使用聚集索引找到包含第一个值的行后,
便可以确保包含后续索引值的行在物理相邻。例如:如果应用程序执行的一个查询经常检索某一日期范围内的记录,则使用聚集索引可以迅速找到包含开始日期的行,然后检索表中所有相邻的行,直到到达结束日期。这样有助于提高此类查询的性能。同样,如果对从表中检索的数
据进行排序时经常要用到某一列,则可以将该表在该列上聚集(物理排序) ,避免每次查询该列时都进行排序,从而节省成本。
A-B
C-D
E-F
根节点
E 分支节点
F
A B
数据 数据
E F
数据 数据
叶节点(包括数据)
非聚集索引
非聚集索引具有完全独立于数据行的结构。非聚集索引的最低行包含非聚集索引的键值, 并且每个键值项都有指针指向包含该键值的数据行。数据行不按基于非聚集键的次序存储。如
果一个表只有非聚集索引,它的数据行将按无序的堆集方式存储 , 非聚集索引可以建多个。
A-B
C-D
E-F
根节点
E 分支节点
F
A
行 ID
B
行 ID
E
行 ID
F
行 ID
叶节点(指向数据)
数据 数据 数据 数据
唯一索引
唯一索引可以确保索引列不包含重复的值。 在多列唯一索引的情况下,该索引可以确保索引列中每个值组合都是唯一的。唯一索引既是索引也是约束。
复合索引
索引项是多个的就叫组合索引, 也叫复合索引。 复合索引使用时需要注意索引项的次序。
索引对性能的作用
使用索引的优点
通过唯一性索引( unique )可确保数据的唯一性
加快数据的检索速度
加快表之间的连接
减少分组和排序的时间
使用索引的原则
在需要经常搜索的列上创建索引
经常用于连接的列上创建索引
经常需要根据范围进行搜索的列上创建索引
经常需要排序的列上创建索引
经常用于 where 子句的列上创建索引
不使用索引的原则
查询很少使用和参考的列不建索引
对只有少数值的列不建索引
定义为 text 、 image、 bit 的列不建索引
当需要 update 性能远远高于 select 性能时不建或少建索引
常用命令
sp_helpindex : 报告表或视图上的索引信息
dbcc showcontig : 显示指定表的数据和索引的碎片信息
dbcc dbreindex : 重建指定数据库中一个或多个索引
dbcc indexdefrag : 整理指定表或视图的聚集索引或辅助索引的碎片
创建索引
定义索引时,可以指定每列的数据是按升序还是降序存储。如果不指定,则默认为升序
为索引指定填充因子,可标识填充因子来指定每个索引页的填满程度。索引页上的空余空
间量很重要,因为当索引页填满时, 系统必须花时间拆分它以便为新行腾出空间。
优化索引
重建索引( dbcc dbreindex )
索引优化向导
整理指定的表或视图的聚集索引和辅助索引碎片 (dbcc indexefrag)
问题定位
时空在产品开发过程中遵循大开发理,共四个研发层次,第一层技
原创力文档


文档评论(0)