Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Elminzter Member Откуда: Сообщений: 13 |
Всем привет, подскажите. Есть у нас на работе MS SQL Express 2008 r2 sp2. На сколько я понял, в этой редакции ограничение на размер БД 10 ГБайт? Есть у нас БД, в ней есть таблица, которая занимает 6 ГБайт. Эту таблицу в Truncate Table. Далее смотрим, размер БД не изменился. Через свойства таблицы "хранилище" Managment Studio показывает "Пространство данных" 0 MB. А если сделать стандартный отчет "Использование дисковой памяти верхними таблицами" Данные в этой таблице занимают 6000 КБ. Что сделать, чтобы размер БД уменьшился на эти самые 6 ГБ после Truncate Table? Функция сжатия файла БД, после Truncate, показывает доступное свободное место 3% (200 МБ). |
15 мар 19, 12:02 [21833532] Ответить | Цитировать Сообщить модератору |
StarikNavy Member Откуда: Москва Сообщений: 2396 |
Elminzter, база, после удаление информации, не делает автоматическое освобождение места (т.к. чаще всего это не имеет смысла) освободить место можно самостоятельно изучив команду SHRINKFILE |
15 мар 19, 12:04 [21833537] Ответить | Цитировать Сообщить модератору |
Щукина Анна Member Откуда: Сообщений: 1507 |
вы вынесли вещи из шкафа, но не вынесли шкаф из комнаты, вот в комнате и нет свободного места (из аналогии, прочитанной когда-то здесь на форуме) :) |
||
15 мар 19, 12:05 [21833538] Ответить | Цитировать Сообщить модератору |
Щукина Анна Member Откуда: Сообщений: 1507 |
Щукина Анна, первоисточник, если что |
15 мар 19, 12:07 [21833542] Ответить | Цитировать Сообщить модератору |
Elminzter Member Откуда: Сообщений: 13 |
Вот я как-раз пишу в конце что SQL Studio после truncate table, если выбрать сжать файл БД, пишет, что Выделенное место 6227,44 МБ, Операция сжатия: сжать файл до: (минимум 6036 МБ). Грубо говоря DBCC SHRINKFILE не видит свободного пространства для сжатия более 192,38 МБ. К сообщению приложен файл. Размер - 121Kb |
15 мар 19, 12:40 [21833605] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
Elminzter, база FULL/SIMPLE? |
15 мар 19, 12:43 [21833608] Ответить | Цитировать Сообщить модератору |
Elminzter Member Откуда: Сообщений: 13 |
FULL |
15 мар 19, 13:02 [21833657] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
ну раз вам там ничего не надо, переведите в SIMPLE и шринкуйте |
||
15 мар 19, 13:03 [21833662] Ответить | Цитировать Сообщить модератору |
Elminzter Member Откуда: Сообщений: 13 |
Все тоже самое и для модели восстановления SIMPLE: После шринка доступное место стало 6124 МБ. |
||||
15 мар 19, 13:32 [21833732] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
а лог будем? |
||||
15 мар 19, 13:32 [21833734] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31779 |
Что то автор напутал. |
||
15 мар 19, 13:43 [21833757] Ответить | Цитировать Сообщить модератору |
Elminzter Member Откуда: Сообщений: 13 |
alexeyvg, |
15 мар 19, 14:04 [21833816] Ответить | Цитировать Сообщить модератору |
Elminzter Member Откуда: Сообщений: 13 |
[img]https://i.ibb.co/qCWbmT1/Whats-App-Image-2019-03-15-at-16-02-14.jpg[/img] [img]https://i.ibb.co/RSbN9M2/Whats-App-Image-2019-03-15-at-16-01-51.jpg[/img] [img]https://i.ibb.co/5v66hHq/Whats-App-Image-2019-03-15-at-16-01-33.jpg[/img] |
15 мар 19, 14:06 [21833823] Ответить | Цитировать Сообщить модератору |
Elminzter Member Откуда: Сообщений: 13 |
Свободно из выделенного места. |
||||
15 мар 19, 14:08 [21833831] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
брюки превращаются.... в 6ГБ? |
||
15 мар 19, 14:09 [21833833] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31779 |
|
15 мар 19, 14:11 [21833838] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31779 |
|
||||
15 мар 19, 14:13 [21833841] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31779 |
В общем, вот файл, занимает на диске 6200 мегабайт. Из них 6000 занято вашими данными, а 200 свободно. Это по-простому, что бы не ловить семантическую разницу между "Свободно из выделенного места" и "свободного места в файле" |
||||
15 мар 19, 14:17 [21833854] Ответить | Цитировать Сообщить модератору |
msLex Member Откуда: Сообщений: 8702 |
Операция truncate не сразу освобождает данные. "Создается" новая пустая таблица и меняется "указатель" в метаданных (на root/first/IAM). Сама очистка данных это асинхронный процесс. |
15 мар 19, 14:39 [21833903] Ответить | Цитировать Сообщить модератору |
Elminzter Member Откуда: Сообщений: 13 |
Можно ли как-то повлиять на этот процесс? И допустим чтобы следующий раз удалять данные, попробовать через Drop Table? |
||
15 мар 19, 16:41 [21834077] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31779 |
Зачем вы идёте какими то сложными экзотическими путями, начинайте с простого. Процесс может и асинхронный, но не на час же? Никогда не сталкивался с тем, что место после транкейта было бы ещё занято, скажем, через секунду. SELECT schema_name(o.schema_id) + '.' + o.name as [Table Name], fg.name as [File Group], SUM (p.reserved_page_count) as [reserved_page_count], convert(decimal(13,2), SUM (p.reserved_page_count) * 8. / 1024 / 1024) as [reservedpages GB], SUM (p.used_page_count) as [used_page_count], convert(decimal(13,2), SUM (p.used_page_count) * 8. / 1024 / 1024) as [usedpages GB], SUM ( CASE WHEN (p.index_id < 2) THEN (p.in_row_data_page_count + p.lob_used_page_count + p.row_overflow_used_page_count) ELSE p.lob_used_page_count + p.row_overflow_used_page_count END ) as pages, SUM ( CASE WHEN (p.index_id < 2) THEN p.row_count ELSE 0 END ) as [rowCount] FROM sys.dm_db_partition_stats p (nolock) join sys.objects as o (nolock) on o.object_id = p.object_id and o.type = 'U' join sys.sysindexes i (nolock) on i.id = o.object_id and i.indid in (0,1) join sys.filegroups fg (nolock) on fg.data_space_id = i.groupid group by o.name, o.schema_id, fg.name order by [reservedpages GB] desc --order by [usedpages GB] desc |
||||
15 мар 19, 16:48 [21834083] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
мне всё таки интересно, как же решить такую загадку
|
||
15 мар 19, 16:55 [21834088] Ответить | Цитировать Сообщить модератору |
Slava_Nik Member Откуда: из России Сообщений: 891 |
TaPaK, DBCC CLEANTABLE https://docs.microsoft.com/ru-ru/sql/t-sql/database-console-commands/dbcc-cleantable-transact-sql?view=sql-server-2017 |
15 мар 19, 17:00 [21834097] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
трудности понимания слов в статье? ну и загадка совсем не о том.. |
||
15 мар 19, 17:01 [21834099] Ответить | Цитировать Сообщить модератору |
Elminzter Member Откуда: Сообщений: 13 |
TaPaK,USE UPD_E GO Truncate table dbo.AKP_Files GO USE UPD_E GO DBCC CLEANTABLE (UPD_E, AKP_Files,0) GO После выполняю скрипт alexeyvg
Итого прошло уже 5 часов, Студия показывает как во вложении. К сообщению приложен файл. Размер - 141Kb |
|||||||||||||||||
15 мар 19, 20:44 [21834321] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |