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

Откуда: из России
Сообщений: 901
Обнаружил, что в MS SQL SMS все индексы таблицы, кроме трех индексов, отображаются в статистике,и в свойствах этих "индексов" показывает , что это статистика.
Пытался drop-нуть это "статистику", говорит, что это индекс, drop index по ним проходит.
Проверяю запрос по статистике использования индексов запросом
select * from sys.dm_db_index_usage_stats where object_id=object_id('table')
показывает, что только три индекса используются.
Делаю запрос , сколько индексов на таблице
select * from sys.indexes where object_id=object_id('dbo.table')
показывает все 800 индексов.
Делаю запрос, по которым есть покрывающий индекс, а они мне делает скан по кластерному индексу.
В итоге, что это? называется наипнулись все мои индексы?
Как мне их вернуть?заново создавать, а старые дропнуть?

версия -MS SQL2008R2
26 июл 11, 15:00    [11028666]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Glory
Member

Откуда:
Сообщений: 104751
А разве наличие индекса обязывает сервер использовать его ?
У индекса всегда есть статистикаю
26 июл 11, 15:05    [11028700]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
Glory,

нет конечно не обязывает
, но 800 индексов не просто так сделали, да и сервер работает без перегрузки MS SQL более 3-х месяцев, хоть одна статистика по использованию индекса в динамическое представление должна попасть была.
заметил кстати, когда решил тяжелые запросы посмотреть, а он мне выдал простую процедуру с рекомендациями создать индекс на данную таблицу.
26 июл 11, 15:15    [11028791]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Slava_Nik
, но 800 индексов не просто так сделали
Дурное дело - нехитрое.
26 июл 11, 15:17    [11028813]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Glory
Member

Откуда:
Сообщений: 104751
Slava_Nik
но 800 индексов не просто так сделали, да и сервер работает без перегрузки MS SQL более 3-х месяцев, хоть одна статистика по использованию индекса в динамическое представление должна попасть была.
заметил кстати, когда решил тяжелые запросы посмотреть, а он мне выдал простую процедуру с рекомендациями создать индекс на данную таблицу.

Что значит "должна попасть была" ? Если индекс бесполезен, то он не будет использован никогда
26 июл 11, 15:18    [11028824]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
Гавриленко Сергей Алексеевич,
типа того, я сам офигел когда увидел, а он мне предлагает еще создать.
теперь понимаю откуда запрос обновления по данной таблицы является один из самых тяжелых запросов.
но вопрос не в этом, а что с ними случилось?
26 июл 11, 15:27    [11028931]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Glory
Member

Откуда:
Сообщений: 104751
Slava_Nik
но вопрос не в этом, а что с ними случилось?

С кем/чем ?
26 июл 11, 15:28    [11028944]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
Glory,
указал в начале.
26 июл 11, 15:37    [11029009]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Glory
Member

Откуда:
Сообщений: 104751
Slava_Nik
Glory,
указал в начале.

Что вы указали ?
Еще раз
Если индекс бесполезен, то он никогда не будет использован. И это нормально.
26 июл 11, 15:40    [11029037]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
Glory,
еще раз,
первое такое колличество индексов ранее не просто так создали.
второе, так же указал, простая процедура. с которой проблем не было, просит себе индекс на таблице, где уже полно индексов, даже перебор их, и есть нужный для неё.
плюс новое -третье создал для этой процедуры новый индекс , который процедура начала использовать его.
+ четвертое, удивило так же на результа запроса по фрагментированным индекса - их не было, хотя обычно всегда их полно было, т.к таблица довольно активно обновляется.
+ статистику по по таблице обновляется ежедневно.

когда индекс бесполезен и как выбирает оптимизатор, что ему использовать так же знаю и это нормально,но не здесь.

пока решил их дропать, и создавать нужные по необходимости.
26 июл 11, 16:01    [11029203]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Glory
Member

Откуда:
Сообщений: 104751
Slava_Nik
Glory,
еще раз,
первое такое колличество индексов ранее не просто так создали.
второе, так же указал, простая процедура. с которой проблем не было, просит себе индекс на таблице, где уже полно индексов, даже перебор их, и есть нужный для неё.
плюс новое -третье создал для этой процедуры новый индекс , который процедура начала использовать его.
+ четвертое, удивило так же на результа запроса по фрагментированным индекса - их не было, хотя обычно всегда их полно было, т.к таблица довольно активно обновляется.
+ статистику по по таблице обновляется ежедневно.

И что из этого заставит сервер использовать конкретный индекс то ?
26 июл 11, 16:03    [11029219]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
Glory,

а что его заставляет использовать на таблице с полями более 50 шт. в основном символьного типа, со строками в таблице более 8 тыс использовать сканирование кластерного индекса по запросу , на которые есть покрывающий индекс?
и если создать заново данный индекс, то он его использует.
26 июл 11, 16:31    [11029443]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Glory
Member

Откуда:
Сообщений: 104751
Slava_Nik
Glory,

а что его заставляет использовать на таблице с полями более 50 шт. в основном символьного типа, со строками в таблице более 8 тыс использовать сканирование кластерного индекса по запросу , на которые есть покрывающий индекс?

Потому что кластерный индекс и есть таблица
Вы этого не знали ?
26 июл 11, 16:33    [11029456]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Glory
Member

Откуда:
Сообщений: 104751
Slava_Nik
и если создать заново данный индекс, то он его использует.

