Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
План выполнения запроса непонятен
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Есть такой скрипт Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. У таблицы Kassa_RKD_View_E2_tbl_tmp нет индексов вообще НЕПОНЯТНОСТЬ: при построении плана для блока IF EXISTS() оптимизатор предполагает, что количество строк для PK_Kassa_RKD_E будет 2,7 и выбирается соединение LOOP JOIN. От этого операция IF EXISTS выполняется 1 час!!! Но тот же самый запрос, выполненный вне конструкции IF EXISTS уже строится по другому. И для PK_Kassa_RKD_E предполагаемое количество строк уже берется реальное = 199 999. Запрос выполняется меньше секунды. Знаю, что спасает подсказка Использовать HASH JOIN, но больше интересует почему берется неверное предположение о количестве строк. План запроса прикладываю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 03:06 |
|
||
|
План выполнения запроса непонятен
|
|||
|---|---|---|---|
|
#18+
Диам, Это называется row goal. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 09:09 |
|
||
|
План выполнения запроса непонятен
|
|||
|---|---|---|---|
|
#18+
TaPaK, почитал. Спасибо. А как лечить, если не явной подсказкой INNER HASH JOIN ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 16:24 |
|
||
|
План выполнения запроса непонятен
|
|||
|---|---|---|---|
|
#18+
ДиамTaPaK, почитал. Спасибо. А как лечить, если не явной подсказкой INNER HASH JOIN ? я лечу выносом всего в переменную, потом проверяю простот if @a = 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 16:47 |
|
||
|
План выполнения запроса непонятен
|
|||
|---|---|---|---|
|
#18+
Диам, для SQL 2016 SP1 есть OPTION (USE HINT('DISABLE_OPTIMIZER_ROWGOAL')), для версий ниже можно использовать trace-флаг 4138 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 18:38 |
|
||
|
План выполнения запроса непонятен
|
|||
|---|---|---|---|
|
#18+
ДиамА как лечить, если не явной подсказкой INNER HASH JOIN ? а в чем проблема простовыставить хин hash join? это ведь то что вам нужно. не вижу смысла что-то еще делать, всего две таблицы без индексов, ожидаем hash join, и больше ничего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 21:22 |
|
||
|
План выполнения запроса непонятен
|
|||
|---|---|---|---|
|
#18+
felix_ffДиам, для SQL 2016 SP1 есть OPTION (USE HINT('DISABLE_OPTIMIZER_ROWGOAL')), для версий ниже можно использовать trace-флаг 4138 Есть небольшие проблемы с хинтом... Некуда поставить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 21:51 |
|
||
|
План выполнения запроса непонятен
|
|||
|---|---|---|---|
|
#18+
ДиамА как лечить, если не явной подсказкой INNER HASH JOIN ?Например так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 22:25 |
|
||
|
План выполнения запроса непонятен
|
|||
|---|---|---|---|
|
#18+
invmДиамА как лечить, если не явной подсказкой INNER HASH JOIN ?Например так:А просто count(*) в таких случаях разве не срабатывает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 23:18 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39714565&tid=1688983]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 262ms |
| total: | 416ms |

| 0 / 0 |
