首页 理论教育数据库性能优化:范围处理与全范围处理定义

数据库性能优化:范围处理与全范围处理定义

【摘要】:2)部分范围处理在符合SQL条件公式的范围内,只扫描一定范围时,主要用于提取OLTP画面中显示的行的情况。图5-2部分范围处理例子3)处理性能全范围处理的性能取决于查找所有符合条件的行的扫描数、部分范围处理的性能取决于只查找符合数组大小的行的扫描数。但对表执行FULL SCAN时不读取全部范围也可快速确定初始数组大小。对进行全范围处理的SQL使用索引时可进行部分范围处理,执行速度变快。

1)全范围处理(FULL RANGE SCAN)

指符合SQL条件公式的范围,SQL的处理速度通常指处理全部范围的速度。

2)部分范围处理(PARTIAL RANGE SCAN)

在符合SQL条件公式的范围内,只扫描一定范围时,主要用于提取OLTP画面中显示的行的情况。不读取全部范围也能显示初始画面,因此用户可体验更快的响应速度。图5-2所示为部分范围处理的例子。

图5-2 部分范围处理例子

3)处理性能

全范围处理的性能取决于查找所有符合条件的行的扫描数、部分范围处理的性能取决于只查找符合数组大小(array size)的行的扫描数。如果符合条件的全部范围小于数组大小(array size),进行部分范围处理就没有意义。不同情况下全范围扫描和部分范围扫描的速度如图5-3所示。

图5-3 不同情况下全范围扫描和部分范围扫描的速度

4GL(第4代语言,用于数据库访问的语言)的OLTP程序中包含大部分可以进行部分范围处理的功能。即通过应用stop key,装满同一屏幕中所示的数组大小(array size)的数据时将停止查询,可通过多个SQL推算出执行速度。其特点如下:(www.chuimin.cn)

(1)执行速度快。如:

条件公式的对象范围大。但对表执行FULL SCAN时不读取全部范围也可快速确定初始数组大小。

(2)排序后要按升序查看结果时速度变慢。如:

条件公式的对象范围广并全部执行FULL SCAN,如果不按ITEM_NO值执行排序操作,则无法确定初始数组大小。因此进行全范围处理会使速度变慢。

(3)变更为应用索引的SQL时执行速度重新变快。如:

以升序读取ITEM_NO索引时不执行排序操作也可获得所需结果。因此,不读取全部范围也可快速确定初始数组大小(array size)。对进行全范围处理的SQL使用索引时可进行部分范围处理,执行速度变快。