sql >> Database >  >> RDS >> Oracle

Hoe de uitvoeringstijd van query's voor een tabel met enorme gegevens te verminderen?

Kijkend naar wat u zei, kunt u geen indexen maken. Ik hoop dat de query een volledige tafelscan op de tafel maakt. Probeer een parallelle hint.

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. Trage indexering van 300GB Postgis-tabel

  2. Controleer/wijzig het compatibiliteitsniveau van een database in SQL Server (SSMS)

  3. Een rij verwijderen met een naar zichzelf verwijzende refererende sleutel

  4. String_agg voor meerdere kolommen