Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
Всем привет, подскажите. Есть у нас на работе MS SQL Express 2008 r2 sp2. На сколько я понял, в этой редакции ограничение на размер БД 10 ГБайт? Есть у нас БД, в ней есть таблица, которая занимает 6 ГБайт. Эту таблицу в Truncate Table. Далее смотрим, размер БД не изменился. Через свойства таблицы "хранилище" Managment Studio показывает "Пространство данных" 0 MB. А если сделать стандартный отчет "Использование дисковой памяти верхними таблицами" Данные в этой таблице занимают 6000 КБ. Что сделать, чтобы размер БД уменьшился на эти самые 6 ГБ после Truncate Table? Функция сжатия файла БД, после Truncate, показывает доступное свободное место 3% (200 МБ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 12:02 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
Elminzter, база, после удаление информации, не делает автоматическое освобождение места (т.к. чаще всего это не имеет смысла) освободить место можно самостоятельно изучив команду SHRINKFILE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 12:04 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
ElminzterЧто сделать, чтобы размер БД уменьшился на эти самые 6 ГБ после Truncate Table?сжать файлы. вы вынесли вещи из шкафа, но не вынесли шкаф из комнаты, вот в комнате и нет свободного места (из аналогии, прочитанной когда-то здесь на форуме) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 12:05 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
Вот я как-раз пишу в конце что SQL Studio после truncate table, если выбрать сжать файл БД, пишет, что Выделенное место 6227,44 МБ, Операция сжатия: сжать файл до: (минимум 6036 МБ). Грубо говоря DBCC SHRINKFILE не видит свободного пространства для сжатия более 192,38 МБ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 12:40 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
Elminzter, база FULL/SIMPLE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 12:43 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
ElminzterFULL ну раз вам там ничего не надо, переведите в SIMPLE и шринкуйте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 13:03 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
TaPaKElminzterFULL ну раз вам там ничего не надо, переведите в SIMPLE и шринкуйте Все тоже самое и для модели восстановления SIMPLE: После шринка доступное место стало 6124 МБ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 13:32 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
ElminzterTaPaKпропущено... ну раз вам там ничего не надо, переведите в SIMPLE и шринкуйте Все тоже самое и для модели восстановления SIMPLE: После шринка доступное место стало 6124 МБ. а лог будем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 13:32 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
TaPaKа лог будем?Так в этом окошке и показывает данные по файлу. Раз написано,что свободно 192,38 МБ, значит, так и есть. Что то автор напутал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 13:43 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
https://ibb.co/NrmwWcY][img] https://i.ibb.co/qCWbmT1/Whats-App-Image-2019-03-15-at-16-02-14.jpg [/img] https://ibb.co/7zCQXTv][img] https://i.ibb.co/RSbN9M2/Whats-App-Image-2019-03-15-at-16-01-51.jpg [/img] https://ibb.co/ct11hnz][img] https://i.ibb.co/5v66hHq/Whats-App-Image-2019-03-15-at-16-01-33.jpg [/img] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 14:06 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
alexeyvgTaPaKа лог будем?Так в этом окошке и показывает данные по файлу. Раз написано,что свободно 192,38 МБ, значит, так и есть. Что то автор напутал. Свободно из выделенного места. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 14:08 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
авторДанные в этой таблице занимают 6000 КБ брюки превращаются.... в 6ГБ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 14:09 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
Elminzter https://ibb.co/NrmwWcY][img] https://i.ibb.co/qCWbmT1/Whats-App-Image-2019-03-15-at-16-02-14.jpg [/img] https://ibb.co/7zCQXTv][img] https://i.ibb.co/RSbN9M2/Whats-App-Image-2019-03-15-at-16-01-51.jpg [/img] https://ibb.co/ct11hnz][img] https://i.ibb.co/5v66hHq/Whats-App-Image-2019-03-15-at-16-01-33.jpg [/img]Ну вот, видите, файл занят данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 14:11 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
ElminzteralexeyvgТак в этом окошке и показывает данные по файлу. Раз написано,что свободно 192,38 МБ, значит, так и есть. Что то автор напутал. Свободно из выделенного места.Нет, свободного места в файле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 14:13 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
alexeyvgElminzterСвободно из выделенного места.Нет, свободного места в файле.Хотя можно сказать "Свободно из выделенного места" В общем, вот файл, занимает на диске 6200 мегабайт. Из них 6000 занято вашими данными, а 200 свободно. Это по-простому, что бы не ловить семантическую разницу между "Свободно из выделенного места" и "свободного места в файле" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 14:17 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
Операция truncate не сразу освобождает данные. "Создается" новая пустая таблица и меняется "указатель" в метаданных (на root/first/IAM). Сама очистка данных это асинхронный процесс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 14:39 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
msLexОперация truncate не сразу освобождает данные. "Создается" новая пустая таблица и меняется "указатель" в метаданных (на root/first/IAM). Сама очистка данных это асинхронный процесс. Можно ли как-то повлиять на этот процесс? И допустим чтобы следующий раз удалять данные, попробовать через Drop Table? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 16:41 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
ElminztermsLexОперация truncate не сразу освобождает данные. "Создается" новая пустая таблица и меняется "указатель" в метаданных (на root/first/IAM). Сама очистка данных это асинхронный процесс. Можно ли как-то повлиять на этот процесс? И допустим чтобы следующий раз удалять данные, попробовать через Drop Table?Для начала посмотрите, сколько места занимают объекты в базе. Зачем вы идёте какими то сложными экзотическими путями, начинайте с простого. Процесс может и асинхронный, но не на час же? Никогда не сталкивался с тем, что место после транкейта было бы ещё занято, скажем, через секунду. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 16:48 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
мне всё таки интересно, как же решить такую загадку автор Данные в этой таблице занимают 6000 КБ. Что сделать, чтобы размер БД уменьшился на эти самые 6 ГБ после Truncate Table? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 16:55 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
TaPaK, DBCC CLEANTABLE https://docs.microsoft.com/ru-ru/sql/t-sql/database-console-commands/dbcc-cleantable-transact-sql?view=sql-server-2017 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 17:00 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
Slava_NikTaPaK, DBCC CLEANTABLE https://docs.microsoft.com/ru-ru/sql/t-sql/database-console-commands/dbcc-cleantable-transact-sql?view=sql-server-2017 трудности понимания слов в статье? ну и загадка совсем не о том.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 17:01 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
TaPaK, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. После выполняю скрипт alexeyvg Table Name File Group reserved_page_count reservedpages GB used_page_count usedpages GB pages rowCountdbo.Export_files PRIMARY 622420 4.75 622291 4.75 622289 33864 Итого прошло уже 5 часов, Студия показывает как во вложении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 20:44 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
Кажись все понятно. Нельзя в пятницу много работать. Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 20:51 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
Elminzter, ну и чего было? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 21:32 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
Santa89Elminzter, ну и чего было? Наверное вот это: ElminzterTaPaK, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. После выполняю скрипт alexeyvg Table Name File Group reserved_page_count reservedpages GB used_page_count usedpages GB pages rowCount dbo.Export_files PRIMARY 622420 4.75 622291 4.75 622289 33864 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 23:51 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
msLexОперация truncate не сразу освобождает данные. "Создается" новая пустая таблица и меняется "указатель" в метаданных (на root/first/IAM). Сама очистка данных это асинхронный процесс.Ради интереса сделал таблицу на 1Гб. Может процесс и асинхронный, но очень быстрый. Физически сервер явно не удаляет гигабайты данных. Код: sql 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2019, 00:05 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
ElminzterКажись все понятно. Я же говорил:alexeyvgЧто то автор напутал.Не надо начинать с дезасемблирования ядра сиквела и чтения блогов команды Database Engine Team. Нужно просто всё аккуратно проверить, по возможности делая всё скриптами, а не в GUI Тут много раз бывало: искали-искали ошибку, а в итоге оказывается, что автор выполнял действия на одном сервере, а проверял на другом :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2019, 11:04 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
MindmsLexСама очистка данных это асинхронный процесс.Ради интереса сделал таблицу на 1Гб. Может процесс и асинхронный, но очень быстрый. Физически сервер явно не удаляет гигабайты данных.Я, например, не слышал про асинхронность. Может, и есть такое, но не встречал упоминаний (только про очистку "пустых" страниц после DELETE). ИМХО это делается в транзакции, с соотв. блокировками чего нужно. Вот, например, в таких статьях пишут, что удаление ятраниц происходит внутри транзакции: https://www.sqlskills.com/blogs/paul/a-sql-server-dba-myth-a-day-(1930)-truncate-table-is-non-logged/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2019, 11:17 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
alexeyvgMindпропущено... Ради интереса сделал таблицу на 1Гб. Может процесс и асинхронный, но очень быстрый. Физически сервер явно не удаляет гигабайты данных.Я, например, не слышал про асинхронность. Может, и есть такое, но не встречал упоминаний (только про очистку "пустых" страниц после DELETE). ИМХО это делается в транзакции, с соотв. блокировками чего нужно. Вот, например, в таких статьях пишут, что удаление ятраниц происходит внутри транзакции: https://www.sqlskills.com/blogs/paul/a-sql-server-dba-myth-a-day-(1930)-truncate-table-is-non-logged/ Внутри другой, отложенной (deferred) транзакции, которая стартует сразу после той, которая разметила новый датаспейс под таблицу. Об этом даже по ссылке есть: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2019, 12:18 |
|
||
|
Truncate Table
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей АлексеевичВнутри другой, отложенной (deferred) транзакции, которая стартует сразу после той, которая разметила новый датаспейс под таблицу. Об этом даже по ссылке есть:О, спасибо! Вот ещё нашёл: how to deallocate the truncated table space Там пишут, что, действительно, шринк может не увидеть пространство до завершения асинхронного освобождения, но если серверу нужно будет пространство для новых данных, то он может выполнить освобождение принудительно. В общем, интересно, ещё ращз спасибо за наводку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2019, 12:31 |
|
||
|
|

start [/forum/topic.php?all=1&fid=46&tid=1688120]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
83ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 275ms |
| total: | 470ms |

| 0 / 0 |
