在一次SELECT操作中只查出4000条左右的记录(SELECT了60几个字段),
却用TKPROF出来的报告中,发现这个查询出现400次的FETCH操作呢??请问这是什么原因造成的呀?
是有什么设置限制了每次FETCH的量吗,如果是如何设大,还是别的什么原因。
望达人指教。*
这个查询的结构基本如下:SELECT 
 
FROM
 (
   SELECT 
    
   FROM
    (
       SELECT
        
       FROM
        (
            SELECT
              
            FROM
             V_TABLE,--这个视图很大,用4个UNION ALL连几个大表
             T_OTHERS --其它很多表的联接
            WHERE
             
         )
       WHERE
        
     )
   WHERE
     
 )
WHERE
  

解决方案 »

  1.   

    每种类型的语句都需要如下阶段:
    •        第1步: Create a Cursor     创建游标
    •        第2步: Parse the Statement  分析语句
    •        第5步: Bind Any Variables    绑定变量
    •        第7步: Run the Statement    运行语句
    •        第9步: Close the Cursor     关闭游标
    如果使用了并行功能,还会包含下面这个阶段:
    •        第6步: Parallelize the Statement   并行执行语句
    如果是查询语句,则需要以下几个额外的步骤
    •        第3步: Describe Results of a Query   描述查询的结果集
    •        第4步: Define Output of a Query      定义查询的输出数据
    •        第8步: Fetch Rows of a Query        取查询出来的行
    你说fetch就是对应 的确第8个操作了.
      

  2.   

    只是普通的查询。你说的LIMIT是那个BULK COLLECT INTO的吗?那个只能在存储过程中用PL/SQL才能用的吧?
    我只是普通SQL查询。
      

  3.   


    wkc168好像说的是MYSQL吧?我用的ORACLE。