1

在 Db 跟踪中,有一个查询需要很长时间。有人可以解释它的含义。似乎这是非常通用的 oracle 查询,不涉及我的自定义表。

select condition from cdef$ where rowid=:1;

在 trc 文件(DB 跟踪)的多个地方发现了相同的查询,其中一个有大量的经过时间。那么,避免花费这么长时间的解决方案是什么。我使用的是 11g 版本的 oracle。

4

1 回答 1

3

没错,这是 Oracle 递归 SQL 的一个示例,它针对数据字典运行的语句以支持我们的应用程序 SQL。该特定语句是 Oracle 运行以获取 CHECK 约束的搜索条件的查询。如果您在带有检查约束的表中插入或更新行,您会看到很多。

实际的语句运行时间不会太长,因此它不太可能成为性能问题的根源。除非您运行大量带有硬编码值的插入语句。Oracle 将在每次解析新的插入或更新语句时运行该查询。如果您不使用绑定变量,那将变得昂贵。

于 2013-01-06T16:53:42.937 回答