12.1开始使用sqlplus显示用户上次登录时间,12.2提供了一个记录历史sql的功能,类似于操作系统的history,根目录下的.history文件,不过功能比操作系统的history要强大,可以指定删除/运行/编辑历史记录里面的某一条SQL,比操作系统的上翻历史命令都方便。

history默认关闭,下面是打开关闭history功能,设置缓存多少条记录:

set hist[ory] on|off|n

set hist on

set hist 1000

set hist off

history命令如下:

HIST[ORY] [n RUN | EDIT | DEL[ETE]] | [CLEAR | LIST]

hist n run/edit/del 指定运行/编辑/删除第N条记录

hist clear/list 清除/列出历史记录

编辑需要设置编辑器define _editor = vi,且编辑后的记录显示在最后一条

hist默认就是hist list。

下面是简单的测试

[code][oracle@orasql2 ~]$ sqlplus system/oracle

SQL*Plus: Release 12.2.0.1.0 Production on Thu Nov 24 09:34:12 2016

Copyright (c) 1982, 2016, Oracle. All rights reserved.

Last Successful login time: Mon Nov 21 2016 16:56:14 +08:00

Connected to:

Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> set history on

SQL> show history

history is ON and set to "100"

SQL> set history 10

SQL> history

SP2-1651: History list is empty.

SQL> select name from v$datafile;

NAME

--------------------------------------------------------------------------------

/u02/app/oracle/oradata/orasql2/system01.dbf

/u02/app/oracle/oradata/orasql2/sysaux01.dbf

/u02/app/oracle/oradata/orasql2/undotbs01.dbf

/u02/app/oracle/oradata/orasql2/pdbseed/system01.dbf

/u02/app/oracle/oradata/orasql2/pdbseed/sysaux01.dbf

/u02/app/oracle/oradata/orasql2/users01.dbf

/u02/app/oracle/oradata/orasql2/pdbseed/undotbs01.dbf

/u02/app/oracle/oradata/orasql2/PDB1/system01.dbf

/u02/app/oracle/oradata/orasql2/PDB1/sysaux01.dbf

/u02/app/oracle/oradata/orasql2/PDB1/undotbs01.dbf

/u02/app/oracle/oradata/orasql2/PDB1/users01.dbf

...

SQL> history

1 select name from v$datafile;

SQL> hist

1 select name from v$datafile;

SQL> hist list

1 select name from v$datafile;

SQL> prompt Active session with sql text

Active session with sql text

SQL> column USERNAME format a14

SQL> set linesize 200

SQL> column EVENT format a30

SQL> select /*+rule */ distinct ses.SID, ses.sql_hash_value, ses.USERNAME, pro.SPID "OS PID", substr(stx.sql_text,1,200)

2 from V$SESSION ses

3 ,V$SQL stx

4 ,V$PROCESS pro

5 where ses.paddr = pro.addr

6 and ses.status = 'ACTIVE'

7 and stx.hash_value = ses.sql_hash_value ;

prompt Active session with wait

select /*+rule */ sw.event,sw.wait_time,s.username,s.sid,s.serial#,s.SQL_id from v$session s, v$session_wait sw where s.sid=sw.sid and s.USERNAME is not null and s.status = 'ACTIVE';

SID SQL_HASH_VALUE USERNAME OS PID

---------- -------------- -------------- ------------------------

SUBSTR(STX.SQL_TEXT,1,200)

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

26 1497718616 SYSTEM 14593

select /*+rule */ distinct ses.SID, ses.sql_hash_value, ses.USERNAME, pro.SPID "OS PID", substr(stx.sql_text,1,200) from V$SESSION ses ,V$SQL stx ,V$PROCESS pro where ses.paddr = pro.addr and

SQL> Active session with wait

SQL>

EVENT WAIT_TIME USERNAME SID SERIAL# SQL_ID

------------------------------ ---------- -------------- ---------- ---------- -------------

OFS idle 0 SYS 6 2524

SQL*Net message to client -1 SYSTEM 26 23551 5rq1rg0tcjsyu

SQL>

SQL>

SQL>

SQL> hist

1 select name from v$datafile;

2 prompt Active session with sql text

3 column USERNAME format a14

4 set linesize 200

5 column EVENT format a30

6 select /*+rule */ distinct ses.SID, ses.sql_hash_value, ses.USERNAME, pro.SPID "OS PID", substr(stx.sql_text,1,200)

from V$SESSION ses

,V$SQL stx

,V$PROCESS pro

where ses.paddr = pro.addr

and ses.status = 'ACTIVE'

and stx.hash_value = ses.sql_hash_value ;

7 prompt Active session with wait

8 select /*+rule */ sw.event,sw.wait_time,s.username,s.sid,s.serial#,s.SQL_id from v$session s, v$session_wait sw where s.sid=sw.sid and s.USERNAME is not null and s.status = 'ACTIVE';

