Хоча скорочення небезпечно справді з причин, зазначених тут. Між відповіддю Джимбо та відповіддю Джона є щасливе середовище ... Ви завжди повинні серйозно задуматися про те, чи хочете ви зменшити свою базу даних.
В ідеальному світі - ви б створили свою БД з великою кількістю вільного простору. Я називаю це "правильним розміром" вашої бази даних. Ви б дозволили цьому вільному простору бути там, а не прагнути повернути його і зберегти загальний розмір прямо на використаний розмір .. Чому? Тому що ваша база даних з часом знову зростатиме. Тоді ви знову скорочуватиметесь .. І ви будете застрявати в цій жахливій схемі марних скорочень, що супроводжуються зростаннями - і весь час, як мало хто вказував, ви будете збільшуючи фрагментацію вашого індексу.
Я веду щоденник про це, де я закликав людей " Не торкайся цієї кнопки зменшення! ", Але іноді ... Іноді потрібно. Якщо у вас є велика база даних, ви просто звільнили значне місце і не сподіваєтесь на неї знову врости - ну тоді добре вважати скорочення як разовою операцією, поки ви зможете піклуватися про фрагментацію свого індексу згодом шляхом відновлення. їх. Операція скорочення може зайняти багато часу, тому ви хочете запланувати її на час, коли ви можете заплатити цю ціну скороченої роботи. Підхід створення порожнього БД та копіювання даних у нього працює - але це може стати дуже складним при великих базах даних та великій кількості даних.
Якщо ви плануєте додавати цей простір до БД за допомогою звичайних моделей використання та зростання в майбутньому, ви можете просто захотіти залишити місце там.
Також
Ви сказали, що "очистили" журнал транзакцій. Мені буде цікаво дізнатися, як ви це зробили, але, читаючи публікацію, про яку я поділився, та інші в серії, ви побачите поради щодо управління журналом транзакцій. Але коротше - якщо ви перебуваєте в режимі повного відновлення, вам слід регулярно робити резервні копії журналу, щоб журнал повторно використовував себе. Інакше - без резервного копіювання журналу, перебуваючи в повному режимі - файл журналу постійно зростає та зростає та зростає, і завжди зберігає те, що ви зробили, тому що ви сказали SQL, що ви не просто хочете підтримувати цей журнал для відновлення аварійних ситуацій, але хочете зберегти вручну створити резервну копію для відтворення транзакцій / скасування транзакцій для відновлення до певного моменту для цілей відновлення ... Якщо ви просто і бачите, щоб журнал надмірно зростав,BEGIN TRAN ... do work.... COMMIT TRAN
чи ви просто видали одну велику DELETE
заяву та видалили цілий безлад даних за одну неявну транзакцію.)
Я також припускаю, що ви шукаєте це вільне місце у вашій файловій системі. Якщо ви шукаєте його в SQL та в тому великому файлі, який у вас є - можливо, ви чекаєте завершення очищення привидів, якщо шукаєте відразу після операції. Блоги Пола Рандала про очищення від привидів .