मैं एक्जीक्यूट क्वेरी हूं, जो प्लान तैयार करता है:
सांख्यिकी IO:
Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'Workfile'. Scan count 128, logical reads 5952, physical reads 576, read-ahead reads 6080, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'Table1'. Scan count 9, logical reads 90450, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
तो, कुछ सवाल
1. क्यों सांख्यिकी IO Profiler की तुलना में अधिक पढ़ता है? ।
के रूप में KB314648 यह ठीक है अगर अगर प्रोफाइलर सांख्यिकी आईओ की तुलना में अधिक संख्या की रिपोर्ट। लेकिन Profiler शो 92283
वर्णित क्वेरी पर पढ़ता है, वही निष्पादन। इसका मतलब यह है कि Profiler workfile / worktable पढ़ता गिनती नहीं है?
2. "वर्कटेबल" और "वर्कफाइल" में क्या अंतर है
मैंने पाया है कि:
- हैश जॉन्स और हैश एग्रीगेट्स के लिए अस्थायी परिणाम संग्रहीत करने के लिए कार्य फ़ाइलों का उपयोग किया जा सकता है।
- कार्य तालिका का उपयोग क्वेरी स्पूल, लोब वेरिएबल्स, एक्सएमएल वेरिएबल्स और कर्सर्स के लिए अस्थायी परिणाम स्टोर करने के लिए किया जा सकता है।
क्या उनके बीच कुछ शारीरिक अंतर है?
3. इस विशेष मामले में "वर्कटेबल" क्यों है?
अगर मेरे पास 0 तार्किक रीड है, तो मेरे पास काम करने योग्य क्यों है? इसके आँकड़े IO में सिर्फ इसलिए शामिल हैं क्योंकि इसके लिए आवश्यकता हो सकती है (खराब अनुमान के मामले में)?
विवरण तकनीकी पर पाया अस्पष्ट लगता है ..
4. Workfile पर "भौतिक पाठ" क्या है?
क्या इसका मतलब यह है कि क्वेरी के लिए पर्याप्त मेमोरी नहीं दी गई थी, इसलिए डेटा को डिस्क पर लिखा जाना चाहिए था, जबकि क्वेरी निष्पादित (एचटीएल मैच पर पीला चेतावनी)? क्या मैं यह मान सकता हूं कि जब भी मैं शारीरिक पढ़ने के साथ सांख्यिकी IO में काम करने योग्य / वर्कफ़ाइल देखता हूं, तो क्वेरी के लिए पर्याप्त मेमोरी नहीं दी गई है और क्वेरी के कुछ मध्यवर्ती परिणामों को tempdb डिस्क पर लिखा जाना था? और जब भी मैं केवल तार्किक रीड्स देखता हूं, RAM का उपयोग किया जाता है?
5. वन "वर्कफ़ाइल" का अर्थ ठीक एक तालिका है जिसका उपयोग एक उद्देश्य के लिए किया जाता है?
अगर वहाँ अधिक है कि एक workfile / worktable तो मैं नहीं जानता कि यह किस ऑपरेशन के लिए प्रयोग किया जाता है?