DBCC ShrinkDatabase()
DBCC ShrinkFile()
- ฉันต้องรันทั้งสองคำสั่ง DBCC เพื่อลดขนาดฐานข้อมูลหรือไม่?
- ความแตกต่างระหว่างสองสิ่งข้างต้นนี้คืออะไร?
DBCC ShrinkDatabase()
DBCC ShrinkFile()
คำตอบ:
เพียงแค่ ...
DBCC ShrinkDatabase()
: ย่อขนาดไฟล์ทั้งหมดDBCC ShrinkFile()
: เพียงไฟล์เดียวตัวอย่างเช่นคุณอาจมีปัญหาในการสำรองข้อมูลและมันไม่สามารถใช้งานDBCC ShrinkFile()
ได้
คุณแทบไม่เคยใช้ShrinkDatabase
เลย
ก่อนที่คุณจะพิจารณาใช้คำสั่งทั้งสองโปรดอ่านบล็อกของ Paul Randal เกี่ยวกับการย่อขนาด
ฉันจะไม่ลดขนาดไฟล์ใดไฟล์หนึ่ง (mdf, ldf) เว้นแต่จะมีเหตุผลที่ชัดเจน ไฟล์มีขนาดเท่าที่ควรจะเป็น บล็อกใด ๆ ที่แนะนำให้ทำเช่นนี้เนื่องจากเป็นส่วนหนึ่งของการบำรุงรักษาปกติอาจไม่เข้าใจว่า SQL Server ทำงานอย่างไร
ฐานข้อมูลเริ่มต้นมีสองไฟล์
MyDb.MDF และ MyDb.LDF
ไฟล์ MDF เป็นไฟล์ข้อมูลที่มีพาร์ติชันหลักอยู่ ขึ้นอยู่กับความต้องการของคุณคุณสามารถแบ่งพาร์ติชันฐานข้อมูลออกเป็นหลายไฟล์ สิ่งนี้ทำเพื่อให้ข้อมูล (ตารางเดียวหรือหลายตาราง) สามารถขยายไฟล์หลาย ๆ ไฟล์ที่มักจะวางไว้ในฮาร์ดไดรฟ์แยกต่างหากเพื่อให้ได้ประสิทธิภาพที่สูงขึ้น
หากคุณลดขนาดฐานข้อมูลไฟล์ทั้งหมดที่เชื่อมโยงกับฐานข้อมูลนั้นจะหดตัวลง
หากคุณลดขนาดไฟล์เฉพาะไฟล์ที่เลือกเท่านั้นที่จะย่อขนาด
คุณจะต้องใช้คำสั่งย่อฐานข้อมูล แต่โดยปกติแล้วก็ไม่ใช่วิธีปฏิบัติที่ดีในการทำเช่นนี้และไม่ใช่วิธีปฏิบัติที่แนะนำเช่นกัน
หากคุณบอกเราว่าปัญหาที่คุณกำลังประสบคืออะไรเราสามารถให้ข้อมูลเพิ่มเติมเกี่ยวกับวิธีการแก้ไข
เป็นไปได้มากว่าเราจะใช้ dbcc shrinkfile sp_helpdb 'databasename' จัดทำรายการข้อมูล & ล็อกไฟล์ในฐานข้อมูล
คลิกขวาที่สตูดิโอ mnagement ไฟล์ task-> shrink-> ให้% ที่คุณสามารถย่อขนาดได้
สิ่งที่เราเคยหดมันเป็น avilable กลับบนดิสก์เป็นพื้นที่ว่าง
เช่น: ใช้ 'databasename' dbcc shrinkfile (fileid, 100)
ที่นี่ 100 คือ 100 MB
fileid สามารถรับได้จาก sp_helpdb 'databasename'