sql >> Database >  >> RDS >> Sqlserver

SQL Server:INNER JOIN nadat UNION leidt tot trage Hash Match (Aggregate)

Ik heb situaties meegemaakt waarin UNION heeft een zoekopdracht veel langzamer gemaakt dan UNION ALL met een DISTINCT daarna. Dus hoewel ik geen verklaring heb voor het slechte zoekplan (statistieken en indexen zijn oké?), raad ik je aan het volgende te proberen:

select distinct * from (
    select * 
    from #finalResults
    where intervalEnd is not null
    union all
    select            
        two.startTime, 
        two.endTime,
        two.intervalEnd,
        one.barcodeID,
        one.id,
        one.pairId,
        one.bookingTypeID,
        one.cardID,
        one.factor,
        two.openIntervals,
        two.factorSumConcurrentJobs
    from #finalResults as one
    inner join #finalResults as two
        on  two.cardID = one.cardID
        and two.startTime > one.startTime
        and two.startTime < one.intervalEnd
)


  1. Perl + POO en Mysql-fout

  2. Hoe configureer ik onze MySQL ReplicationDriver voor onze JBoss 7-gegevensbron?

  3. Hoe een Oracle PL/SQL-object supermethode aan te roepen

  4. Doe mee met prestatieprobleem MySQL