Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
aleks222
Guest |
Грузится xml через sqlXmlBulkLoad в табличку базы tempdb [src] CREATE TABLE [dbo].[pricesServiceSetsPriceDates]( [gross] [real] NULL, [ids] [nvarchar](4000) NOT NULL, [version] [nvarchar](8) NULL, [OverflowColumn] [ntext] NULL, [spoKey] [int] NULL DEFAULT ((-1)), [hash] [int] NULL, [key] [int] NOT NULL, [from] [date] NULL, [to] [date] NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] [src] индексов нет. В столбце [OverflowColumn] везде NULL. Столбец [ids] заполнен строками длиной < 900 символов, реально в среднем около 100 символов. Но sp_spaceused выдает чудовищную картину.
Куда и зачем оно хавает такую чортову прорву пустого места? Data = 9 496 520 KB !!! unused = 66 475 640 KB!!! |
13 дек 17, 08:55 [21029352] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
|
||
13 дек 17, 09:34 [21029445] Ответить | Цитировать Сообщить модератору |
aleks222
Guest |
Применял. Дык ведь, и свободное место в tempdb уменьшается соответственно. |
||||
13 дек 17, 09:38 [21029457] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
|
||||
13 дек 17, 09:42 [21029472] Ответить | Цитировать Сообщить модератору |
aleks222
Guest |
Если б он "отпускал". Оно так и остается после загрузки. Если построить на этой таблице кластерный индекс - размеры приходят в норму и свободное место в tempdb появляется обратно. Есть еще пара-тройка таблиц с таким же эффектом. Что самое забавное, есть две таблички - практически полных аналога. Только на одной есть кластерный индекс... и ее не "разносит". |
||||
13 дек 17, 09:48 [21029491] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
А размер данных неточно, но примерно близок к количеству строк * размер экстента |
||||
13 дек 17, 10:01 [21029522] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
А вот размер reserved точно равен количеству строк * размер экстента :-) |
||
13 дек 17, 10:03 [21029525] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
|
||||
13 дек 17, 10:04 [21029527] Ответить | Цитировать Сообщить модератору |
aleks222
Guest |
Не, удаление колонки ntext ничего не меняет. Я попробовал. Радикально меняет дело только кластерный индекс. |
||||
13 дек 17, 10:11 [21029562] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
aleks222, сдаётся мне что дело в TEXTIMAGE_ON но доказать не могу:) |
13 дек 17, 10:13 [21029569] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
Прикольно. Вот небольшое обсуждение было https://social.technet.microsoft.com/Forums/en-US/727f0ff2-4598-497b-b3f8-05805e0cf4e2/sqlxmlbulkload-size-of-database-40-times-bigger-than-xml-file?forum=sqlxml |
||||
13 дек 17, 10:17 [21029582] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
|
||
13 дек 17, 10:17 [21029585] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
Похоже на
https://support.microsoft.com/en-gb/help/924947/sql-server-significantly-increases-the-unused-space-for-some-tables |
||||
13 дек 17, 10:45 [21029681] Ответить | Цитировать Сообщить модератору |
aleks222
Guest |
Вопщем понятно - делаем кластерный индекс. |
||||||
13 дек 17, 13:56 [21030522] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |