ITPub博客

首页 > 数据库 > Oracle > [20141216]sqlplus的set appinfo.txt

[20141216]sqlplus的set appinfo.txt

原创 Oracle 作者:lfree 时间:2014-12-16 16:14:29 0 删除 编辑

[20141216]sqlplus的set appinfo.txt

--今天学习了sqlplus的set appinfo命令,可以设置module参数。做一个简单记录。

--会话1:
SCOTT@test> @ver
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

SCOTT@test> set appinfo test
SCOTT@test> SElect sysdate from dual ;
SYSDATE
-------------------
2014-12-16 16:07:08

SCOTT@test> select * from dept where rownum<=1;
    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK

--在另外的会话执行,会话2:
SCOTT@test> select sql_id,sql_text,child_number,executions,buffer_gets from v$sql where module='test';
SQL_ID        SQL_TEXT                                                     CHILD_NUMBER EXECUTIONS BUFFER_GETS
------------- ------------------------------------------------------------ ------------ ---------- -----------
20zmcgcrnnrxs SElect sysdate from dual                                                0          1           0
cf2xz73hgrf81 select * from dept where rownum<=1                                      0          1          64

--这样可以定位知道执行语句的sql_id.注意module的大小写。

SCOTT@test> select * from emp where rownum<=1;
     EMPNO ENAME      JOB              MGR HIREDATE                   SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 1980-12-17 00:00:00        800                    20

--会话1执行:
SCOTT@test> select * from emp where rownum<=1;
     EMPNO ENAME      JOB              MGR HIREDATE                   SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 1980-12-17 00:00:00        800                    20

--会话2执行:
SCOTT@test> select sql_id,sql_text,child_number,executions,buffer_gets from v$sql where module='test';
SQL_ID        SQL_TEXT                                                     CHILD_NUMBER EXECUTIONS BUFFER_GETS
------------- ------------------------------------------------------------ ------------ ---------- -----------
20zmcgcrnnrxs SElect sysdate from dual                                                0          1           0
cf2xz73hgrf81 select * from dept where rownum<=1                                      0          1          64

--看不到执行的select * from emp where rownum<=1;语句,这个因为别的会话已经执行。只要把语句写的特殊一些,比如加入注解或者
--改变大小写就ok了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-1369832/,如需转载,请注明出处,否则将追究法律责任。

全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    2696
  • 访问量
    6466013