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

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

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

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

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

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



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

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

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

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

Это по-простому, что бы не ловить семантическую разницу между "Свободно из выделенного места" и "свободного места в файле"
...
Рейтинг: 0 / 0
15.03.2019, 14:39
    #39786769
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Truncate Table
Операция truncate не сразу освобождает данные.
"Создается" новая пустая таблица и меняется "указатель" в метаданных (на root/first/IAM).
Сама очистка данных это асинхронный процесс.
...
Рейтинг: 0 / 0
15.03.2019, 16:41
    #39786860
Elminzter
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Truncate Table
msLexОперация truncate не сразу освобождает данные.
"Создается" новая пустая таблица и меняется "указатель" в метаданных (на root/first/IAM).
Сама очистка данных это асинхронный процесс.
Можно ли как-то повлиять на этот процесс? И допустим чтобы следующий раз удалять данные, попробовать через Drop Table?
...
Рейтинг: 0 / 0
15.03.2019, 16:48
    #39786864
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Truncate Table
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
15.03.2019, 16:55
    #39786868
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Truncate Table
мне всё таки интересно, как же решить такую загадку
автор Данные в этой таблице занимают 6000 КБ. Что сделать, чтобы размер БД уменьшился на эти самые 6 ГБ после Truncate Table?
...
Рейтинг: 0 / 0
15.03.2019, 17:00
    #39786874
Slava_Nik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Truncate Table
...
Рейтинг: 0 / 0
15.03.2019, 17:01
    #39786876
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Truncate Table
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
15.03.2019, 20:44
    #39787020
Elminzter
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Truncate Table
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
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Truncate Table / 25 сообщений из 33, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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