Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Нужен ли индекс?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Есть такая ситуация: запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. говорит, что на таблице А отсутствует индекс: CREATE INDEX [IX_A_Block_Status] ON [CZ_New].[dbo].[A] ([Block], [Status]) INCLUDE ([keyA]) Однако, в базе данных присутствует более широкий индекс CREATE INDEX [IX_A_Block_Status_Dat] ON [CZ_New].[dbo].[A] ([Block], [Status], [dat]) INCLUDE ([keyA]) И если выполнять запрос Код: sql 1. 2. 3. то план запроса показывает, что происходит IndexSeek по индексу IX_A_Block_Status_Dat Вопрос - нужен ли индекс IX_A_Block_Status или же достаточно индекса IX_A_Block_Status_Dat ? Если достаточно, то почему запрос запрос говорит, что именно он нужен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2018, 18:54 |
|
||
|
Нужен ли индекс?
|
|||
|---|---|---|---|
|
#18+
Диам, "на заборе тоже много чего написано, я заглядывала - там только дрова"(с) (какой-то старый анекдот) не нужно слепо верить даже тому, что выдает оптимизатор / профайлер (не говоря уже про подозрительные скрипты из непонятного источника). Любые рекомендации - они, именно что, рекомендации. Применять их или нет - решает не скрипт, а человек. Вам лишь дали пищу для размышления. А нужно оно или нет - решать только вам. Тут нужно смотреть на состав данных, их распределение и характер обработки (соотношение операций DML и обычных SELECT), а также - на полный набор запросов, которые потенциально могут использовать новый индекс. НА крайний случай - сделайте пару вариантов индекса и посмотрите на статистику их использования. Вполне может оказаться, что оба будут использоваться интенсивно. Либо наоборот - оба индекса окажутся малопригодными и редкоиспользуемыми... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2018, 19:13 |
|
||
|
Нужен ли индекс?
|
|||
|---|---|---|---|
|
#18+
Диам, более широкий индекс "хуже" тем, что он шире :) больше читать нужно. оптимизатор конечно хочет более оптимальный (узкий). то что идёт поиск по существующему... ну, дак, а чего бы ему не идти на таком запросе. если создадите такой какой просят увидите, что в плане используется уже он (с меньшим IO). другое дело, что реальный профит может быть практически не заметен (зависит от ваших данных). если широкий построен не просто так, а используется в других запросах, то может статься, что оставить только его будет правильно (меньше индексов - меньше накладных расходов) смотрите весь набор запросов на таблицу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2018, 21:45 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39660938&tid=1689568]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 356ms |

| 0 / 0 |
