Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Условие LIKE: с ESCAPE - долго, без ESCAPE - быстро.
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Дано: - MS SQL 2008 R2 Таблицы: Имя SQL Количество строк _Reference128 52 046 _Document309 597 719 _Reference162 68 340 Фрагментации индексов нет (не более 5%), статистика свежая. Это база конфигурации 1С:Предприятия, следовательно возможности влиять на sql-запрос ограничены. Есть запрос: SELECT TOP 40 T1._IDRRef, T2._Fld20671RRef, T3._Fld3170, T4._Fld3964RRef FROM dbo._Document309 T1 LEFT OUTER JOIN dbo._InfoRg20669 T2 ON (0x08 = T2._Fld20670_TYPE AND 0x00000135 = T2._Fld20670_RTRef AND T1._IDRRef = T2._Fld20670_RRRef) LEFT OUTER JOIN dbo._Reference128 T3 ON T1._Fld7737RRef = T3._IDRRef LEFT OUTER JOIN dbo._Reference162 T4 ON T1._Fld7731RRef = T4._IDRRef WHERE (T3._Fld3170 LIKE '%9701074127%' ESCAPE '/') -ORDER BY (T1._Date_Time), (T1._IDRRef) Выполняется 3 сек (план во вложении). Если в условии убрать ESCAPE '/', то время выполнения становится 0,3 сек (план во вложении). Конструкцию ESCAPE добавляет сама платформа. Разница в результатах с использованием ESCAPE и без мне понятна, но я готов пренебречь ей ради ускорения. Собственно, вопросы: - Это вообще нормально? Такая разница. - Можно ли добиться ускорения, без изменения текста запроса. - Как крайняя мера (сразу оговорюсь, я к mssql достаточно посторонний) есть идея: для нужных мне запросов чистить ESCAPE из запросов - это если в mssql есть событие, в котором мы можем перехватить текст запроса до его исполнения и изменить его (далее выполнится измененный). Такое возможно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2018, 13:10 |
|
||
|
Условие LIKE: с ESCAPE - долго, без ESCAPE - быстро.
|
|||
|---|---|---|---|
|
#18+
vs84- Это вообще нормально? Такая разница.Да. Разница из-за отличия в оценке количества строк для предиката like с и без escape. vs84Можно ли добиться ускорения, без изменения текста запроса.Вряд ли. Есть методы, но они затронут весь сервер (или БД), а не конкретныый запрос. Хотя, можете попробовать вот это - https://docs.microsoft.com/ru-ru/sql/relational-databases/performance/specify-query-parameterization-behavior-by-using-plan-guides?view=sql-server-2017 vs84для нужных мне запросов чистить ESCAPE из запросов - это если в mssql есть событие, в котором мы можем перехватить текст запроса до его исполнения и изменить его (далее выполнится измененный). Такое возможно?Нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2018, 13:58 |
|
||
|
Условие LIKE: с ESCAPE - долго, без ESCAPE - быстро.
|
|||
|---|---|---|---|
|
#18+
Удивляет условие, накладываемое на правую таблицу LEFT JOINа в WHERE. Это какая-то неправильная "платформа". Хотя, наверно, им было лень формировать ещё и отдельные тексты для INNER JOIN и LEFT OUTER JOIN... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2018, 14:13 |
|
||
|
Условие LIKE: с ESCAPE - долго, без ESCAPE - быстро.
|
|||
|---|---|---|---|
|
#18+
iapУдивляет условие, накладываемое на правую таблицу LEFT JOINа в WHERE. Это какая-то неправильная "платформа". Хотя, наверно, им было лень формировать ещё и отдельные тексты для INNER JOIN и LEFT OUTER JOIN... так судя по тексту 1С :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2018, 14:27 |
|
||
|
Условие LIKE: с ESCAPE - долго, без ESCAPE - быстро.
|
|||
|---|---|---|---|
|
#18+
invm, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2018, 14:33 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39665347&tid=1689508]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
78ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 254ms |
| total: | 421ms |

| 0 / 0 |
