Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
14.04.2020, 22:15
|
|||
---|---|---|---|
Параметризованный фильтр или OR |
|||
#18+
Други, помогите, пожалуйста, как реализовать выборку... Я постараюсь показать на грубом примере, но в моем случае выборка очень большая по количеству записей и полей. Обусловлено бизнесом и сузить выборку не предоставляется возможным. Однако, есть направления по бизнесу, которые могут позволить делать выгрузку либо по одному направления, либо по другому. Итак, есть таблица: Код: sql 1.
и есть условия выборки, нужно отобрать данные, где 1. данные выборки удовлетворяют условию фильтра 2. данные выборки не удовлетворяют условию выборки 3. все иными словами, я хочу параметризовать то, что сейчас отбирается так: 1. Код: sql 1.
2. Код: sql 1.
3. Код: sql 1.
таким образом, в случаях 1. выбираются все (условно) договора, которые удовлетворяют условию, что направление договоров = @param 2. выбираются все другие договора, где направление любые, кроме @param 3. выбираются договора все. Таким образом я написал запрос: Код: sql 1. 2. 3. 4.
где ID собственно идентификатор из справочника того самого направления. И вся беда в том, что такой запрос стал работать непомерно дольше и я понимаю, что проблема в OR , но как ее решить, что-то не могу дать ладу. Подскажи всезнающий all, чего я не так наворотил? Мне это виделось так, что я мог бы задавать значения параметру @param , и было бы щастье. Спасибо огромное в диктанте три-четыре варнинга, но в общем компилируется ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.04.2020, 22:27
|
|||
---|---|---|---|
Параметризованный фильтр или OR |
|||
#18+
Код: sql 1. 2. 3. 4. 5.
Либо Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.04.2020, 22:33
|
|||
---|---|---|---|
Параметризованный фильтр или OR |
|||
#18+
invm, Код: sql 1.
Спасибо огромное В чем фокус? Union не красивы скрипт. Очень громоздкий код и без него, а с ним в три этажа... не айс ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.04.2020, 00:46
|
|||
---|---|---|---|
Параметризованный фильтр или OR |
|||
#18+
SHKoder В чем фокус? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.04.2020, 00:56
|
|||
---|---|---|---|
Параметризованный фильтр или OR |
|||
#18+
alexeyvg Сервер переделывает запрос (строит план запроса) для конкретных значений параметров Тогда я понимаю, что эту опцию правильно использовать для любого параметризованного запроса? О Боги! Чему нас только в школе учили? А хотя нас учили достаточно давно. Однако, правильно ли использовать опцию в каждом запросе, где есть более одного параметра по структуре OR? Для запроса типа Код: sql 1. 2. 3. 4. 5.
очевидно нет необходимости?? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.04.2020, 01:03
|
|||
---|---|---|---|
Параметризованный фильтр или OR |
|||
#18+
SHKoder alexeyvgСервер переделывает запрос (строит план запроса) для конкретных значений параметров Тогда я понимаю, что эту опцию правильно использовать для любого параметризованного запроса?Нет, потому что тогда серверу придётся каждый раз перестраивать план, что увеличивает расход ЦПУ ,и время выполнения. Вариант с UNION будет выполняться всегда быстро, а recompile можно ставить для сложных, но редко выполняющихся запросов, или для очень простых (что бы перестроение плана было быстрым). SHKoder Для запроса типа Код: sql 1. 2. 3. 4. 5.
очевидно нет необходимости?? Для простого запроса и правильных индексов recompile точно вреден. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.04.2020, 01:27
|
|||
---|---|---|---|
|
|||
Параметризованный фильтр или OR |
|||
#18+
SHKoder, а так, что получается? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.04.2020, 01:30
|
|||
---|---|---|---|
Параметризованный фильтр или OR |
|||
#18+
nullin, Друг, у меня остался только один патрон... Раньше я думал, что потрачу его на хромую лошадь, но я ошибался... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&tablet=1&tid=1686224]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 280ms |
total: | 405ms |
0 / 0 |