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

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

 2007-07-31 12:37:34 来源:WEB开发网   
核心提示: 查询语句的处理查询与其它类型的SQL语句不同,因为在成功执行后作为结果将返回数据,通过分析SQL语句的执行计划优化SQL(二)(4),其它语句只是简单地返回成功或失败,而查询则能返回一行或许多行数据,Oracle 需要得到在语句中列出的所有变量的值,在该例中,查询的结果均采用表格形式,结果

查询语句的处理

查询与其它类型的SQL语句不同,因为在成功执行后作为结果将返回数据。其它语句只是简单地返回成功或失败,而查询则能返回一行或许多行数据。查询的结果均采用表格形式,结果行被一次一行或者批量地被检索出来。从这里我们可以得知批量的fetch数据可以降低网络开销,所以批量的fetch也是优化的技巧之一。

有些问题只与查询处理相关,查询不仅仅指SELECT语句,同样也包括在其它SQL语句中的隐含查询。例如,下面的每个语句都需要把查询作为它执行的一部分:

INSERT INTO table SELECT...
UPDATE table SET x = y WHERE...
DELETE FROM table WHERE...
CREATE table AS SELECT...

具体来说,查询

要求读一致性

可能使用回滚段作中间处理

可能要求SQL语句处理描述、定义和取数据阶段

第3步: 描述查询结果(Describe Results of a Query)

描述阶段只有在查询结果的各个列是未知时才需要;例如,当查询由用户交互地输入需要输出的列名。在这种情况要用描述阶段来决定查询结果的特征(数据类型,长度和名字)。

第4步: 定义查询的输出数据(Define Output of a Query)

在查询的定义阶段,你指定与查询出的列值对应的接收变量的位置、大小和数据类型,这样我们通过接收变量就可以得到查询结果。如果必要的话,Oracle会自动实现数据类型的转换。这是将接收变量的类型与对应的列类型相比较决定的。

第5步: 绑定变量(Bind Any Variables)

此时,Oracle知道了SQL语句的意思,但仍没有足够的信息用于执行该语句。Oracle 需要得到在语句中列出的所有变量的值。在该例中,Oracle需要得到对department_id列进行限定的值。得到这个值的过程就叫绑定变量(binding variables)

上一页  1 2 3 4 5 6  下一页

Tags:通过 分析 SQL

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