1.V$SESSION_WAIT  
    
    session在数据库中当前正在等待什么,每一个连接到实例的session都对应一条记录。
  
    (2)-V$SESSION_EVENT
    
    记录了session自启动起所有的事件。
  
通过ADDRESS和HASH_VALUE可以为一判定一个SQL
    v$sqltext存储的是完整的SQL,SQL被分割
    
    v$sqlarea存储的SQL 和一些相关的信息,比如累计的执行次数,逻辑读,物理读等统计信息
    
    v$sql存储的是具体的SQL 和执行计划相关信息,实际上,v$sqlarea 可以看做 v$sql 根据 sqltext 等 做了 group by 之后的信息
  
    
    即使是相同的数据库用户,若 session 的优化模式、session 级的参数 等不一样,执行计划也能不同。
    
    所以即使相同的sql,也可能具有不同的执行计划!  
    
      v$sql join to v$sql_plan 就代表了具体的sql的执行计划,通过下面3个字段做连接  
    
      ADDRESS RAW(4)
    
      HASH_VALUE NUMBER
    
      CHILD_NUMBER NUMBER
    
    而v$SQLAREA 忽略了 执行计划 等差异,只是在形式上sql文本看起来一样!相当于做了个聚合,是多个不同执行计划的sql的聚合和累计信息
  
    
    v$session_longops:
    
    当事务回滚时,事件被记录在视图 V$SESSION_LONGOPS 中,该视图显示长期运行的事务。如果进程耗时超过六秒,则记录出现在该视图中。
    
    可以通过如下语句查看回滚需要的时间:
    
    select time_remaining from v$session_longops where sid = ;
  
    V$FAST_START_TRANSACTIONS:
    
    在大型的更新期间,实例异常关闭,或spid异常中断,发生故障的事务被回滚。如果启用了用于并行恢复的初始化参数值,则回滚是并行地而不是串行地发生。 
    
    视图 V$FAST_START_TRANSACTIONS 显示为回滚故障事务所产生的事务。类似的视图 V$FAST_START_SERVERS 显示对回滚进行处理的并行查询服务器的数量。
    
    select * from v$fast_start_transactions;
    
    可通过UNDOBLOCKSDONE、UNDOBLOCKSTOTAL估算回滚时间。
  
    
    当我们想查看当前session的sid时经常会用到这两个function,此外也可通过这两个function查询当前session的更多信息。
    
    such as:
    
    select userenv('sid') from dual;
    
    select sys_context('userenv', 'sid') from dual;
    
    select sys_context('userenv', 'session_user') from dual;
    
    select sys_context('userenv', 'ip_address') from dual;
    
    sys_context包含了userenv的所有功能,详细参数参看:
    
    userenv:
    
      http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions208.htm#SQLRF06157
    
    
    sys_context:
    
      http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions165.htm#SQLRF06117
    
  
    
    spool 生成纯净文件
    
    1.创建sql文件,该文件包含格式相关的参数设置和脚本生成语句
    
    例:
    
    [oracle@db 20090709]$ more exp.sql 
    
    set trimspool on --去除重定向(spool)输出每行的拖尾空格,缺省为off
    
    set term off   --关闭显示脚本中的命令的执行结果,防止滚屏影响操作,当数据量大时非常有用,缺省为on
    
    set feedback off --关闭回显本次sql命令处理的记录条数,如:** rows selected,缺省为on
    
    set pagesize 0  --设置输出每页行数,缺省为24,为了避免分页,设定为0,使用set head off去除列名时会造成空行
    
    set line 1200   --设置输出每行的字符数,可根据实际情况设置,防止换行
    
    spool userSecurity.sql
    
    @exp_data1.sql
    
    spool off
    
    spool pay.sql
    
    @exp_data2.sql
    
    spool off
  
    @exp_data1.sql、@exp_data2.sql中是select语句
    
    如果不创建该sql脚本,则生成的文件中文件头尾分别为:
    
    SQL> ....sql语句或@文件
    
    SQL>spool off
    
    补充:当不采用上述方式时,sqlplus -s / as sysdba也可达到效果
  
    2.通过shell或直接sqlplus调用该脚本
    
    例1:
    
    sqlplus / as sysdba
    
    SQL> @exp.sh
    
    例2:
    
    [oracle@db 20090709]$ more exp.sh
    
    #!/bin/sh
    
    sqlplus / as sysdba <<EOF 
    
    @exp.sql
    
    EOF
  
[oracle@db 20090709]$ sh exp.sh
    
    dbms_scheduler调用shell脚本
    
    1.使用sys用户创建EXECUTABLE类型scheduler。
    
    2.指定shell类型,如:#!/bin/sh
    
    3.shell脚本内设置环境变量
    
    [oracle@dbathree qxy]$ more check_env.sh 
    
    #!/bin/sh
    
    env | sort | tee >> /orahome/qxy/env.out
    
    执行后可以看到:
    
    [oracle@dbathree qxy]$ more env.out 
    
    PWD=/
    
    SHLVL=1
    
    _=/bin/env
  
4.脚本中使用全路径
如果想使用其它用户可以通过grant create external job to user_name实现,但好像10g有bug,没调试成功。
    创建语句:
    
    begin
    
    dbms_scheduler.create_job(job_name        => 'sys.test_schem',
    
                                job_type        => 'EXECUTABLE',
    
                                job_action      => '/orahome/qxy/test_schem.sh',
    
                                start_date      => trunc(sysdate) + 16 / 24 +
    
                                                   44 / 60 / 24,
    
                                enabled         => true,
    
                                comments        => 'expdp busi02!');
    
    end;
  
    执行脚本:
    
    [oracle@dbathree qxy]$ more test_schem.sh
    
    #!/bin/bash
    
    export ORACLE_SID=busi
    
    export ORACLE_BASE=/orahome/app/oracle
    
    export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
    
    export PATH=$ORACLE_HOME/bin:$PATH
    
    expdp system/oracle dumpfile=busi020616.dmp directory=DUMP_FILE schemas=busi02
  


 
					 
					