SQL> hist 8 run

EVENT WAIT_TIME USERNAME SID SERIAL# SQL_ID

------------------------------ ---------- -------------- ---------- ---------- -------------

OFS idle 0 SYS 6 2524

SQL*Net message to client -1 SYSTEM 26 23551 5rq1rg0tcjsyu

SQL>

SQL> hist 1 edit

select name,bytes/1024/1024 from v$datafile;

~

~

~

~

"history.buf" 1L, 45C written

SQL> hist

1 select name from v$datafile;

2 prompt Active session with sql text

3 column USERNAME format a14

4 set linesize 200

5 column EVENT format a30

6 select /*+rule */ distinct ses.SID, ses.sql_hash_value, ses.USERNAME, pro.SPID "OS PID", substr(stx.sql_text,1,200)

from V$SESSION ses

,V$SQL stx

,V$PROCESS pro

where ses.paddr = pro.addr

and ses.status = 'ACTIVE'

and stx.hash_value = ses.sql_hash_value ;

7 prompt Active session with wait

8 select /*+rule */ sw.event,sw.wait_time,s.username,s.sid,s.serial#,s.SQL_id from v$session s, v$session_wait sw where s.sid=sw.sid and s.USERNAME is not null and s.status = 'ACTIVE';

9 select name,bytes/1024/1024 from v$datafile;

SQL> col name for a100

SQL> hist 9 run

NAME BYTES/1024/1024

---------------------------------------------------------------------------------------------------- ---------------

/u02/app/oracle/oradata/orasql2/system01.dbf 930

/u02/app/oracle/oradata/orasql2/sysaux01.dbf 830

/u02/app/oracle/oradata/orasql2/undotbs01.dbf 560

/u02/app/oracle/oradata/orasql2/pdbseed/system01.dbf 270

/u02/app/oracle/oradata/orasql2/pdbseed/sysaux01.dbf 560

/u02/app/oracle/oradata/orasql2/users01.dbf 5

/u02/app/oracle/oradata/orasql2/pdbseed/undotbs01.dbf 175

/u02/app/oracle/oradata/orasql2/PDB1/system01.dbf 280

/u02/app/oracle/oradata/orasql2/PDB1/sysaux01.dbf 610

/u02/app/oracle/oradata/orasql2/PDB1/undotbs01.dbf 175

/u02/app/oracle/oradata/orasql2/PDB1/users01.dbf 5

...

SQL> hist

1 column EVENT format a30

2 select /*+rule */ distinct ses.SID, ses.sql_hash_value, ses.USERNAME, pro.SPID "OS PID", substr(stx.sql_text,1,200)

from V$SESSION ses

,V$SQL stx

,V$PROCESS pro

where ses.paddr = pro.addr

and ses.status = 'ACTIVE'

and stx.hash_value = ses.sql_hash_value ;

3 prompt Active session with wait

4 select /*+rule */ sw.event,sw.wait_time,s.username,s.sid,s.serial#,s.SQL_id from v$session s, v$session_wait sw where s.sid=sw.sid and s.USERNAME is not null and s.status = 'ACTIVE';

5 select name,bytes/1024/1024 from v$datafile;

6 col name for a100

7 set pagesize 10000

8 /

9 col name for a120

10 /

SQL> hist 8 del

SQL> hist

1 column EVENT format a30

2 select /*+rule */ distinct ses.SID, ses.sql_hash_value, ses.USERNAME, pro.SPID "OS PID", substr(stx.sql_text,1,200)

from V$SESSION ses

,V$SQL stx

,V$PROCESS pro

where ses.paddr = pro.addr

and ses.status = 'ACTIVE'

and stx.hash_value = ses.sql_hash_value ;

3 prompt Active session with wait

4 select /*+rule */ sw.event,sw.wait_time,s.username,s.sid,s.serial#,s.SQL_id from v$session s, v$session_wait sw where s.sid=sw.sid and s.USERNAME is not null and s.status = 'ACTIVE';

5 select name,bytes/1024/1024 from v$datafile;

6 col name for a100

7 set pagesize 10000

8 col name for a120

9 /

SQL> hist 2 del

SQL> hist list

1 column EVENT format a30

2 prompt Active session with wait

3 select /*+rule */ sw.event,sw.wait_time,s.username,s.sid,s.serial#,s.SQL_id from v$session s, v$session_wait sw where s.sid=sw.sid and s.USERNAME is not null and s.status = 'ACTIVE';

4 select name,bytes/1024/1024 from v$datafile;

5 col name for a100

6 set pagesize 10000

7 col name for a120

8 /

SQL> hist clear

SQL> hist

SP2-1651: History list is empty.

SQL>

SQL> set hist off

SQL>[/code]

另外还增加了SET LOBPREFETCH、SET STATEMENTCACHE,第一个是预读取LOB字段多少字节,第二个是缓存语句到shared pool,不需要重新解析

