摘要: 转自vckbase 作者freedk 高手太厉害了哎“一、深入浅出理解索引结构  实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别:  其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。 阅读全文
posted @ 2010-12-11 13:01 ndxsdhy 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 转自http://www.20cn.net“  在应用系统中,尤其在联机事务处理系统中,对数据查询及处理速度已成为衡 量应用系统成败的标准。而采用索引来加快数据处理速度也成为广大数据库用户所 接受的优化方法。  在良好的数据库设计基础上,能有效地使用索引是SQL Server取得高性能的基础,SQL Server采用基于代价的优化模型,它对每一个提交的有关表的查询,决定是否使用索引或用哪一个索引。因为查询执行的大部分开销是磁盘I/O,使用索引提高性能的一个主要目标是避免全表扫描,因为全表扫描需要从磁盘上读表的每一个数据页,如果有索引指向数据值,则查询只需读几次磁盘就可以了。所以如果建立了合理的 阅读全文
posted @ 2010-12-11 12:54 ndxsdhy 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 转自IT专家网, 这篇文章好像很经典, 各种被转, 嗯留着以后看“人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显。笔者在工作实践中发现,不良的SQL往往来自于不恰当的索引设计、不充份的连接条件和不可优化的where子句。在对它们进行适当的优化后,其运行速度有了明显地提高!下面我将从这三个方面分别进行总结:  为了更直观地说明问题,所有实例中的SQL运行时间均经过测试,不超过1秒的均表示为( 1秒)。  测试环境--  主机 阅读全文
posted @ 2010-12-11 12:46 ndxsdhy 阅读(482) 评论(0) 推荐(0) 编辑
摘要: 百度文库,我也不知道是哪的“in 和existsin是把外表和内表作hash 连接,而exists 是对外表作loop 循环,每次loop 循环再对内表进行查询。一直以来认为exists 比in 效率高的说法是不准确的。如果查询的两个表大小相当,那么用in 和exists 差别不大。如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:例如:表A(小表),表B(大表)1:[代码]效率低,用到了A 表上cc 列的索引;[代码]效率高,用到了B 表上cc 列的索引。相反的2:[代码]效率高,用到了B 表上cc 列的索引;[代码]效率低,用到了A 表上cc 列的索引。n 阅读全文
posted @ 2010-12-11 12:27 ndxsdhy 阅读(53067) 评论(6) 推荐(8) 编辑