Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एसक्यूएल सर्वर:यूनियन के बाद इनर जॉइन धीमी हैश मैच (कुल) की ओर जाता है

मैंने ऐसी परिस्थितियों का अनुभव किया है जहां UNION ने क्वेरी को UNION ALL . की तुलना में बहुत धीमा बना दिया है DISTINCT . के साथ उसके बाद। इसलिए जबकि मेरे पास खराब क्वेरी योजना के लिए कोई स्पष्टीकरण नहीं है (आंकड़े और अनुक्रमणिका ठीक हैं?), मेरा सुझाव है कि आप निम्न का प्रयास करें:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बेहतर डेटाबेस मॉनिटरिंग के लिए 5 SQL सिंटैक्स और क्वेरी सिद्धांत

  2. SQL सर्वर (T-SQL उदाहरण) में 'समय' को 'datetimeoffset' में बदलें

  3. समय के बीच डेटाबेस में एक साथ घटनाओं का पता लगाना

  4. डालने पर अंतिम पंक्ति के ऑटोइनक्रिकमेंट का मूल्य कैसे प्राप्त करें

  5. क्या टेबल कॉलम समान होने पर EXCEPT जॉइन से तेज़ी से निष्पादित होता है?