Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 ShrinkDatabase и ShrinkFile  [new]
Testor1
Member

Откуда:
Сообщений: 679
Всем привет!

Можете подсказать почему ShrinkDatabase(database, 0) и ShrinkFile(filename, 0) не всегда после первого запуска высвобождают все свободное место операционной системе? Иногда требуется процедуры запускать второй и третий раз.
1 ноя 13, 12:44    [15064047]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Glory
Member

Откуда:
Сообщений: 104751
Потому что данные команды освобождают незанятое место с концов файлов ? А не из середины.
1 ноя 13, 12:53    [15064111]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
mag2000
Member

Откуда:
Сообщений: 187
Testor1,
https://www.sql.ru/forum/afsearch.aspx?s=?? ?????????&bid=1
1 ноя 13, 12:59    [15064166]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Testor1
Member

Откуда:
Сообщений: 679
Glory
Потому что данные команды освобождают незанятое место с концов файлов ? А не из середины.


так я же не использую параметер TRUNCATEONLY.
1 ноя 13, 13:37    [15064527]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Glory
Member

Откуда:
Сообщений: 104751
Testor1
Glory
Потому что данные команды освобождают незанятое место с концов файлов ? А не из середины.


так я же не использую параметер TRUNCATEONLY.

И причем тут этот параметер ?
1 ноя 13, 13:41    [15064578]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Testor1
Member

Откуда:
Сообщений: 679
Glory
Testor1
пропущено...


так я же не использую параметер TRUNCATEONLY.

И причем тут этот параметер ?


TRUNCATEONLY
Освобождает все свободное пространство в конце файла операционной системе, но не перемещает страницы внутри файла. Файл данных сокращается только до последнего выделенного экстента. Аргумент target_percent не обрабатывается, если указан аргумент TRUNCATEONLY.
Аргумент TRUNCATEONLY оказывает влияние на файл журнала. Для усечения только файла данных используйте инструкцию DBCC SHRINKFILE.

Даже если бы было так как ты пишешь, то при втором и третьем запуске место бы из файла не высвобождалось бы!
1 ноя 13, 14:18    [15065018]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Glory
Member

Откуда:
Сообщений: 104751
Testor1
Даже если бы было так как ты пишешь, то при втором и третьем запуске место бы из файла не высвобождалось бы!

Вот вы откуда знаете, как распределены страницы данных по вашим файлам ? Вы точно знаете, что все они могут быть перемещены ?
Вы сверились с симптомами из The File Does Not Shrink статьи DBCC SHRINKFILE из хелпа ?

Сообщение было отредактировано: 1 ноя 13, 14:22
1 ноя 13, 14:21    [15065065]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Testor1
Member

Откуда:
Сообщений: 679
Glory
Testor1
Даже если бы было так как ты пишешь, то при втором и третьем запуске место бы из файла не высвобождалось бы!

Вот вы откуда знаете, как распределены страницы данных по вашим файлам ? Вы точно знаете, что все они могут быть перемещены ?
Вы сверились с симптомами из The File Does Not Shrink статьи DBCC SHRINKFILE из хелпа ?



The File Does Not Shrink
If the shrink operation runs without error, but the file does not appear to have changed in size, verify that the file has adequate free space to remove by performing one of the following operations:
Run the following query.
SELECT name ,size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS AvailableSpaceInMB
FROM sys.database_files;
Run the DBCC SQLPERF command to return the space used in the transaction log.
If insufficient free space is available, the shrink operation cannot reduce the file size any further.
Typically it is the log file that appears not to shrink. This is usually the result of a log file that has not been truncated. You can truncate the log by setting the database recovery model to SIMPLE, or by backing up the log and then running the DBCC SHRINKFILE operation again.


Просто поясни, почему при втором запуске с теми же параметрами произошли чудеса ?
1 ноя 13, 14:25    [15065099]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Glory
Member

Откуда:
Сообщений: 104751
Testor1
Просто поясни, почему при втором запуске с теми же параметрами произошли чудеса ?

Ага. Чумак - лечу по фотографии. И даже без фотографии.
1 ноя 13, 14:27    [15065111]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Testor1
Member

Откуда:
Сообщений: 679
Glory
Testor1
Просто поясни, почему при втором запуске с теми же параметрами произошли чудеса ?

Ага. Чумак - лечу по фотографии. И даже без фотографии.


а без юмора.
поясни как спец.
1 ноя 13, 14:35    [15065196]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Glory
Member

Откуда:
Сообщений: 104751
Testor1
Glory
пропущено...

Ага. Чумак - лечу по фотографии. И даже без фотографии.


а без юмора.
поясни как спец.

Вы хотите, что я вам назвал одну единственную причину, по которой у вас 5 минут назад не сработал шринк ?
1 ноя 13, 14:36    [15065205]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Testor1
Member

Откуда:
Сообщений: 679
Glory
Testor1
пропущено...


а без юмора.
поясни как спец.

Вы хотите, что я вам назвал одну единственную причину, по которой у вас 5 минут назад не сработал шринк ?


Еще раз
Шринк базы сработал и он из 39ГБ высвободил 10ГБ и завершил работу без ошибок
После запуска той же процедуры - высвободилось еще 19ГБ. Вопрос почему при первом же прогоне не высвободилось 29 ГБ ?
1 ноя 13, 14:51    [15065343]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Glory
Member

Откуда:
Сообщений: 104751
Testor1
Вопрос почему при первом же прогоне не высвободилось 29 ГБ ?

Все просто
Постройте машину времени.
Переметитесь во времени назад.
Проанализируйте все возможные варианты The File Does Not Shrink статьи DBCC SHRINKFILE.
1 ноя 13, 14:54    [15065383]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Testor1
Member

