<海量数据库解决方案>2011050301

【摘抄】

提高局部范围扫描执行速度的原理

书中提及一个概念:无条件查询,按字面理解就行了。
如:Select * from TB

后面不带任何查询语句之类的。

在书中所说,Select * from tb order by item;

前者可能执行局部范围扫描,后者执行属于全部范围扫描

以上,针对的是Oracle来说的,前者会受到Array Size的影响

在mssql2000上实践类似语句:
前者采用聚簇索引扫描
后者采用普通索引扫描或全表扫描

当然,前者效率高些。

书中结论:
执行速度变慢的真正原因不仅是因为排序,为了排序操作而对整体数据范围进行扫描也是其中之一。

书中一个例子使用不同的索引来说明一个问题,结论如下:

满足驱动查询条件的数据范围越小,所执行的操作量就越少;而满足过滤查询条件的数据范围越大,所执行的操作量越少。

posted @ 2011-05-03 09:55  西就东城  阅读(166)  评论(0编辑  收藏  举报