WEB开发网
开发学院数据库Oracle 通过分析SQL语句的执行计划优化SQL(二) 阅读

通过分析SQL语句的执行计划优化SQL(二)

 2007-07-31 12:37:34 来源:WEB开发网   
核心提示: 第8步: 取出查询的行(Fetch Rows of a Query)在fetch阶段,行数据被取出来,通过分析SQL语句的执行计划优化SQL(二)(6),每个后续的存取操作检索结果集中的下一行数据,直到最后一行被取出来,在设计应用时,除了需要决定哪种类型的操作组成一个事务外,上面提到过,批

第8步: 取出查询的行(Fetch Rows of a Query)

在fetch阶段,行数据被取出来,每个后续的存取操作检索结果集中的下一行数据,直到最后一行被取出来。上面提到过,批量的fetch是优化的技巧之一。

第9步: 关闭游标(Close the Cursor)

SQL语句处理的最后一个阶段就是关闭游标

DDL语句的处理(DDL Statement Processing)

DDL语句的执行不同与DML语句和查询语句的执行,这是因为DDL语句执行成功后需要对数据字典数据进行修改。对于DDL语句,语句的分析阶段实际上包括分析、查找数据字典信息和执行。

事务管理语句、会话管理语句、系统管理语句只有分析与执行阶段,为了重新执行该语句,会重新分析与执行该语句。

事务控制(Control of Transactions)

一般来说,只有使用ORACLE编程接口的应用设计人员才关心操作的类型,并把相关的操作组织在一起,形成一个事务。一般来说,我门必须定义事务,这样在一个逻辑单元中的所有工作可以同时被提交或回滚,保证了数据的一致性。一个事务应该由逻辑单元中的所有必须部分组成,不应该多一个,也不应该少一个。

在事务开始和结束的这段时间内,所有被引用表中的数据都应该在一致的状态(或可以被回溯到一致的状态)。

事务应该只包含可以对数据进行一致更改(one consistent change to the data)的SQL语句

例如,在两个帐号之间的转帐(这是一个事务或逻辑工作单元),应该包含从一个帐号中借钱(由一个SQL完成),然后将借的钱存入另一个帐号(由另一个SQL完成)。这2个操作作为一个逻辑单元,应该同时成功或同时失败。其它不相关的操作,如向一个帐户中存钱,不应该包含在这个转帐事务中。

在设计应用时,除了需要决定哪种类型的操作组成一个事务外,还需要决定使用BEGIN_DISCRETE_TRANSACTIO存储过程是否对提高小的、非分布式的事务的性能有作用。

上一页  1 2 3 4 5 6 

Tags:通过 分析 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接