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

शीर्ष 100 प्रतिशत चुनें का उपयोग क्यों करें?

इसका उपयोग "मध्यवर्ती भौतिककरण (Google खोज)" के लिए किया गया था

अच्छा लेख:एडम मचानिक:इंटरमीडिएट भौतिककरण के रहस्यों की खोज

उन्होंने एक एमएस कनेक्ट भी बनाया ताकि इसे साफ-सुथरे तरीके से किया जा सके

मेरा विचार "स्वाभाविक रूप से बुरा नहीं है", लेकिन इसका उपयोग तब तक न करें जब तक कि 100% सुनिश्चित न हो। समस्या यह है, यह केवल उस समय काम करता है जब आप इसे करते हैं और शायद बाद में नहीं (पैच स्तर, स्कीमा, अनुक्रमणिका, पंक्ति गणना आदि)...

कार्य उदाहरण

यह विफल हो सकता है क्योंकि आप नहीं जानते कि किस क्रम में चीजों का मूल्यांकन किया जाता है

SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1 AND CAST(foo AS int) > 100

और यह विफल भी हो सकता है क्योंकि

SELECT foo
FROM
    (SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1) bar
WHERE
    CAST(foo AS int) > 100

हालाँकि, यह SQL Server 2000 में नहीं था। आंतरिक क्वेरी का मूल्यांकन और स्पूल किया जाता है:

SELECT foo
FROM
    (SELECT TOP 100 PERCENT foo From MyTable WHERE ISNUMERIC (foo) = 1 ORDER BY foo) bar
WHERE
    CAST(foo AS int) > 100

ध्यान दें, यह अभी भी SQL सर्वर 2005 में काम करता है

SELECT TOP 2000000000 ... ORDER BY...


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं एक अद्वितीय बाधा कैसे बना सकता हूं जो नल को भी अनुमति देता है?

  2. EF अनावश्यक नल-चेक के साथ SQL क्वेरी क्यों उत्पन्न कर रहा है?

  3. SQL सर्वर में IDENT_CURRENT बनाम @@ पहचान बनाम SCOPE_IDENTITY:क्या अंतर है?

  4. मैक्स बनाम टॉप 1 - कौन सा बेहतर है?

  5. सेलेक्ट स्टेटमेंट में Sum, Avg और काउंट का उपयोग कैसे करें - SQL सर्वर / TSQL ट्यूटोरियल पार्ट 128