数据来源于 v$SQLAREA~  
可以看到SQL的长度,内存中的SQL语句...等等.使用这个你可以考虑是否去修改你的程序(或SQL), 如: 使用绑定变量,不要再分析语句等..

解决方案 »

  1.   

    但是实际不是这样的
    比如,v$SQLAREA的sql_text字段为1000字节,这样超过1000字节的sql就被截掉了
    我看帮助,关于sql_text的取值,应该是v$sqltext_with_newlines
      

  2.   

    怎么会是v$sqltext_with_newlines?  -_-!!!也许没看懂你的意思. :)
      

  3.   

    to chanet(牧师):我是看的oem top sql的帮助,在帮助中,他有关于每个字段的来源,其中,sql text这一项就是 来自v$sqltext_with_newlines
      

  4.   

    比如,v$SQLAREA的sql_text字段为1000字节,这样超过1000字节的sql就被截掉了截掉的部分作新行显示的吧
      

  5.   

    刚刚看了一下SQL代码在这里v$sqltext都有
    address,hash_value,command_type,piece,sql_text
    其中,如果SQL太长,则分成几行存放,以piece区分先后
    例如:
    select * from v$sqltext where address = 
    ( select sql_address from v$session where sid = 100 )
    order by piece
      

  6.   

    to  wiler(@_@) :“如果SQL太长,则分成几行存放,以piece区分先后”,这个我也知道那语句该怎么写?
      

  7.   

    cpu使用前10条SQL
    select * from v$sql a
    where rownum<11
    order by CPU_TIME desc
    磁盘读取前10
    select * from v$sql a
    where rownum<11
    order by DISK_READS desc
      

  8.   

    to wiler(@_@) :
    这个不行的,看来你是没有看前面,如果脚本超过1000个,就不能够完全显示了。还有高手么,谢谢!
      

  9.   

    with 
    tab_a as (
      select address from v$sql
      where rownum<11
      order by DISK_READS desc
    )
    select * from v$sqltext
    where address in (
      select address from tab_a
    )
    order by address,piece
      

  10.   

    V$sql.SQL_FULLTEXT,CLOB字段,能查到所有sql的全部
      

  11.   

    是的.有一个clob可以显示全部.