【Oracle】查询近期历史执行SQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
--设置折行显示行数
SET LINES 32767;

--设置一页有多少行数
SET pages 32767;

--设置显示long,lob等型字段的长度
SET long 32767;

--共享池库缓存中在子指针级别上的SQL统计信息,包含了所有用户执行过的所有SQL信息。不同用户、不同会话执行相同的SQL的语义、执行计划可能会不同,这些SQL的字面值相同,即具有相同的sql_id,通过不同的子指针编号child_number来区分。
SELECT sql_text,last_load_time FROM v$sql WHERE last_load_time IS NOT NULL  ORDER BY last_load_time;

--共享池库缓存中在父指针级别上的SQL统计信息。对于相同字面值的SQL语句仅以一行显示,忽略了相同SQL语句在执行会话、语义、执行计划上的不同,而版本计数version_count则反映了子指针的数量。
SELECT sql_text,last_load_time FROM v$sqlarea WHERE last_load_time IS NOT NULL  ORDER BY last_load_time;

--$sqlarea和v$sql两个视图的不同之处在于,v$sql中为每一条SQL保留一个条目,而v$sqlarea中根据sql_text进行group by,通过version_count计算子指针的个数。

--其他set会话配置
SET TIME ON               // 显示系统时间
SET pages 1000      // 设置一页有多少行数
SET term  off             // 在屏幕上不显示命令结果
SET heading off        // 输出域标题
SET colsep                // 域输出分隔符