ฉันกำลังเรียกใช้สคริปต์ซึ่งดำเนินการ DBCC INDEXDEFRAG ในทุก ๆ ตารางในฐานข้อมูล SQL Server 2005 หนึ่งตารางต่อครั้ง การใช้ DBCC DBREINDEX แทนที่จะเป็น INDEXDEFRAG ไม่ใช่ตัวเลือกเนื่องจากข้อ จำกัด ด้านพื้นที่และข้อกำหนดเกี่ยวกับสถานะการออนไลน์
ฉันสังเกตว่าต้องใช้เวลานานกว่าปกติในการจัดระเบียบตาราง ตัวอย่างเช่นถ้าฉันตรวจสอบมุมมองการจัดการแบบไดนามิก "sys.dm_exec_requests" ฉันจะเห็นว่า INDEXDEFRAG ต่อไปนี้กำลังปั่นออกไปในดัชนีคลัสเตอร์ของตารางที่มี table_id ของ 829610394:
DBCC INDEXDEFRAG (0, 829610394, 1)
ฉันรู้ว่ามันจะใช้เวลานานก่อนที่กระบวนการจัดเรียงข้อมูลจะเสร็จสมบูรณ์ หากข้อเท็จจริงที่ว่าสคริปต์ที่กำลังทำงานอยู่ในที่สุดจะจัดเรียงข้อมูลในตารางทั้งหมดจะมีอันตรายใด ๆ ในตัวฉันที่รัน DBCC INDEXDEFRAG ด้วยตนเองในดัชนีคลัสเตอร์ของตารางอื่นในขณะที่คำสั่งปัจจุบันทำงานหรือไม่ จริง ๆ แล้วทั้งสองตารางจะถูกจัดระเบียบในเวลาเดียวกันถ้าฉันทำเช่นนี้?