SQLSERVER 完全优化教程 数据库
1、没有索引或者没有用到索引(这是查询慢最常见
的问题,是程序设计的缺陷)
我们把这种 正文内容 本身就是一种按照一定规则排列 的 目录 称为“聚集索引”。
需要两个过程,先找到目录中的结果,然后再翻到您所需要的页码。我们把这种目录纯粹是目
录,正文纯粹是正文的 排序方式 称为“非聚集索引”。
下面的表总结了何时使用聚集索引或非聚集索引(很重要):
动作描述 使用聚集索引 使用非聚集索引
列经常被分组排序 应 应
返回某范围内的数据 应 不应
一个或极少不同值 不应 不应
小数目的不同值 应 不应
大数目的不同值 不应 应
频繁更新的列 不应 应
外键列 应 应
主键列 应 应
频繁修改索引列 不应 应
事实上,我们可以通过前面聚集索引和非聚集索引的定义的例子来理解上表。如:返回某范围
内的数据一项。比如您的某个表有一个时间列,恰好您把聚合索引建立在了该列,这时您查询2004
年1月1日至2004年10月1日之间的全部数据时,这个速度就将是很快的,因为您的这本字典正文是按
日期进行排序的,聚类索引只需要找到要检索的所有数据中的开头和结尾数据即可;而不像非聚集
索引,必须先查到目录中查到每一项数据对应的页码,然后再根据页码查到具体内容。
结合实际,谈索引使用的误区
理论的目的是应用。虽然我们刚才列出了何时应使用聚集索引或非聚集索引,但在实践中以上
规则却很容易被忽视或不能根据实际情况进行综合分析。下面我们将根据在实践中遇到的实际问题
来谈一下索引使用的误区,以便于大家掌握索引建立的方法。
1、主键就是聚集索引
这种想法笔者认为是极端错误的,是对聚集索引的一种浪费。虽然SQL SERVER默认是在主键上
建立聚集索引的。
通常,我们会在每个表中都建立一个ID列,以区分每条数据,并且这个ID列是自动增大的,步
长一般为1。我们的这个办公自动化的实例中的列Gid就是如此。此时,如果我们将这个列设为主键,SQL SERVER会将此列默认为聚集索引。这样做有好处,就是可以让您的数据在数据库中按照ID进行
物理排序,但笔者认为这样做意义不大。
显而易见,聚集索引的优势是很明显的,而每个表中只能有一个聚集索引的规则,这使得聚集
索引变得更加珍贵。
从我们前面谈到的聚集索引的定义我们可以看出,使用聚集索引的最大好处就是能够根据查询
要求,迅速缩小查询范围,避免全表扫描。在实际应用中,因为ID号是自动生成的,我们并不知道
每条记录的ID号,所以我们很难在实践中用ID号来进行查询。这就使让ID号这个主键作为聚集索引
成为一种资源浪费。其次,让每个ID号都不同的字段作为聚集索引也不符合“大数目的不同值情况下
不应建立聚合索引”规则;当然,这种情况只是针对用户经常修改记录内容,特别是索引项的时候会
负作用,但对于查询速度并没有影响。
在办公自动化系统中,无论是系统首页显示的需要用户签收的文件、会议还是用户进行文件查
询等任何情况下进行数据查询都离不开字段的是“日期”还有用户本身的“用户名”。
SQL数据库优化教程_计算机软件及应用_IT/计算机_专业资料。关于Sql优化的一些总结...SQL SERVER数据库完整个... 2页 1下载券 数据库优化跟SQL语句优化... 34页...
Windows7服务优化教程_计算机软件及应用_IT/计算机_专业...Distributed Transaction Coordinator 很多应用以及 SQL,...Thread Ordering Server 提供特别的线程排序和调度服务...
SQLServer2005基础教程_工学_高等教育_教育专区。SQL Server 2005基础教程 清华大学出版社 第1章 概述 教学目标 教学过程 2007年9月3日 第1页 SQL Server 2005...
sql性能优化教程书籍_IT/计算机_专业资料。教程TNT20060929 SQL Server 2000完结篇系列之六:设计高效的SQL语句进行查询优化 Page: 1 TNT20060929 概要 Page: 2 TNT...
U8环境的优化教程_互联网_IT/计算机_专业资料。使用...ufsoft . com 连接设置 (1) SQLServer设置不当...还原最新的完整数据库备份。有差异备份,则还原最新的...
数据库参考教程 08 数据库性能优化_互联网_IT/计算机_专业资料。SQL Server 性能...则能保持数据的 一致性和完整性 foreign key(uid) references [Table2](uid)...
Windows7服务优化教程 隐藏>> 什么是服务? 服务是系统...Distributed Transaction Coordinator 很多应用以及SQL,...Thread Ordering Server 提供特别的线程排序和调度服务...
数据库 SQL 优化大总结之百万级数据库优化方案 网上关于 SQL 优化的教程很多,...你一定把其拆分,使用 LIMIT oracle(rownum),sqlserver(top)条件是一个好的方法...
阿50 种方法巧妙优化你的 SQL Server 数据库 iv. 在使用索引字段作为条件时,...因此,每当用户需要完全的悲观并发 控制时,游标都应在事务内打开。更新锁将阻止...
高级SQL优化教程 69页 1下载券 SQL高级教程(二) ...SQL Server 的语法: SELECT TOP numberpercent ...即使两个人的 姓名完全相同,Id_P 也可以区分他们...
闽公网安备 35021102001881号 
热门文档