powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Truncate Table
25 сообщений из 33, страница 1 из 2
Truncate Table
    #39786549
Elminzter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет, подскажите. Есть у нас на работе MS SQL Express 2008 r2 sp2. На сколько я понял, в этой редакции ограничение на размер БД 10 ГБайт? Есть у нас БД, в ней есть таблица, которая занимает 6 ГБайт. Эту таблицу в Truncate Table. Далее смотрим, размер БД не изменился. Через свойства таблицы "хранилище" Managment Studio показывает "Пространство данных" 0 MB. А если сделать стандартный отчет "Использование дисковой памяти верхними таблицами" Данные в этой таблице занимают 6000 КБ. Что сделать, чтобы размер БД уменьшился на эти самые 6 ГБ после Truncate Table?
Функция сжатия файла БД, после Truncate, показывает доступное свободное место 3% (200 МБ).
...
Рейтинг: 0 / 0
Truncate Table
    #39786552
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elminzter,

база, после удаление информации, не делает автоматическое освобождение места (т.к. чаще всего это не имеет смысла)
освободить место можно самостоятельно изучив команду SHRINKFILE
...
Рейтинг: 0 / 0
Truncate Table
    #39786553
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElminzterЧто сделать, чтобы размер БД уменьшился на эти самые 6 ГБ после Truncate Table?сжать файлы.
вы вынесли вещи из шкафа, но не вынесли шкаф из комнаты, вот в комнате и нет свободного места (из аналогии, прочитанной когда-то здесь на форуме) :)
...
Рейтинг: 0 / 0
Truncate Table
    #39786555
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Щукина Анна,

первоисточник , если что
...
Рейтинг: 0 / 0
Truncate Table
    #39786595
Elminzter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот я как-раз пишу в конце что SQL Studio после truncate table, если выбрать сжать файл БД, пишет, что Выделенное место 6227,44 МБ, Операция сжатия: сжать файл до: (минимум 6036 МБ). Грубо говоря DBCC SHRINKFILE не видит свободного пространства для сжатия более 192,38 МБ.
...
Рейтинг: 0 / 0
Truncate Table
    #39786598
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elminzter,

база FULL/SIMPLE?
...
Рейтинг: 0 / 0
Truncate Table
    #39786630
Elminzter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FULL
...
Рейтинг: 0 / 0
Truncate Table
    #39786634
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElminzterFULL
ну раз вам там ничего не надо, переведите в SIMPLE и шринкуйте
...
Рейтинг: 0 / 0
Truncate Table
    #39786671
Elminzter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaKElminzterFULL
ну раз вам там ничего не надо, переведите в SIMPLE и шринкуйте
Все тоже самое и для модели восстановления SIMPLE:
После шринка доступное место стало 6124 МБ.
...
Рейтинг: 0 / 0
Truncate Table
    #39786672
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElminzterTaPaKпропущено...

ну раз вам там ничего не надо, переведите в SIMPLE и шринкуйте
Все тоже самое и для модели восстановления SIMPLE:
После шринка доступное место стало 6124 МБ.
а лог будем?
...
Рейтинг: 0 / 0
Truncate Table
    #39786685
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKа лог будем?Так в этом окошке и показывает данные по файлу. Раз написано,что свободно 192,38 МБ, значит, так и есть.

Что то автор напутал.
...
Рейтинг: 0 / 0
Truncate Table
    #39786721
Elminzter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,



...
Рейтинг: 0 / 0
Truncate Table
    #39786726
Elminzter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Truncate Table
    #39786731
Elminzter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgTaPaKа лог будем?Так в этом окошке и показывает данные по файлу. Раз написано,что свободно 192,38 МБ, значит, так и есть.

Что то автор напутал.
Свободно из выделенного места.
...
Рейтинг: 0 / 0
Truncate Table
    #39786733
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДанные в этой таблице занимают 6000 КБ
брюки превращаются.... в 6ГБ?
...
Рейтинг: 0 / 0
Truncate Table
    #39786735
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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]Ну вот, видите, файл занят данными.
...
Рейтинг: 0 / 0
Truncate Table
    #39786737
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElminzteralexeyvgТак в этом окошке и показывает данные по файлу. Раз написано,что свободно 192,38 МБ, значит, так и есть.

Что то автор напутал.
Свободно из выделенного места.Нет, свободного места в файле.
...
Рейтинг: 0 / 0
Truncate Table
    #39786741
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgElminzterСвободно из выделенного места.Нет, свободного места в файле.Хотя можно сказать "Свободно из выделенного места"

В общем, вот файл, занимает на диске 6200 мегабайт. Из них 6000 занято вашими данными, а 200 свободно.

Это по-простому, что бы не ловить семантическую разницу между "Свободно из выделенного места" и "свободного места в файле"
...
Рейтинг: 0 / 0
Truncate Table
    #39786769
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Операция truncate не сразу освобождает данные.
"Создается" новая пустая таблица и меняется "указатель" в метаданных (на root/first/IAM).
Сама очистка данных это асинхронный процесс.
...
Рейтинг: 0 / 0
Truncate Table
    #39786860
Elminzter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
msLexОперация truncate не сразу освобождает данные.
"Создается" новая пустая таблица и меняется "указатель" в метаданных (на root/first/IAM).
Сама очистка данных это асинхронный процесс.
Можно ли как-то повлиять на этот процесс? И допустим чтобы следующий раз удалять данные, попробовать через Drop Table?
...
Рейтинг: 0 / 0
Truncate Table
    #39786864
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
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
...
Рейтинг: 0 / 0
Truncate Table
    #39786868
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне всё таки интересно, как же решить такую загадку
автор Данные в этой таблице занимают 6000 КБ. Что сделать, чтобы размер БД уменьшился на эти самые 6 ГБ после Truncate Table?
...
Рейтинг: 0 / 0
Truncate Table
    #39786874
Slava_Nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Truncate Table
    #39786876
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slava_NikTaPaK,
DBCC CLEANTABLE
https://docs.microsoft.com/ru-ru/sql/t-sql/database-console-commands/dbcc-cleantable-transact-sql?view=sql-server-2017
трудности понимания слов в статье? ну и загадка совсем не о том..
...
Рейтинг: 0 / 0
Truncate Table
    #39787020
Elminzter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
 USE UPD_E
 GO
 Truncate table dbo.AKP_Files
 GO
 USE UPD_E
 GO
 DBCC CLEANTABLE (UPD_E, AKP_Files,0)
 GO



После выполняю скрипт 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 часов, Студия показывает как во вложении.
...
Рейтинг: 0 / 0
25 сообщений из 33, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Truncate Table
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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