sql >> データベース >  >> RDS >> Oracle

巨大なデータを含むテーブルのクエリ実行時間を短縮する方法

    インデックスを作成できないとあなたが言ったことを見てください。クエリがテーブルの全表スキャンを行っていることを願っています。パラレルヒントを試してください。

    select /*+ full(so) parallel(so, 4) */ 0 test_section, count(1) count, 'DD' test_section_value  
    from svc_order so, event e  
    where so.svc_order_id = e.svc_order_id  
      and so.entered_date >= to_date('01/01/2012', 'MM/DD/YYYY')  
      and e.event_type = 230 and e.event_level = 'O'  
      and e.current_sched_date between 
          to_date( '09/01/2010 00:00:00', 'MM/DD/YYYY HH24:MI:SS')
          and to_date('09/29/2013 23:59:59', 'MM/DD/YYYY HH24:MI:SS')  
      and (((so.sots_ta = 'N') and (so.action_type = 0)) 
           or  ((so.sots_ta is null) and (so.action_type = 0)) 
           or  ((so.sots_ta = 'N') and (so.action_type is null)))
      and so.company_code = 'LL'
    


    1. CHAR / VARCHARインデックスを使用すると、MySQLクエリのパフォーマンスが非常に悪いのはなぜですか?

    2. SQLGROUPBY-プロのように結果をグループ化するための3つの簡単なヒント

    3. データベースレベル自体でクエリを介して非シリアル化

    4. MySQLは、値が空でない場合にのみ列を更新します。