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

क्या तालिका चर पढ़ने वाले प्रश्न SQL Server 2008 में समानांतर निष्पादन योजनाएँ उत्पन्न कर सकते हैं?

ठीक है, मेरे पास समानांतर चयन है लेकिन नहीं टेबल वेरिएबल पर

मैंने इसे गुमनाम कर दिया है और:

  • BigParallelTable 900k पंक्तियों और चौड़ी है
  • विरासत कारणों से, BigParallelTable आंशिक रूप से विकृत है (मैं इसे बाद में, वादा कर दूंगा)
  • BigParallelTable अक्सर समानांतर योजनाएँ बनाता है क्योंकि यह आदर्श नहीं है और "महंगी" है
  • SQL सर्वर 2005 x64, SP3, 4035, 16 कोर का निर्माण करें

प्रश्न + योजना:

DECLARE @FilterList TABLE (bar varchar(100) NOT NULL)

INSERT @FilterList (bar)
SELECT 'val1' UNION ALL 'val2' UNION ALL 'val3'

--snipped

SELECT
     *
FROM
    dbo.BigParallelTable BPT
    JOIN
    @FilterList FL ON BPT.Thing = FL.Bar

StmtText
  |--Parallelism(Gather Streams)
       |--Hash Match(Inner Join, HASH:([FL].[bar])=([BPT].[Thing]), RESIDUAL:(@FilterList.[bar] as [FL].[bar]=[MyDB].[dbo].[BigParallelTable].[Thing] as [BPT].[Thing]))
            |--Parallelism(Distribute Streams, Broadcast Partitioning)
            |    |--Table Scan(OBJECT:(@FilterList AS [FL]))
            |--Clustered Index Scan(OBJECT:([MyDB].[dbo].[BigParallelTable].[PK_BigParallelTable] AS [BPT]))

अब, इसके बारे में सोचते हुए, एक टेबल वैरिएबल लगभग हमेशा एक टेबल स्कैन होता है, इसमें कोई आंकड़े नहीं होते हैं और इसे एक पंक्ति माना जाता है "पंक्तियों की अनुमानित संख्या =1", "वास्तविक .. =3"।

क्या हम घोषित कर सकते हैं कि तालिका चर समानांतर में उपयोग नहीं किए जाते हैं, लेकिन युक्त योजना कहीं और समानता का उपयोग कर सकती है? तो BOL सही है और SQL संग्रहण आलेख गलत है



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL में पासवर्ड हैश करना

  2. GETDATE() SQL सर्वर में उदाहरण (T-SQL)

  3. SQL सर्वर में एक साथ कई कॉलम कैसे बदलें

  4. SQL सर्वर 2008 में तालिका पहचान को दोबारा कैसे बीजित करें और इसे सुरक्षित रूप से पूर्ववत करें?

  5. SQL-'08:क्या एकाधिक प्रतिस्थापन कथन एक बुरा अभ्यास है/क्या इस प्रश्न को लिखने का कोई और तरीका है?