Еще вы наверное не знаете, что такое статистика. И что ее нужно обновлять
А также проводить другие регламентные работы с базой
26 июл 11, 16:34    [11029465]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
Glory,
знаю, только я не спрашиваю почему используется сканирование кластерного индекса, а не сканирование таблицы.
26 июл 11, 16:35    [11029478]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Glory
Member

Откуда:
Сообщений: 104751
Slava_Nik
Glory,
знаю, только я не спрашиваю почему используется сканирование кластерного индекса, а не сканирование таблицы.

Млин. Потому что листьями кластерного индекса являются страницы данных. Нет отдельно кластерного индекса и отдельно таблицы.
26 июл 11, 16:37    [11029497]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
Glory
Slava_Nik
Glory,
знаю, только я не спрашиваю почему используется сканирование кластерного индекса, а не сканирование таблицы.

Млин. Потому что листьями кластерного индекса являются страницы данных. Нет отдельно кластерного индекса и отдельно таблицы.

вот именно Млииииииииинн, я ответил, так потому ,вы мне ответили мне, будто я спрашивал почему нет сканирование таблицы, а идет сканирование индекса, что одно и тоже.

статистика, кстати обновляется регулярно.
26 июл 11, 16:44    [11029559]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Glory
Member

Откуда:
Сообщений: 104751
Slava_Nik
Glory
пропущено...

Млин. Потому что листьями кластерного индекса являются страницы данных. Нет отдельно кластерного индекса и отдельно таблицы.

вот именно Млииииииииинн, я ответил, так потому ,вы мне ответили мне, будто я спрашивал почему нет сканирование таблицы, а идет сканирование индекса, что одно и тоже.

Я вас спрашивал, почему вы вдруг решили, что наличие какого индекса обязывает сервер использовать этот индекс, а не сканировать таблицу. И ответа так и не услышал
26 июл 11, 16:46    [11029577]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
Glory
Slava_Nik
пропущено...

вот именно Млииииииииинн, я ответил, так потому ,вы мне ответили мне, будто я спрашивал почему нет сканирование таблицы, а идет сканирование индекса, что одно и тоже.

Я вас спрашивал, почему вы вдруг решили, что наличие какого индекса обязывает сервер использовать этот индекс, а не сканировать таблицу. И ответа так и не услышал

мой ответ вопросом, как вы любите.
автор
а что его заставляет использовать на таблице с полями более 50 шт. в основном символьного типа, со строками в таблице более 8 тыс использовать сканирование кластерного индекса по запросу , на который есть покрывающий индекс?
и если создать заново данный индекс, то он его использует.

или создать индекс с полями которые есть в "индексе", который вроде как есть, но он отображается как статистика, но в sys.indexes он индекс, и запрос его использует, то почему до этого он использовал сканирование таблицы?
26 июл 11, 16:57    [11029664]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Glory
Member

Откуда:
Сообщений: 104751
Slava_Nik
или создать индекс с полями которые есть в "индексе", который вроде как есть, но он отображается как статистика, но в sys.indexes он индекс, и запрос его использует, то почему до этого он использовал сканирование таблицы?

Что за бред вы несете
Индекс не может "отображаться как статистика"
Потому что это разные объекты
26 июл 11, 17:01    [11029698]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
Glory,

не бред, а реальность, отображаться в MS SQL SMS на таблицу как статистика может.
, и в то же время это числится как индексы, хотя их и не использует (как и должно быть) так же может .
вот я спрашиваю , как такой бред получился?
26 июл 11, 17:05    [11029724]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Glory
Member

Откуда:
Сообщений: 104751
Slava_Nik
Glory,

не бред, а реальность, отображаться в MS SQL SMS на таблицу как статистика может.
, и в то же время это числится как индексы, хотя их и не использует (как и должно быть) так же может .
вот я спрашиваю , как такой бред получился?

Каким запросом вы вообще отличаете индекс от статистики ?
26 июл 11, 17:06    [11029737]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
Glory,
в самом первом посте указал
select * from sys.indexes where object_id=object_id('dbo.table')
drop statistics не получается, т.е это не статистика.
,a drop index проходит, хотя в SMS отображается как статистика, т.е это все таки индекс, но не используется.

пока задропал несколько этих "индексов", создаю их аналоги, новые уже работают, за одно левые индексы чищу.
26 июл 11, 17:16    [11029816]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
Glory
Member

Откуда:
Сообщений: 104751
Slava_Nik
Glory,
в самом первом посте указал
select * from sys.indexes where object_id=object_id('dbo.table')
drop statistics не получается, т.е это не статистика.
,a drop index проходит, хотя в SMS отображается как статистика, т.е это все таки индекс, но не используется.

Поток сознания
1. Любой индекс содержит статистику. Она имеет такое же имя как и индекс. Потому что создается автоматически. И вы не можете управлять этим процессом
2. В сотый раз. Сервер сам решает как ему использовать индексы.
26 июл 11, 17:22    [11029871]     Ответить | Цитировать Сообщить модератору
 Re: Что случилось с индексами и со статистикой  [new]
BestZvit
Member

Откуда: Гоблино
Сообщений: 2250
Glory
2. В сотый раз. Сервер сам решает как ему использовать индексы.


Это до тех пор, пока программер не начинает считать себя умнее сервера....

И щедро начинает свои запросы затыкать хинтами на принудительное использование индекса.
На первой стадии: производительность принципиально не меняется, поэтому их оставляют.
На второй стадии (~ через год-полтора): по очереди вылавливают и истребляют эти хинты, отмечая заметное улучшение производительности (а без хинтов и действительно становится лучше)
26 июл 11, 18:32    [11030265]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить