ในขณะที่การหดตัวเป็นอันตรายแน่นอนด้วยเหตุผลที่กล่าวถึงที่นี่ มีสื่อความสุขระหว่างคำตอบของ Jimbo และคำตอบของ John ... คุณควรพิจารณาอย่างจริงจังเสมอว่าคุณต้องการลดขนาดฐานข้อมูลของคุณหรือไม่
ในโลกอุดมคติ - คุณต้องสร้างฐานข้อมูลของคุณด้วยพื้นที่ว่างมากมายเพื่อเติบโต ฉันเรียกสิ่งนี้ว่า "Right Sizing" ฐานข้อมูลของคุณ คุณจะอนุญาตให้มีพื้นที่ว่างนี้และไม่พยายามให้คืนและรักษาขนาดโดยรวมให้เหมาะสมกับขนาดที่คุณใช้ .. ทำไม? เพราะฐานข้อมูลของคุณจะเติบโตอีกครั้ง .. จากนั้นคุณจะหดอีกครั้ง .. และคุณจะติดอยู่ในรูปแบบที่น่ากลัวของการหดตัวที่ไร้ประโยชน์ตามด้วยการเติบโต - และตลอดเวลา เพิ่มการกระจายตัวของดัชนีของคุณ
ฉัน blogged เกี่ยวกับสิ่งนี้ที่ฉันตักเตือนคนที่ " อย่าสัมผัสปุ่มที่หดตัว! " แต่บางครั้ง ... บางครั้งคุณต้อง หากคุณมีฐานข้อมูลขนาดใหญ่เพียงแค่ปล่อยพื้นที่ว่างที่สำคัญและอย่าคาดหวังว่าจะเติบโตขึ้นมาอีกครั้งมันก็โอเคที่จะต้องพิจารณาการลดขนาดเป็นการดำเนินการเพียงครั้งเดียวตราบใดที่คุณสามารถดูแลการแตกแฟรกเมนต์ดัชนีของคุณ พวกเขา การหดตัวอาจใช้เวลานานดังนั้นคุณต้องการวางแผนสำหรับช่วงเวลาที่คุณสามารถจ่ายราคาของการลดขนาด วิธีการสร้างฐานข้อมูลที่ว่างเปล่าและการคัดลอกข้อมูลเข้าสู่การทำงาน - แต่มันอาจเป็นเรื่องยากมากกับฐานข้อมูลขนาดใหญ่และข้อมูลจำนวนมาก
หากคุณวางแผนที่จะเพิ่มพื้นที่นั้นกลับไปที่ฐานข้อมูลผ่านการใช้งานปกติและรูปแบบการเติบโตในอนาคตคุณอาจต้องการออกจากพื้นที่นั้น
ด้วย
คุณบอกว่าคุณ "เคลียร์" บันทึกธุรกรรมของคุณ ฉันอยากรู้ว่าคุณทำสิ่งนี้อย่างไร แต่เมื่อคุณอ่านโพสต์ที่ฉันแชร์และคนอื่น ๆ ในซีรีส์คุณจะเห็นคำแนะนำเกี่ยวกับการจัดการบันทึกธุรกรรม แต่ในระยะสั้น - หากคุณอยู่ในโหมดการกู้คืนแบบเต็มคุณควรทำการสำรองข้อมูลบันทึกปกติเพื่อให้บันทึกนำมาใช้ซ้ำ มิฉะนั้น - โดยไม่มีการสำรองข้อมูลบันทึกขณะที่อยู่ในโหมดเต็ม - ไฟล์บันทึกช่วยให้การเติบโตและการเติบโตและการเติบโตและการบันทึกสิ่งที่คุณทำเพราะคุณบอก SQL คุณไม่เพียงแค่ต้องการรักษาบันทึกนั้นเพื่อการกู้คืนความผิดพลาด แต่ต้องการเก็บ การสำรองข้อมูลด้วยตนเองของมันเพื่อเล่นซ้ำธุรกรรม / เลิกทำธุรกรรมเพื่อกู้คืนไปยังจุดที่กำหนดในเวลาสำหรับการกู้คืน ... หากคุณอยู่ในที่เรียบง่ายและเห็นบันทึกการเติบโตมากเกินไปBEGIN TRAN ... do work.... COMMIT TRAN
หรือไม่ว่าคุณเพิ่งจะออกDELETE
คำสั่งขนาดใหญ่หนึ่งคำสั่งและลบข้อมูลทั้งหมดในธุรกรรมโดยนัยเดียว)
ฉันยังสมมติว่าคุณกำลังมองหาพื้นที่ว่างบนระบบไฟล์ของคุณ หากคุณกำลังมองหามันใน SQL และในไฟล์ขนาดใหญ่ที่คุณมี - อาจเป็นไปได้ว่าคุณกำลังรอการล้างข้อมูลผีให้เสร็จสมบูรณ์หากค้นหาทันทีหลังจากการดำเนินการของคุณ พอล Randal บล็อกเกี่ยวกับการล้างข้อมูลบนผี