解析、执行和获取有什么区别?

问题描述

tkprof 实用程序生成包含三种类型信息的跟踪文件,即解析、执行和获取。你能解释一下这三者有什么区别吗?什么会被算作解析、执行和获取

预先感谢您的帮助。

解决方法

当您发出 SQL 语句时,Oracle:

  1. 解析您的 SQL 语句。这意味着 Oracle 会分析语法的正确性、检查访问权限并创建执行计划(或从缓存中获取)。
  2. 实际执行您的 SQL 语句。
  3. 对于 SELECT 语句,Oracle 获取查询返回的行。 (对于 INSERT、DELETE 和 UPDATE,Oracle 不获取任何内容)。

这些操作的数量写在跟踪中。

如果我们谈论性能调优,想法是解析一次 SQL 语句,然后将它们保存在现金中,在需要时执行它们,如果再次需要它们,不要关闭游标以减少获取次数。