PX_SERVERS_EXECUTIONS与用户打开之间的关系

时间:2019-05-16 12:57:28

标签: sql oracle oracle11g

我看到一个带有5个不同SID的SQL。现在在V $ SQL中使用SQL_ID,我发现和USERS_OPENING = 5但PX_SERVERS_EXECUTION = 1。同样对于一个SQL我看到UO = 1,但PXSE = 2。您能否帮助我理解SQL_ID,SID,PX_SERVERS_EXECUTION和USERS_OPENING之间的关系。在此先感谢:)

1 个答案:

答案 0 :(得分:0)

数据库参考中描述了数据字典中的每一列。每个视图都有自己的页面,下面是V$SQL页面中的定义:

  • SQL_ID-库缓存中父游标的SQL标识符
  • USERS_OPENING-打开任何子游标的用户数
  • PX_SERVERS_EXECUTIONS-并行执行服务器执行的执行总数(当从未并行执行该语句时为0)

重新定义定义并添加一些详细信息:

  • SQL_ID是SQL语句文本的哈希。
  • USERS_OPENING是运行该语句(但不一定现在正在运行)的当前会话数。
  • PX_SERVERS_EXECUTIONS是曾经创建用来处理该语句的并行服务器的总数。例如,每次执行诸如SELECT /*+ PARALLEL(8) */ ...之类的语句时,计数可能会增加8或16。(很奇怪,您有一条SQL语句,其值为1。如果仅使用一个并行服务器,那么并行性根本就没有使用。这意味着发生了一件奇怪的事情-也许该语句在它可以分配多个线程之前就被取消了,或者只有一个线程可用并且该语句被降级了。)

V$SESSION页面中:

  • SID-会话标识符