求助:有大侠遇到过这种情况吗?Oracle里面对其他字段或者所有字段查询都很快,唯独对某个字段查询特别慢。两个字段类型是一致,也没有建立索引之类的东西两个字段都是NUMBER类型,长度精度为0
没有任何建立索引在代码里查询也是这样的。

解决方案 »

  1.   

    可以这样监控。
    select sid from v$mystat where rownum<2;
    会话id比如6399然后执行该慢sql。再开一个会话监控。
    select s.EVENT,s.SQL_ID,a.sql_text from v$session s,v$sqlarea a  where sid=6399 and s.sql_id=a.sql_id;
    看看是什么等待事件
      

  2.   


    事件是 SQL*Net message to client,不是很懂,正在百度
      

  3.   

    不对啊,你监控错会话了。要监控那个4秒多的会话,不是自己那个啊。sql_text要显示那个4秒多的sql
      

  4.   

    才4秒,看他最后查的event,很可能已经跑过去了才查的,还是让他收集10046更好点~
      

  5.   

    才4秒,看他最后查的event,很可能已经跑过去了才查的,还是让他收集10046更好点~
    你看他那个sql_text的输出就知道是自己跑的那个会话了。其实4秒已经够监控到什么等待事件了的。
    做10046也是可以的,不过这个简单些,10046他估计不会做不会看。
      

  6.   

    你要在168那同一个会话里面跑那个慢得sql。而不是另外开个。