Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Слишком большой индекс. Почему?  [new]
leonix
Member

Откуда:
Сообщений: 403
Есть таблица с 20 колонками и с 85 млн. строк. Сами данные занимают 23 Гбайта. У этой таблицы есть индекс по двум колонкам, и этот индекс занимает почти столько же месте. Мне кажется это ненормально. Как можно убедится что с индексом всё нормально?
27 июн 18, 14:52    [21525354]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
Смотрите sys.dm_db_index_physical_stats по вашему индексу.
27 июн 18, 14:54    [21525370]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
leonix,

автор
индекс по двум колонкам
и ещё 18 в INCLUDE? :)
27 июн 18, 15:06    [21525411]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27752
TaPaK
leonix,

автор
индекс по двум колонкам
и ещё 18 в INCLUDE? :)

Да тупо кластерный :)
27 июн 18, 15:08    [21525418]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
leonix
Member

Откуда:
Сообщений: 403
TaPaK
leonix,

автор
индекс по двум колонкам
и ещё 18 в INCLUDE? :)


упс... а как посмотреть в инклюд. Я открываю индекс и вижу 2 колонки. Где ещё глянуть?
27 июн 18, 15:14    [21525440]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
leonix
Member

Откуда:
Сообщений: 403
skyANA
TaPaK
leonix,

пропущено...
и ещё 18 в INCLUDE? :)

Да тупо кластерный :)


Не, не кластерный. Точно.
27 июн 18, 15:16    [21525449]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
boltnik
Member

Откуда: Калуга/Москва
Сообщений: 144
leonix, Следующая вкладка Included columns или заскриптуй индекс и посмотри.
27 июн 18, 15:16    [21525451]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
leonix
Member

Откуда:
Сообщений: 403
leonix
TaPaK
leonix,

пропущено...
и ещё 18 в INCLUDE? :)


упс... а как посмотреть в инклюд. Я открываю индекс и вижу 2 колонки. Где ещё глянуть?


Всё нашёл. Это другая закладка. Там пусто.
27 июн 18, 15:16    [21525452]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
leonix
leonix
пропущено...


упс... а как посмотреть в инклюд. Я открываю индекс и вижу 2 колонки. Где ещё глянуть?


Всё нашёл. Это другая закладка. Там пусто.

заскриптуйте и покажите. Вариант с кластерным теперь и мне кажеться действительностью )))
27 июн 18, 15:17    [21525455]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
leonix
Member

Откуда:
Сообщений: 403
TaPaK
leonix
пропущено...


Всё нашёл. Это другая закладка. Там пусто.

заскриптуйте и покажите. Вариант с кластерным теперь и мне кажеться действительностью )))

Не скриптуется. Или глюк или прав не хватает. Не пойму в чем проблема.
27 июн 18, 15:35    [21525504]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
leonix
Member

Откуда:
Сообщений: 403
Гавриленко Сергей Алексеевич
Смотрите sys.dm_db_index_physical_stats по вашему индексу.


Результаты sys.dm_db_index_physical_stats по этим индексам. Они все разбухшие, ну или конкретно 5 разбухший.

К сообщению приложен файл. Размер - 40Kb
27 июн 18, 15:43    [21525521]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
leonix,

Скрипт индекса, ну и скрипт таблицы.
27 июн 18, 15:51    [21525552]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
leonix
Member

Откуда:
Сообщений: 403
TaPaK
leonix,

Скрипт индекса, ну и скрипт таблицы.


