从cdef $中选择条件,其中rowid =:1查询经过的时间更长

时间:2013-01-06 15:44:35

标签: performance oracle oracle11g

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

select condition from cdef$ where rowid=:1;

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

1 个答案:

答案 0 :(得分:3)

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

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

相关问题