详细官方文档:

https://docs.oracle.com/database/122/SQPUG/HISTORY.htm#SQPUG-GUID-CCF9B047-3122-4644-BA06-5FA4B5812E9F

「喜欢文章,快来给作者赞赏墨值吧」 赞赏

【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

请登录后发表评论

oracle 12 sqlplus 使用,oracle 12.2 sqlplus history相关推荐

  1. Oracle编程入门经典 第2章 SQLPlus和基本查询

    怎样使用SQL*Plus工具连接数据库以及执行查询 怎样配置SQL*Plus,以格式化查询结果 SQL语句的不同种类 怎样在数据库上编写查询来查看数据 怎样修改存储在数据库中的数据 2.1 SQL*P ...

  2. ubuntu oracle 10g 安装,Ubuntu 12.04 安装Oracle 10g 全过程(完美)及问题解决办法

    PS:Ubuntu 12.04 安装Oracle 10g 全过程(完美)及问题解决办法正常情况下,完美无错..如果遇到问题,也有解决办法 1.安装前准备工作 1.1 到oracle官网下载适合自己电脑 ...

  3. oracle12c复制bdf,Oracle 备份与恢复学习笔记(12)

    第十二章: Catalog Database 目录库 1.catalog database 的功能 1)集中存放rman的资料库(备份的元数据),并且可以和target database 的contr ...

  4. oracle as sydba,Oracle数据库之SQL*Plus工具使用 sqlplus / as sysdba登录

    本文主要向大家介绍了Oracle数据库之SQL*Plus工具使用 sqlplus / as sysdba登录,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. A: 正常情况下 [ ...

  5. su oracle 登录不了,Oracle中su切换进去sqlplus登录失败的问题处理

    问题描述: 生产环境的Oracle数据库突然登录不上去了,rlwrap生产环境的oracle数据库突然登录不上去了,rlwrap sqlplus "/ as sysdba"报错如下 ...

  6. oracle 安装 status -2,Oracle 12.2 OJVM安装

    数据库版本:Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production OJVM版本:p27923353_ ...

  7. oracle 11g安装桌面,Lubuntu 12.10 桌面版安装Oracle 11g

    在网上找到在 LUbuntu 12.10 桌面版上成功安装 Oracle11g 的相关资料.记录之. 1. 安装依赖项 sudo apt-get install gcc make binutils l ...

  8. Oracle编程入门经典 第12章 事务处理和并发控制

    目录 12.1          什么是事务处理... 1 12.2          事务处理控制语句... 1 12.2.1       COMMIT处理... 2 12.2.2       RO ...

  9. 【Qt】Qt5.12版本编译Oracle驱动教程

    00. 目录 文章目录 00. 目录 01. Qt5.12安装 02. Qt安装注意事项 03. Qt版本和Oracle安装路径说明 04. Qt5.12编译Oracle驱动(使用MinGW 64位) ...

最新文章

  1. 在UIWindow上加类似于“回到顶部”的按钮
  2. 4.Winform实现控件拖动
  3. HDU - 1394 Minimum Inversion Number(树状数组)
  4. 联想 android 5.1 root权限,联想A520手机ROOT权限图文教程(附联想A520root工具)
  5. 准确性 敏感性 特异性_如何掌握类型特异性的艺术
  6. 垂直型电商的投资魔法
  7. Linux USB驱动程序设计
  8. w8的计算机管理打不开,Win8.1系统打不开控制面板怎么办 win8.1无法打开控制面板如何解决...
  9. oracle数据文件管理,数据文件管理—oracle管理指南
  10. PS批量制作获奖证书并导出PNG
  11. MATLAB一元微积分实验
  12. 嵌入式Linux:移植USB接口的RTL8188EUS、RTL8188ETV WIFI模块
  13. “华为杯”第十七届中国研究生 数学建模竞赛-【华为杯】B题:降低汽油精制过程中的辛烷值损失模型(附优秀论文)
  14. 车机开发之添加自定义键
  15. (40)STM32——OV2640摄像头实验
  16. cfg80211 subsystem中的cfg80211_ops
  17. js学习笔记(1)之document.write()方法使用总结
  18. CTime::GetCurrentTime();获取当前时间
  19. openstack创建云主机流程
  20. ROS2机器人笔记20-11-22

热门文章

  1. python将数据写入Excel
  2. LaTeX的表格标题位置
  3. Android高性能ORM数据库DBFlow入门
  4. Android仿微信界面
  5. Java并发编程实战~StampedLock
  6. 利用ServiceLocator模式改进JNDI实践
  7. [go]---从java到go(01)---基础与入门上手
  8. 如何设置电脑开机自动提示(防止忘打卡等)
  9. SQLite3中的数据类型
  10. CoreAnimation编程指南(九)图层布局