CREATE TABLE [dbo].[_AccumRgT37659](
[_Period] [datetime] NOT NULL,
[_Fld37654RRef] [binary](16) NOT NULL,
[_Fld44673RRef] [binary](16) NOT NULL,
[_Fld37655_TYPE] [binary](1) NOT NULL,
[_Fld37655_S] [nvarchar](25) NOT NULL,
[_Fld37655_RRRef] [binary](16) NOT NULL,
[_Fld37656RRef] [binary](16) NOT NULL,
[_Fld37657RRef] [binary](16) NOT NULL,
[_Fld38059RRef] [binary](16) NOT NULL,
[_Fld38060RRef] [binary](16) NOT NULL,
[_Fld38061] [datetime] NOT NULL,
[_Fld38062RRef] [binary](16) NOT NULL,
[_Fld38063RRef] [binary](16) NOT NULL,
[_Fld41696RRef] [binary](16) NOT NULL,
[_Fld47777RRef] [binary](16) NOT NULL,
[_Fld48120RRef] [binary](16) NOT NULL,
[_Fld37658] [numeric](21, 3) NOT NULL,
[_DimHash] [numeric](10, 0) NOT NULL,
[_Splitter] [numeric](10, 0) NOT NULL
) ON [PRIMARY]


CREATE NONCLUSTERED INDEX [_AccumRg37659_ByDims47533_TR] ON [dbo].[_AccumRgT37659]
(
[_Period] ASC,
[_Fld38060RRef] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
27 июн 18, 16:00    [21525597]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
leonix,

ну, так то не видно... Можно ребилд(или по одоному drop/create) вне рабочей нарузки пробовать, ну и 1с должно страдать :)
27 июн 18, 16:13    [21525637]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7746
leonix,

уверен, что у вас кластерный ключ километровый.
27 июн 18, 17:06    [21525832]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
leonix
Member

Откуда:
Сообщений: 403
Владислав Колосов
leonix,

уверен, что у вас кластерный ключ километровый.


Что такое кластерный ключ и где посмотреть?
27 июн 18, 17:07    [21525839]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7746
leonix,

ну может и не ключ, по скрипту этого не видно.
27 июн 18, 18:22    [21526095]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
leonix
Владислав Колосов
leonix,

уверен, что у вас кластерный ключ километровый.


Что такое кластерный ключ и где посмотреть?

как некластерный индекс смогли заскриптовать,
так и кластерный заскриптуйте.
те поля, что будут перечислены в круглых скобках,
это ключ кластерного.
и он будет присутствовать на листовом уровне *всех* некластерных,
и даже хуже: на всех уровнях, если некластерный индекс неуникален,
как тот, что вы уже показали
---
если ключ кластерного это 15 полей, то кто-то ссзб
27 июн 18, 18:39    [21526144]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
leonix
Member

Откуда:
Сообщений: 403
Yasha123
leonix
пропущено...


Что такое кластерный ключ и где посмотреть?

как некластерный индекс смогли заскриптовать,
так и кластерный заскриптуйте.
те поля, что будут перечислены в круглых скобках,
это ключ кластерного.
и он будет присутствовать на листовом уровне *всех* некластерных,
и даже хуже: на всех уровнях, если некластерный индекс неуникален,
как тот, что вы уже показали
---
если ключ кластерного это 15 полей, то кто-то ссзб


Всем спасибо! Чувствую надо освежить знания про строение индексов.
27 июн 18, 23:29    [21526825]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
leonix
Владислав Колосов
leonix,

уверен, что у вас кластерный ключ километровый.


Что такое кластерный ключ и где посмотреть?
Немного не в тему, но вам будет полезно: в SSIS в опциях укажите в SQL Server в разделе Object Explorer в подразделе Scripting дополнительные параметры при скриптовании таблиц, что бы показывались PK, FK, indexes, triggers
А то вы сейчас делаете скрипт, а про таблицу ничего непонятно; вам так будет удобнее.
27 июн 18, 23:49    [21526847]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3246
alexeyvg
в SSIS в опциях
Вы, должно быть, SSMS имели в виду.
28 июн 18, 07:18    [21526995]     Ответить | Цитировать Сообщить модератору
 Re: Слишком большой индекс. Почему?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
Ennor Tiegael
alexeyvg
в SSIS в опциях
Вы, должно быть, SSMS имели в виду.
Ой, да, извиняюсь за опечатку, в студии, в SSMS.
28 июн 18, 10:29    [21527506]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить