Sql 如何获取select语句的倒数第二个寄存器? 环境
使用OracleXE11g的虚拟机(我使用的是Sql 如何获取select语句的倒数第二个寄存器? 环境,sql,oracle,select,oracle11g,sqlplus,Sql,Oracle,Select,Oracle11g,Sqlplus,使用OracleXE11g的虚拟机(我使用的是SQL Plus) 解释 我需要使用1个查询(而不使用pl/SQL): 在服务器中执行的最后一条SQL语句 自该语句首次加载到共享池中以来执行该语句的次数 执行同一语句所用的CPU时间 总而言之,这就是我提出的问题 SELECT sq.SQL_TEXT ,sq.EXECUTIONS, sq.CPU_TIME FROM gv$sql sq; 当然,这个查询正在运行,但它显示了所有寄存器。我需要得到下一个到最后一个,因为最后一个将是执行时的同一
SQL Plus
)
解释
我需要使用1个查询(而不使用pl/SQL
):
- 在服务器中执行的最后一条
语句SQL
- 自该语句首次加载到共享池中以来执行该语句的次数
- 执行同一语句所用的CPU时间
SELECT sq.SQL_TEXT ,sq.EXECUTIONS, sq.CPU_TIME
FROM gv$sql sq;
当然,这个查询正在运行,但它显示了所有寄存器。我需要得到下一个到最后一个,因为最后一个将是执行时的同一个查询
我想要达到的目标
如何获取该查询的倒数第二个寄存器?使用降序,取第二行:
select sql_text, executions, cpu_time
from (select sql_text, executions, cpu_time,
row_number() over (order by last_load_time desc) rn
from gv$sql)
where rn = 2;
不太熟悉11g,但有没有一个日期字段可以用于窗口功能?这是家庭作业吗?还是一个真正的问题?我很难想象这些信息对您有多大帮助,因为您找到的SQL语句几乎肯定来自Oracle在后台运行的后台进程。它首先需要一个ORDER BY,然后研究下一个FETCH。。。有了补偿条款,你是对的,这是一个家庭作业,所以没有必要在真实的环境中有真正的用途。我们刚刚了解了用户、权限、角色等@JustinCaveI尝试了fetch语句,但没有使用11g版本。我发现它最初是在12c release@DRapp中引入的