PLSQL表函数的V $ SQL统计信息

时间:2016-08-29 18:32:10

标签: oracle plsql table-functions

我最近将一组Oracle SQL查询移到了一个包含表函数的包中,我将返回数据流水线。

然而,我开始观察不寻常的事情。 V $ SQL统计信息(如buffer_gets,fetches,cpu_time,execution_time等)已经开始显示累积数量,并且每次执行查询时它们都会不断提高。

这是通常的行为吗?

1 个答案:

答案 0 :(得分:2)

这是预期的行为。

涉及很多共享资源。如果您的应用程序在池中具有十几个数据库连接,所有这些都在执行相同类型的工作,那么您可以拥有同时从其中获取多个用户的SQL(例如,连接1在连接2时获取ABC的发票)正在为XYZ收发票)。 V $ SQL(或RAC环境中的GV $ SQL)将显示大多数详细信息的累计总数(USERS_EXECUTING之类的内容将是所有会话的当前值)。

它们才会被重置的唯一时间是SQL老化出共享区域的时间,通常是在一段时间内没有使用它,而另一个SQL需要资源,或者数据库关闭等罕见事件。