ฉันกำลังดำเนินการแบบสอบถามที่สร้างแผน:
สถิติ 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 รายงานตัวเลขที่สูงกว่า Statistics IO แต่ Profiler แสดงให้เห็นการ 92283
อ่านที่แบบสอบถามอธิบายการดำเนินการเดียวกัน นั่นหมายความว่า Profiler ไม่นับ workfile / worktable ที่อ่าน?
2. อะไรคือความแตกต่างระหว่าง "โต๊ะทำงาน" และ "Workfile"
ฉันได้พบว่า:
- สามารถใช้ไฟล์งานเพื่อเก็บผลลัพธ์ชั่วคราวสำหรับการรวมแฮชและการรวมแฮช
- ตารางงานสามารถใช้เพื่อเก็บผลลัพธ์ชั่วคราวสำหรับสปูลแบบสอบถาม, ตัวแปร lob, ตัวแปร XML และเคอร์เซอร์
มีความแตกต่างทางกายภาพบ้างไหม?
3. เหตุใดจึงมี "โต๊ะทำงาน" ในกรณีนี้โดยเฉพาะ?
เหตุใดฉันจึงมีโต๊ะทำงานเลยหากมีการอ่านแบบลอจิคัล 0 มันรวมอยู่ในสถิติ IO เพียงเพราะอาจมีความต้องการมัน (ในกรณีที่ประมาณการไม่ดี)?
คำอธิบายที่พบในtechnetดูเหมือนคลุมเครือ ..
4. "การอ่านทางกายภาพ" ใน Workfile หมายถึงอะไร
หมายความว่ามีหน่วยความจำไม่เพียงพอที่จะให้คิวรีดังนั้นจึงต้องเขียนข้อมูลลงดิสก์ขณะที่คิวรีดำเนินการ (คำเตือนสีเหลืองในการจับคู่แฮช)? ฉันสามารถสันนิษฐานได้หรือไม่ว่าเมื่อใดก็ตามที่ฉันเห็น worktable / workfile ใน Statistics IO ที่มีการอ่านฟิสิคัลมีหน่วยความจำไม่เพียงพอที่จะให้คิวรีได้ และเมื่อใดก็ตามที่ฉันเห็นเฉพาะการอ่านเชิงตรรกะจะใช้ RAM หรือไม่
5. หนึ่ง "workfile" หมายถึงหนึ่งตารางที่ใช้สำหรับจุดประสงค์เดียวหรือไม่
หากมีมากกว่าหนึ่งไฟล์ workfile / worktable ดังนั้นฉันไม่สามารถรู้ได้ว่ามันใช้งานอะไร?