Хотя сокращение действительно опасно по причинам, указанным здесь. Между ответом Джимбо и ответом Джона есть хорошая середина ... Вы всегда должны серьезно задуматься, хотите ли вы уменьшить свою базу данных.
В идеальном мире - вы бы создали свою БД с большим количеством свободного пространства для роста. Я называю это "Правильный размер" вашей базы данных. Вы бы позволили этому свободному пространству быть там и не стремились его вернуть и сохранили ваш общий размер прямо на вашем использованном размере. Почему? Потому что ваша база данных со временем снова вырастет ... Затем вы снова сократитесь ... И вы застрянете в этой ужасной схеме бесполезных сокращений, сопровождаемых ростом - и все время, как указали немногие, вы будете увеличивая вашу фрагментацию индекса.
Я написал в блоге об этом, где я увещевал людей: « Не прикасайтесь к этой термоусадочной кнопке! », Но иногда ... Иногда вам нужно. Если у вас есть большая база данных, вы только что освободили значительное пространство и не рассчитываете на ее дальнейшее увеличение - хорошо, тогда можно считать сжатие однократной операцией, если впоследствии вы сможете позаботиться о фрагментации индекса с помощью перестройки их. Операция сжатия может занимать много времени, поэтому вам нужно запланировать ее на время, когда вы можете заплатить эту цену за работу сокращения. Подход к созданию пустой БД и копированию в нее данных работает, но это может стать очень трудным с большими базами данных и большим количеством данных.
Если вы планируете добавить это пространство обратно в БД с помощью обычного использования и моделей роста в будущем, то вы можете просто оставить это место там.
Также
Вы сказали, что «очистили» свой журнал транзакций. Мне было бы любопытно узнать, как вы это сделали, но, прочитав пост, которым я поделился, и другие статьи этой серии, вы увидите несколько советов по управлению журналом транзакций. Но вкратце - если вы находитесь в режиме полного восстановления, вы должны регулярно делать резервные копии журналов, чтобы журнал сам себя использовал повторно. В противном случае - без резервного копирования журнала в полноэкранном режиме - файл журнала продолжает расти, расти и расти и всегда сохраняет то, что вы сделали, потому что вы сказали SQL, что вы не просто хотите поддерживать этот журнал для восстановления после сбоя, но хотите сохранить его ручное резервное копирование для воспроизведения транзакций / отмены транзакций для восстановления к определенному моменту времени для целей восстановления ... Если у вас все просто и вы видите, что журнал чрезмерно растет,BEGIN TRAN ... do work.... COMMIT TRAN
или вы просто сделали одно большое DELETE
заявление и удалили целый беспорядок данных в одной неявной транзакции.)
Я также предполагаю, что вы ищете это свободное место в вашей файловой системе. Если вы ищете его в SQL и в том большом файле, который у вас есть - возможно, вы ожидаете завершения очистки ghost, если ищете сразу после своей операции. Пол Рэндал пишет о Ghost Cleanup .