powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Shrink file не делает release unused space в файле данных , когда там почти пусто
8 сообщений из 8, страница 1 из 1
Shrink file не делает release unused space в файле данных , когда там почти пусто
    #39713806
selis76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос -
кто сталкивался с таким поведением:
Есть максимально очищенный файл в группе Primary (данные перемещены в другой файл но в той же группе).
Осталось там только следующее

"DBCC SHRINKFILE: System table SYSFILES1 Page 1:154904 could not be moved to other files because it only can reside in the primary file of the database."

делаю
DBCC SHRINKFILE (N'MIS_PROD1' , TRUNCATEONLY)
GO
никакой реакции - файл остается того же размера
Делаю еще раз Reorganize pages и далее truncateonly никакой реакции (ну должен хоть сколько то дожать файл)
причем Minimum size dbcc показывает 288 "Минимальное количество 8-килобайтных страниц, которое может занимать файл. Оно соответствует минимальному размеру или размеру файла, указанному при создании."

Чем то эта ситуация напоминает тему http://www.sql.ru/forum/555865-2/shrinkdatabase-ne-sokrashhaet-fizicheskiy-razmer-bazy?hl=shrink initial
но там решения не нашли

Сергей С
...
Рейтинг: 0 / 0
Shrink file не делает release unused space в файле данных , когда там почти пусто
    #39713970
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76,

Еще раз прочитайте сообщение сервера со слова because
...
Рейтинг: 0 / 0
Shrink file не делает release unused space в файле данных , когда там почти пусто
    #39713984
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А сколько файлов у вашей базы?

З.Ы. Поиск в гугле не дает ответа, что делать со страницами этой системной таблицы. Но я предполагаю, что когда-то, когда в базу добавляли файлы, понадобилось более одной страницы, чтобы разместить информацию о файлах базы, вот она и упала на свободное на тот момент место.

З.Ы.Ы. Не размещайте пользовательские объекты в группе PRIMARY и жить станет несколько легче.
...
Рейтинг: 0 / 0
Shrink file не делает release unused space в файле данных , когда там почти пусто
    #39714322
selis76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей АлексеевичА сколько файлов у вашей базы?

З.Ы. Поиск в гугле не дает ответа, что делать со страницами этой системной таблицы. Но я предполагаю, что когда-то, когда в базу добавляли файлы, понадобилось более одной страницы, чтобы разместить информацию о файлах базы, вот она и упала на свободное на тот момент место.

З.Ы.Ы. Не размещайте пользовательские объекты в группе PRIMARY и жить станет несколько легче.

Ну это тестовая база, я там удалял массово некоторые таблицы.
Файлов в группе Primary 2 (на рабочей один файл) , да я его добавил недавно. Есть другие группы там 4 файла.
Я тоже предполагаю что какой то блок лежит гдето ближе к концу файла, но что тогда мешает SQL Server переместить ее если делать
DBCC SHRINKFILE (N'MIS_PROD1', NOTRUNCATE) ? В блокировках я таблицу не наблюдаю
...
Рейтинг: 0 / 0
Shrink file не делает release unused space в файле данных , когда там почти пусто
    #39714362
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76но что тогда мешает SQL Server переместить ее если делать
DBCC SHRINKFILE (N'MIS_PROD1', NOTRUNCATE) ?Ну, может там какие то особые типы страниц, которые не перемещаются? То есть это просто баг?

Вы ещё попробуйте шринкать в цикле, до некоего постоянно уменьшающегося target_size. (с шагом, например, 100мб)
...
Рейтинг: 0 / 0
Shrink file не делает release unused space в файле данных , когда там почти пусто
    #39714364
selis76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем проблема решилась если делать не shrinkfile
а shrinkdatabase. Сразу делается release unused space файлов, но чтобы она не работала дальше нужно ее срубить
С shrinkfile ничего не помогало
1) ни опускание базы в оффлайн и обратно в онлайн
2) ни различные комбинации запуска shrinkfile
Видимо какая то ошибка MS SQL, правда у меня SP3 2008r2 дальше уже некуда
...
Рейтинг: 0 / 0
Shrink file не делает release unused space в файле данных , когда там почти пусто
    #39714839
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
selis76В общем проблема решилась если делать не shrinkfile
а shrinkdatabase. Сразу делается release unused space файлов, но чтобы она не работала дальше нужно ее срубить
С shrinkfile ничего не помогало
1) ни опускание базы в оффлайн и обратно в онлайн
2) ни различные комбинации запуска shrinkfile
Видимо какая то ошибка MS SQL, правда у меня SP3 2008r2 дальше уже некуда
Скажите, а у вас таблицы случайно не кучи?
Если кучи - перестройте их предварительно Alter table rebuild.
...
Рейтинг: 0 / 0
Shrink file не делает release unused space в файле данных , когда там почти пусто
    #39714874
selis76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggsterСкажите, а у вас таблицы случайно не кучи?
Если кучи - перестройте их предварительно Alter table rebuild.
В файле осталась только одна таблица sysfiles1 - а по ней даже запрос нельзя сделать
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Shrink file не делает release unused space в файле данных , когда там почти пусто
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]