Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Параметризованный фильтр или 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:15 |
|
||
|
Параметризованный фильтр или 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:27 |
|
||
|
Параметризованный фильтр или OR
|
|||
|---|---|---|---|
|
#18+
invm, Код: sql 1. Спасибо огромное В чем фокус? Union не красивы скрипт. Очень громоздкий код и без него, а с ним в три этажа... не айс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2020, 22:33 |
|
||
|
Параметризованный фильтр или OR
|
|||
|---|---|---|---|
|
#18+
SHKoder В чем фокус? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2020, 00:46 |
|
||
|
Параметризованный фильтр или OR
|
|||
|---|---|---|---|
|
#18+
alexeyvg Сервер переделывает запрос (строит план запроса) для конкретных значений параметров Тогда я понимаю, что эту опцию правильно использовать для любого параметризованного запроса? О Боги! Чему нас только в школе учили? А хотя нас учили достаточно давно. Однако, правильно ли использовать опцию в каждом запросе, где есть более одного параметра по структуре OR? Для запроса типа Код: sql 1. 2. 3. 4. 5. очевидно нет необходимости?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2020, 00:56 |
|
||
|
Параметризованный фильтр или OR
|
|||
|---|---|---|---|
|
#18+
SHKoder alexeyvgСервер переделывает запрос (строит план запроса) для конкретных значений параметров Тогда я понимаю, что эту опцию правильно использовать для любого параметризованного запроса?Нет, потому что тогда серверу придётся каждый раз перестраивать план, что увеличивает расход ЦПУ ,и время выполнения. Вариант с UNION будет выполняться всегда быстро, а recompile можно ставить для сложных, но редко выполняющихся запросов, или для очень простых (что бы перестроение плана было быстрым). SHKoder Для запроса типа Код: sql 1. 2. 3. 4. 5. очевидно нет необходимости?? Для простого запроса и правильных индексов recompile точно вреден. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2020, 01:03 |
|
||
|
Параметризованный фильтр или 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:27 |
|
||
|
Параметризованный фильтр или OR
|
|||
|---|---|---|---|
|
#18+
nullin, Друг, у меня остался только один патрон... Раньше я думал, что потрачу его на хромую лошадь, но я ошибался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2020, 01:30 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1686224]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
68ms |
get topic data: |
11ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 374ms |

| 0 / 0 |
