发信人: lei_tiger()
整理人: leitiger(2002-06-05 23:45:28), 站内信件
|
今天介绍SQL7对复杂查询性能增强,如表连接技术的改进,OLE DB技术,查询限 制放宽,多处理机并行执行等。
-------------------------------
3、增强的复杂查询处理
·新的杂凑(hash)及合并(merge)连接
·多索引操作和行定位符
查询处理器被重新设计以支持大数据库和复杂查询,基于决策支持,数据仓库, 和OLAP应用。查询处理器包括一些新的执行策略可以增强复杂查询的性能。
现在采用了杂凑(hash)连接和更成熟的合并(merge)连接,即高级杂凑集合技术。 这些技术可以比嵌套循环连接技术更适合于大数据库,后者是 SQL Server 6.5 的主要连接技术。SQL Server 7.0 对多个索引使用索引交叉和联合技术,在从表 中提取记录之前进行过滤。当你修改数据是一个表的所有索引被并发维护。约束 评估(constraint evalution)现在作为查询处理器执行计划的一部分。这两个因 素简化和加速了对一个表中多行记录的更新。
SQL Server 7.0 查询处理器从统计(statistics)中提取信息并采用随机快速采样 动态重组统计。系统还根据优化器需要自动采集统计。这确保查询处理器使用最 新的统计结果并减少维护要求。
查询优化器识别查询结构中的公共数据,如星型结构或雪花结构,并基于针对这 种结构的查询的开销分析选择执行计划。例如,SQL Server 7.0 查询优化器使用 笛卡儿乘积索引操作和半连接(semi-join)技术来处理星型模式的查询。
查询优化器有着多样的执行策略,并且 SQL Server 早期版本的许多优化限制都 被去掉了。一个改进的开销模型和编译增强,例如及物谓词和常量折叠,很大程 度地改进了执行计划。
查询处理器支持新的查询暗示(query hints),有些查询限制被放宽或去掉了。例 如,单个查询可以引用256个表,一个查询内部工作表(internal work table)的 数量(早期版本为16个)不再有限制。
查询处理器使用 OLE DB 与 SQL Server 数据存储组件通讯。OLE DB 为 SQL Se rver 7.0 查询处理器提供了分布式和异类查询能力。它支持多个 SQL Server 7 .0 或与其他 OLE DB 之间的分布查询。
SQL Server 7.0 支持单个查询在多处理器上并行执行。一个必须检查大量的记录 的CPU限度(CPU-bound)查询如果部分执行计划被并行执行常常会更好。SQL Serv er 7.0 自动决定哪个查询能从并行执行计划中受益并生成并行执行计划。如果查 询开始时有多个处理器可用,工作被分配给处理器们。并行查询执行计划缺省是 可用状态的。
当查询优化时,SQL Server 查找可能从并行执行中受益的查询。对这些查询,S QL Server 向查询执行计划中插入交换操作符(exchange operator)来准备并行执 行。查询执行计划中的交换操作符提供处理管理,数据重分配,和流控制。插入 交换操作符后,就是一个并行执行计划。并行查询执行计划使用多于一个线程, 而使用非并行查询的串行执行计划直使用一个线程。并行查询使用线程的实际数 量取决于查询计划执行和初始化,称为并行度。
-- 我雷老虎以德服人。^-^
我对MIS(尤其是商业MIS)开发和人工智能研究很有兴趣,欢迎交流!
给我来信:[email protected]
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.130.229.56]
|
|