Oracle SQL*PLUS命令应用(六)

Oracle SQL*PLUS命令应用(六)
【6】设置SQL的相关命令
1 .在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句 
SQL
>   SET  ECHO { ON | OFF

2 .是否显示当前sql语句查询或修改的行数 
SQL
>   SET  FEED [ BACK ]  { 6 | n | ON | OFF

默认只有结果大于6行时才显示结果的行数。如果set feedback 
1  ,则不管查询到多少行都返回。当为off 时,一律不显示查询的行数 

   备注:通常在使用Spool时候会关闭ECHO、FEEDBACK关闭

3 .当SQL语句的长度大于LINESIZE时,是否在显示时截取SQL语句
SQL
>   SET  WRA [ P ]  { ON | OFF

当输出的行的长度大于设置的行的长度时(用set linesize n命令设置),当set wrap on时,输出行的多于的字符会另起一行显示,否则会将输出行的多于字符切除,不显示。 

备注:注意只要该项设置为ON时, 多于一行的输出结果才会换行显示, 否则会直接被截取, 该命令在较长的SQL语句执行很有用

4 .显示每个sql语句花费的执行时间 
set  TIMING { ON | OFF

备注:该命令在跟踪SQL的性能时相当有用

    
Set  term  off  trims on timing on
       
 Spool .
     Spool 
off

下面我们来重点看一下timing的用处:

SQL >   select   *   from  testtable  order   by   1 ;

        ID NAME       REMARK                                             REG_DATE       SALARY
-- -------- ---------- -------------------------------------------------- ---------- ----------
          1  paul lin                                                                      07 - 6月  - 08         5500
         
2  bob lin    common  user                                             06 - 6月  - 08         6500

已用时间:  
00 00 00.00
SQL
>  
SQL
>  
SQL
>   select   *   from  testtable  order   by  dbms_random.random;

        ID NAME       REMARK                                             REG_DATE       SALARY
-- -------- ---------- -------------------------------------------------- ---------- ----------
          2  bob lin    common  user                                            06 - 6月  - 08         6500
         
1  paul lin                                                                      07 - 6月  - 08         5500

已用时间:  
00 00 00.00
SQL
>  

这里由于我们的数据只有2条,所以在比较SQL语句所花时间上看不出区别,如果数据量大的时候(10W条以上),那么我们将可以明显地看出时间的区别了(第一个快过第二个)



-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要尽力打好一手烂牌。

你可能感兴趣的:(Oracle SQL*PLUS命令应用(六))