DBCC ShrinkDatabase()
DBCC ShrinkFile()
- Чи потрібно запускати обидві команди DBCC, щоб зменшити базу даних?
- Яка різниця між цими двома вище?
DBCC ShrinkDatabase()
DBCC ShrinkFile()
Відповіді:
Просто ...
DBCC ShrinkDatabase()
: зменшити всі файлиDBCC ShrinkFile()
: лише один файлНаприклад, у вас може виникнути проблема резервного копіювання журналу, і він вийшов з-під контролю, щоб ви запустили DBCC ShrinkFile()
.
Ви майже ніколи не використовуєте ShrinkDatabase
.
Перш ніж розглянути можливість використання будь-якої команди, будь ласка, прочитайте блог Пола Рандала про скорочення .
Я б не скоротив жодного з файлів (mdf, ldf), якщо б не було чіткої причини. Файли мають такий розмір, оскільки вони повинні бути. Будь-які блоги, які пропонують зробити це як частина регулярного обслуговування, напевно, не розуміють, як працює SQL Server.
База даних за замовчуванням має два файли
MyDb.MDF та MyDb.LDF
Файл MDF - це файл даних, де знаходиться первинний розділ. Залежно від ваших потреб, ви можете розділити базу даних на кілька файлів. Це робиться для того, щоб дані (одна чи кілька таблиць) могли охоплювати декілька файлів, які зазвичай ставлять на окремих жорстких дисках для досягнення більшої продуктивності.
Якщо ви зменшите базу даних, усі файли, пов’язані з цією базою даних, будуть скорочені.
Якщо ви зменшите файл, тоді буде вибрано лише вибраний файл.
Вам потрібно лише скористатися командою Зменшити базу даних. Але зазвичай це не є хорошою практикою, і це також не рекомендується.
Якщо ви скажете нам, у чому полягає проблема, з якою ви стикаєтесь, ми можемо дати вам більше інформації щодо її вирішення.
Швидше за все, ми використовуємо лише dbcc shrinkfile. sp_helpdb 'ім'я бази даних' надає список файлів даних і журналів у базі даних.
клацніть правою кнопкою миші на студії управління, задач-> зменшити-> файл дає скільки відсотків ви можете зменшити.
те, що ми колись стискаємо, - це вільне місце на диску, як вільний простір.
наприклад: використовувати 'ім'я бази даних' dbcc shrinkfile (fileid, 100)
тут 100 - 100 Мб
fileid може отримати від sp_helpdb 'ім'я бази даних'