Откуда:
Сообщений: 679
Glory
Testor1
Вопрос почему при первом же прогоне не высвободилось 29 ГБ ?

Все просто
Постройте машину времени.
Переметитесь во времени назад.
Проанализируйте все возможные варианты The File Does Not Shrink статьи DBCC SHRINKFILE.



Файл не удалось сжать
Если операция сжатия выполняется без ошибки, но файл не изменяется в размере, убедитесь, что он имеет свободное пространство для удаления, выполнив одну из следующих операций.
Выполните следующий запрос.
SELECT name ,size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS AvailableSpaceInMB
FROM sys.database_files;
Выполните команду DBCC SQLPERF, чтобы освободить пространство, используемое журналом транзакций.
Если свободного пространства недостаточно, операция сжатия не сможет уменьшить размер файла в дальнейшем.
Обычно это файл журнала, который сжимается незначительно. Это характерно для файла журнала, который не может быть усечен. Можно усечь файл журнала, установив значение SIMPLE для модели восстановления базы данных или создав резервную копию журнала, а затем выполнив операцию DBCC SHRINKFILE снова. Дополнительные сведения см. в разделах Усечение журнала транзакций и Сжатие журнала транзакций.


И места свободного много было и на диске и в базе.
Журнал транзакции вообще 1 МБ занимал и занимает.
База тестовая и с ней ни кто из бизнес пользователей не работает.

Сервер MSSQL 2008 Ent без последних сервис паков. Может в этом дело.
1 ноя 13, 15:02    [15065437]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Glory
Member

Откуда:
Сообщений: 104751
Testor1
И места свободного много было и на диске и в базе.

Это вы все сейчас проверяте ? _После_ того, как шринк был успешно выполнен ?
Или вы это из прошлого пишите ?
1 ноя 13, 15:04    [15065451]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Testor1
Member

Откуда:
Сообщений: 679
Glory
Testor1
И места свободного много было и на диске и в базе.

Это вы все сейчас проверяте ? _После_ того, как шринк был успешно выполнен ?
Или вы это из прошлого пишите ?


До было 50 ГБ свободно.
1 ноя 13, 15:09    [15065494]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Glory
Member

Откуда:
Сообщений: 104751
Testor1
До было 50 ГБ свободно.

А что вы к свободному месту прицепились то ?
Вы вот сделали "Выполните команду DBCC SQLPERF" на момент, когда шринк не работал ?
Может DBCC OPENTRAN сделали на тот же момент ?
1 ноя 13, 15:12    [15065520]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Testor1
Member

Откуда:
Сообщений: 679
Glory
Testor1
До было 50 ГБ свободно.

А что вы к свободному месту прицепились то ?
Вы вот сделали "Выполните команду DBCC SQLPERF" на момент, когда шринк не работал ?
Может DBCC OPENTRAN сделали на тот же момент ?


Транзакций не могло быть открытых. Один пользователь работает

Сейчас повторно процедуру запустил шринк

DBCC SQLPERF(LOGSPACE)
по базе дало
LOg Space Log Space Used
141,8906 9,889123 0
1 ноя 13, 15:24    [15065634]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Testor1
Транзакций не могло быть открытых. Один пользователь работает
Для открытия одной транзакции как раз нужен один пользователь.
1 ноя 13, 15:26    [15065657]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Glory
Member

Откуда:
Сообщений: 104751
Testor1
Транзакций не могло быть открытых. Один пользователь работает

Вы _сейчас_ что пытаетесь доказать ?
Что у сервера _в прошлом_ не было причин не делать шринк что ли ?
1 ноя 13, 15:30    [15065709]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Testor1
Member

Откуда:
Сообщений: 679
Glory
Testor1
Транзакций не могло быть открытых. Один пользователь работает

Вы _сейчас_ что пытаетесь доказать ?
Что у сервера _в прошлом_ не было причин не делать шринк что ли ?


Хотел сказать, что в моем понимание для наличия открытой транзакции должна была быть не завершенная операция insert/update/delete. Я таковых не запускал.
1 ноя 13, 15:38    [15065786]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Glory
Member

Откуда:
Сообщений: 104751
Testor1
Хотел сказать, что в моем понимание для наличия открытой транзакции должна была быть не завершенная операция insert/update/delete. Я таковых не запускал.

Вы - не запускали. И что дальше ?
1 ноя 13, 15:40    [15065802]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Testor1
Member

Откуда:
Сообщений: 679
Glory
Testor1
Хотел сказать, что в моем понимание для наличия открытой транзакции должна была быть не завершенная операция insert/update/delete. Я таковых не запускал.

Вы - не запускали. И что дальше ?


По логике транзакций открытых не должно было быть
1 ноя 13, 15:49    [15065877]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Glory
Member

Откуда:
Сообщений: 104751
Testor1
Glory
пропущено...

Вы - не запускали. И что дальше ?


По логике транзакций открытых не должно было быть

Если бы я был на месте сервера, то я бы довно поддался на ваши уговоры и признал бы свою вину в невыполнении шринка.
1 ноя 13, 15:53    [15065904]     Ответить | Цитировать Сообщить модератору
 Re: ShrinkDatabase и ShrinkFile  [new]
Testor1
Member

Откуда:
Сообщений: 679
Glory
Testor1
пропущено...


По логике транзакций открытых не должно было быть

Если бы я был на месте сервера, то я бы довно поддался на ваши уговоры и признал бы свою вину в невыполнении шринка.


А может не умничать, а пояснить в чем дело в тех. деталях.
1 ноя 13, 15:55    [15065911]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить