เรากำลังถกเถียงกันว่าจะใช้ตัวเลือก SORT_IN_TEMPDB สำหรับตาราง DW ของเราหรือไม่ ความเข้าใจของฉันคือว่ามีการเขียนเพิ่มเติมเมื่อใช้ตัวเลือกนี้แม้ว่าพวกเขาจะเรียงตามลำดับมากขึ้น เรามี SAN (ซึ่งช้ามากในบางครั้ง) ดังนั้นในกรณีของเราเราต้องการ จำกัด จำนวนการเขียนให้มากที่สุด ฉันเชื่อว่า tempdb อยู่ใน LUN แยกต่างหาก (ชุดของดิสก์)
เรามีพื้นที่ดิสก์มากมายในไฟล์ข้อมูลและไฟล์ tempdb ของเรา ในกรณีนี้เราจะได้ประโยชน์จากการใช้ SORT_IN_TEMPDB ไหม
สิ่งหนึ่งที่ทำให้ฉันรู้สึกแย่คือความเห็นต่อคำตอบนี้
เมื่อสร้างดัชนีใหม่คุณจะต้องมีพื้นที่ว่างสองเท่าของดัชนี + 20% สำหรับการเรียงลำดับ โดยทั่วไปแล้วการสร้างดัชนีทุกครั้งในฐานข้อมูลของคุณคุณต้องการเพียง 120% ของดัชนีที่ใหญ่ที่สุดในฐานข้อมูลของคุณ หากคุณใช้ SORT_IN_TEMPDB คุณจะได้รับเพียง 20% คุณยังคงต้องการ aditional 100% ในไฟล์ข้อมูลของคุณ ยิ่งไปกว่านั้นการใช้ sort in tempdb จะเพิ่มการโหลด IO ของคุณอย่างมากเนื่องจากแทนที่จะเขียนดัชนีหนึ่งครั้งไปยัง datafile ตอนนี้คุณเขียนมันหนึ่งครั้งไปยัง tempdb แล้วเขียนลงในไฟล์ข้อมูล ดังนั้นจึงไม่เหมาะเสมอไป
แน่นอนว่าเราไม่ต้องการเพิ่มโหลด IO ของเราด้วย SAN ที่ช้า / อาจผิดพลาด
อะไรจะเป็นวิธีที่ดีที่สุดในการทดสอบสิ่งนี้? โดยเพียงแค่สร้างตารางขึ้นใหม่โดยมีและไม่มีตัวเลือกและบันทึกเวลา?
แก้ไข : เรามีไฟล์ 8 tempdb แต่ละไฟล์ 15GB เรามีการตั้งค่าสถานะ TF 1117/1118 และเปิดใช้งาน IFI แล้ว ขณะนี้เรากำลังผสมการสร้างใหม่ด้วยตัวเลือก sort_in_tempdb และไม่รวม
ขอบคุณ!
องค์กร SQL Server 2012