sqlplus配置和session中sql追踪

sqlplus启动时会查找和加载的两个文件login.sql和glogin.sql。
其中glogin.sql文件默认存放在$ORACLE_HOME/sqlplus/admin目录下,login.sql可以设置在SQLPATH中。
一、login.sql文件
login.sql文件可以存放sqlplus中能使用的任何命令,包括sqlplus命令和sql语句。
sqlplus启动时会首先查找当前目录下的login.sql文件,其次会在SQLPATH目录下查找。
如果找到login.sql文件,则在SQLPLUS显示"SQL>”前执行login.sql里的所有内容。
如果没找到login.sql文件,则停止查找。
所以可将个人喜欢的常用设置放在login.sql文件中,每次sqlplus启动时会自动加载。
设置SQLPATH
在ORACLE用户profile文件中加入SQLPATH环境变量。我的是.bash_profile
如:export SQLPATH=/data/app/sqlpath(此路径是你login.sql所在的目录)
当然也可启动sqlplus后,再执行该文件(使用@命令)。
 
二、glogin.sql
文件glogin.sql是ORACLE为所有的数据库用户建立默认的SQLPLUS设置,默认存放在$ORACLE_HOME/sqlplus/admin目录下。
sqlplus启动时也会在出现"SQL>”之前自动执行该文件的所有内容。所以也可将一些常用设置放在该文件里。
代码为:
define_editor=vi
----设定默认编辑器
set timing on
--显示执行时间
set serveroutput on size 1000000
--设定输出显示,且缓冲区设置为1000000 
set trimspool on
--假脱机输出文本时,会去除文本行两端的空格,且行宽不定.如果为off,则文本行宽度等于linesize 
set long 5000
--设置LONG和CLOB类型显示的默认字节数
set linesize 1000
--设定文本行宽为1000  
set pagesize 9999
--设定SQLPLUS的页面大小  
set NULL < null > 
--设定NULL值显示为null 
column plan_plus_exp format a80
--设定autotrace得到的解释计划输出的默认宽度 
column global_name new_value gname
set termout off
define gname=idle
column global_name new_value gname
select lower(user) || '@' || substr( global_name,1,decode( dot,0, length(global_name),
	dot-1) ) global_name from 
		(select global_name, instr(global_name,'.') dot from global_name);
set sqlprompt '&gname> '
set termout on
--以当前用户名@实例名代替 sql> 显示
在session中进行sql追踪方法:
set autotrace off;
默认不生成autotrace报告
set autotrace on explain
只显示优化器执行路径
set autotrace on statistics
只显示sql语句的执行统计信息
set autotrace on ;
显示优化器路径和sql语句执行统计信息。如下:
test@ORCL> set autotrace on;
test@ORCL> select * from t;

        ID NAME
---------- ----------------------------------
         1 a
         2 a
         3 a
         4 w

Elapsed: 00:00:00.05

Execution Plan
----------------------------------------------------------
Plan hash value: 1601196873

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |     4 |    20 |     3   (0)| 00:00:01 |
|   1 |  TABLE ACCESS FULL| T    |     4 |    20 |     3   (0)| 00:00:01 |
--------------------------------------------------------------------------


Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          7  consistent gets
          0  physical reads
          0  redo size
        672  bytes sent via SQL*Net to client
        519  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          4  rows processed
 0  recursive calls:在执行这个sql语句中oracle内部额外执行的sql语句的个数。
          0  db block gets:从buffer cache中读取的数据块的数量(通过update/delete/select for update读的次数)。
          7  consistent gets:从buffer cache中读取的undo数据块的数量(通过不带for update的select 读的次数)。
          0  physical reads:从硬盘读取的数据块的数量。
          0  redo size:执行sql过程中产生redo的大小。
        672  bytes sent via SQL*Net to client:通过SQL*Net发送给客户端的字节数。
        519  bytes received via SQL*Net from client:通过SQL*Net接受客户端的字节数。
          2  SQL*Net roundtrips to/from client:网络往返次数。(在sql*plus 中可以受arraysize参数影响。)
          0  sorts (memory):内存排序记录的数量。
          0  sorts (disk):磁盘排序记录的数量。
          4  rows processed:实际返回记录的数量。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值