powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Системные индексы?
12 сообщений из 12, страница 1 из 1
Системные индексы?
    #32055611
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При просмотре таблицы sysindexes обнаружил, что помимо индексов созданных мной, в этой таблице содержиться куча индексов с названиями типа _WA_Sys_name_6A5BAED2 . Причём доступ к ним как к индексам то есть например dbcc indexdefrag с ними не работает. Созданы они не для всех полей и не для всех таблиц.
Вопрос, что это?
Есть подозрение что это статистики. Тогда объясните почему они хранятся как индексы и что же такое статистика?
Если это индексы, автоматически создаваемые системой, то существует ли необходимость заводить свои собственные?
И вообще, про статистики хотелось бы компетентное мнение послушать, как с ними бороться?
...
Рейтинг: 0 / 0
Системные индексы?
    #32055616
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, это индексы статистики.
Не стоит их убивать, если нет других индексов (созданных вручную).
Для удаления служит DROP STATISTICS.
...
Рейтинг: 0 / 0
Системные индексы?
    #32055623
Vit.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эти индексы были созданы сервером ,например, когда
отлаживались sp, использующие эту таблицу.
...
Рейтинг: 0 / 0
Системные индексы?
    #32055638
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Системные индексы?
    #32055972
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ссылку.
И всё же вопрос остался.

Существует ли необходимость заводить свои собственные индексы или при достаточно продолжительном использовании система справляется с этой задачей не хуже?

Вопрос возник ещё и вот почему. При запуске IndexTuningWizard не даёт рекомендаций по созданию новых индексов, хотя при этом на таблице создан только PK, а запрос джойнится из нескольких таблиц и используются связки по нескольким полям.
...
Рейтинг: 0 / 0
Системные индексы?
    #32055986
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте определимся, про что мы все-таки говорим.
Потому что индексы сервер самостоятельно НЕ создает.
А статистика это не тоже самое, что и индекс.
...
Рейтинг: 0 / 0
Системные индексы?
    #32056007
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть организованы они и не так как индексы, но нам то от этого не холодно не жарко. А вот от того как построит execution plan SQL Server query optimizer, зависит скорость выполнения запроса.
Вот фрагмент.
Normally this fact is transparent to the user, but the query optimizer knows about the clustering columns and may avoid secondary fetches if only those column values are required on top of the secondary index columns for the query execution.
Может я чего-то не понял, но не означает ли это, что даже при отсутствии дополнительных индексов на внешних ключах, будет построен оптимальный по производительности запрос типа:

select * from t1 inner join t2 on t2.t1 = t1.id where t2.id = 123

Так зачем же нужны индексы? :)
...
Рейтинг: 0 / 0
Системные индексы?
    #32056371
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть организованы они и не так как индексы, но нам то от этого не холодно не жарко

Тут вы не правы. Если вы построите индекс на поле с низкой селективностью, например, 2 различных значения на 1000 записей, то я сильно сомневаюсь, что сервер будет использовать такой индекс (кластерный не в счет). И решит он именно на основе статистики.

...Так зачем же нужны индексы?
В приведенном вами примере, если по t2.id есть кластерный индекс, то дополнительный индекс по t2.t1 не нужен.
Но это не значит, что он не нужен для запроса
select * from t1 inner join t2 on t2.t1 = t1.id
...
Рейтинг: 0 / 0
Системные индексы?
    #32056439
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Glory, кажется я понял.
Статистики нужны для определения эффективности того или иного механизма выборки, в том числе и использования индекса.
Т.е. в принципе можно завести по таблице набор всех возможных индексов, а уж оптимизатор на основе статистик по ним решит использовать их или нет для конкретного запроса.
...
Рейтинг: 0 / 0
Системные индексы?
    #32056478
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. в принципе можно завести по таблице набор всех возможных индексов

В принципе можно.
На практике - зачем. Индекс требует больше места чем статистика. И если для того же поля с низкой селективностью серверу достаточно только статистики, то зачем же зря расходовать место на диске.
...
Рейтинг: 0 / 0
Системные индексы?
    #32056500
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К ответу Glory хочу добавить, что индекс не только ускоряет выборку, но он еще замедляет вставку/обновление. Чрезмерно большое количество индексов может сильно замедлить эти операции.
...
Рейтинг: 0 / 0
Системные индексы?
    #32056632
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, что просветили.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Системные индексы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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