|
|
|
Системные индексы?
|
|||
|---|---|---|---|
|
#18+
При просмотре таблицы sysindexes обнаружил, что помимо индексов созданных мной, в этой таблице содержиться куча индексов с названиями типа _WA_Sys_name_6A5BAED2 . Причём доступ к ним как к индексам то есть например dbcc indexdefrag с ними не работает. Созданы они не для всех полей и не для всех таблиц. Вопрос, что это? Есть подозрение что это статистики. Тогда объясните почему они хранятся как индексы и что же такое статистика? Если это индексы, автоматически создаваемые системой, то существует ли необходимость заводить свои собственные? И вообще, про статистики хотелось бы компетентное мнение послушать, как с ними бороться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2002, 17:42:47 |
|
||
|
Системные индексы?
|
|||
|---|---|---|---|
|
#18+
Да, это индексы статистики. Не стоит их убивать, если нет других индексов (созданных вручную). Для удаления служит DROP STATISTICS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2002, 18:28:58 |
|
||
|
Системные индексы?
|
|||
|---|---|---|---|
|
#18+
Эти индексы были созданы сервером ,например, когда отлаживались sp, использующие эту таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2002, 18:45:28 |
|
||
|
Системные индексы?
|
|||
|---|---|---|---|
|
#18+
Спасибо за ссылку. И всё же вопрос остался. Существует ли необходимость заводить свои собственные индексы или при достаточно продолжительном использовании система справляется с этой задачей не хуже? Вопрос возник ещё и вот почему. При запуске IndexTuningWizard не даёт рекомендаций по созданию новых индексов, хотя при этом на таблице создан только PK, а запрос джойнится из нескольких таблиц и используются связки по нескольким полям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2002, 14:04:46 |
|
||
|
Системные индексы?
|
|||
|---|---|---|---|
|
#18+
Давайте определимся, про что мы все-таки говорим. Потому что индексы сервер самостоятельно НЕ создает. А статистика это не тоже самое, что и индекс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2002, 14:26:16 |
|
||
|
Системные индексы?
|
|||
|---|---|---|---|
|
#18+
Может быть организованы они и не так как индексы, но нам то от этого не холодно не жарко. А вот от того как построит 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 Так зачем же нужны индексы? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2002, 14:54:16 |
|
||
|
Системные индексы?
|
|||
|---|---|---|---|
|
#18+
Может быть организованы они и не так как индексы, но нам то от этого не холодно не жарко Тут вы не правы. Если вы построите индекс на поле с низкой селективностью, например, 2 различных значения на 1000 записей, то я сильно сомневаюсь, что сервер будет использовать такой индекс (кластерный не в счет). И решит он именно на основе статистики. ...Так зачем же нужны индексы? В приведенном вами примере, если по t2.id есть кластерный индекс, то дополнительный индекс по t2.t1 не нужен. Но это не значит, что он не нужен для запроса select * from t1 inner join t2 on t2.t1 = t1.id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 15:24:17 |
|
||
|
Системные индексы?
|
|||
|---|---|---|---|
|
#18+
Спасибо Glory, кажется я понял. Статистики нужны для определения эффективности того или иного механизма выборки, в том числе и использования индекса. Т.е. в принципе можно завести по таблице набор всех возможных индексов, а уж оптимизатор на основе статистик по ним решит использовать их или нет для конкретного запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 17:24:05 |
|
||
|
Системные индексы?
|
|||
|---|---|---|---|
|
#18+
Т.е. в принципе можно завести по таблице набор всех возможных индексов В принципе можно. На практике - зачем. Индекс требует больше места чем статистика. И если для того же поля с низкой селективностью серверу достаточно только статистики, то зачем же зря расходовать место на диске. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 18:05:38 |
|
||
|
Системные индексы?
|
|||
|---|---|---|---|
|
#18+
К ответу Glory хочу добавить, что индекс не только ускоряет выборку, но он еще замедляет вставку/обновление. Чрезмерно большое количество индексов может сильно замедлить эти операции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 18:29:02 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32056007&tid=1819754]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 369ms |

| 0 / 0 |
