Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
31.10.2019, 15:17
|
|||
|---|---|---|---|
Фильтрация данных с проверкой переменной сессии |
|||
|
#18+
Здравствуйте! В обычном программировании при использовании оператора OR, условия проверяются поочередно, слева направо. В запросе ниже даже при VARIABLE1 и N'VARIABLE2 == NULL (а таких переменных может быть несколько, а запрос более сложным) всё работает медленно, скорее всего из-за того, что по плану запроса правая часть всё равно выполняется. Можно ли заставить SQL работать "правильно" с такими запросами? Или как эту задачу решить другим способом? PS: вариант собирать запрос как строку и выполнять ее - не подходит по ряду причин. Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.10.2019, 15:30
|
|||
|---|---|---|---|
|
|||
Фильтрация данных с проверкой переменной сессии |
|||
|
#18+
Samir, select ... from ... where isnull union all select ... from ... where exists () ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.10.2019, 15:34
|
|||
|---|---|---|---|
Фильтрация данных с проверкой переменной сессии |
|||
|
#18+
Samir, SESSION_CONTEXT(N'VARIABLE1') в переменные + RECOMPILE тогда выбросит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.10.2019, 15:35
|
|||
|---|---|---|---|
Фильтрация данных с проверкой переменной сессии |
|||
|
#18+
Это вьюшка, для фильтрации некоторых полей используются переменные сессии, так как фильтруемые поля невозможно вывести как поля для фильтрации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.10.2019, 15:37
|
|||
|---|---|---|---|
Фильтрация данных с проверкой переменной сессии |
|||
|
#18+
TaPaK, Думаете если вместо вьюшки создать функцию с параметрами - будет работать как надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.10.2019, 15:38
|
|||
|---|---|---|---|
Фильтрация данных с проверкой переменной сессии |
|||
|
#18+
SamirTaPaK, Думаете если вместо вьюшки создать функцию с параметрами - будет работать как надо? нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.11.2019, 10:45
|
|||
|---|---|---|---|
Фильтрация данных с проверкой переменной сессии |
|||
|
#18+
Получается нет больше вариантов кроме как собирать запрос как строку? Кстати в запросе выше скобки не там стояли Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.11.2019, 10:53
|
|||
|---|---|---|---|
Фильтрация данных с проверкой переменной сессии |
|||
|
#18+
Samir, автор, скорее всего из-за того, что по плану запроса правая часть всё равно выполняется. поставьте SET STATISTICS IO ON и посмотрите, не должно читать что-то из подзапросов. И план актуальный покажите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&tablet=1&tid=1687030]: |
0ms |
get settings: |
12ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
81ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 254ms |
| total: | 441ms |

| 0 / 0 |
