
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
12.04.2004, 13:38
|
|||
|---|---|---|---|
|
|||
Почему не используется индекс в запросе..? |
|||
|
#18+
есть ХП которая делает выборку create procedure ORDERS_GET( IDORDER integer) returns( NAME varchar(20)) as begin for select NAME from ORDERS where (:IDORDER is null or ID_ORDER = :IDORDER) into :NAME do suspend; end такая процедура хороша тем, что если нам надо выбрать все заказы или только один, то мы запускаем процедуру с параметром null либо со значением. и когда запускаем процедуру с известным параметром то в запросе не используется индекс!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.04.2004, 13:45
|
|||
|---|---|---|---|
Почему не используется индекс в запросе..? |
|||
|
#18+
А индекс как у тебя построен? С учетом Null - ов али нет? Если не, то - не обессудь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.04.2004, 13:54
|
|||
|---|---|---|---|
Почему не используется индекс в запросе..? |
|||
|
#18+
Вообще-то в случае когда сравнивается входной параметр с чем-то в условии where, индексы в FB не используются. Делай так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.04.2004, 13:58
|
|||
|---|---|---|---|
Почему не используется индекс в запросе..? |
|||
|
#18+
Вообще-то в случае когда сравнивается входной параметр с чем-то в условии where, индексы в FB не используются. Поподробнее можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.04.2004, 14:36
|
|||
|---|---|---|---|
Почему не используется индекс в запросе..? |
|||
|
#18+
mv Как ты себе представляешь поиск по индексу :IDORDER is null , где IDORDER - переменная ? Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.04.2004, 14:56
|
|||
|---|---|---|---|
Почему не используется индекс в запросе..? |
|||
|
#18+
where (:IDORDER is null or ID_ORDER = :IDORDER) Ну, с одной стороны - никак, типа, если входная переменная - Null, то (в данном случае) берем все подряд, тут и индекс никакой не нужен, и вторая часть условия (после or) не должна анализироваться... А если Pavel Alekseev ошибся, и ему нужны все записи с null в поле Id_Order, и записи, совпадабщие с параметрами, то, если он напишет: where (ID_ORDER is null or ID_ORDER = :IDORDER) - индекс по id_oreder использоваться будет? Может быть, если он построен с особыми опциями, включающими Null - значения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.04.2004, 15:07
|
|||
|---|---|---|---|
Почему не используется индекс в запросе..? |
|||
|
#18+
Во втором случае конечно будет использоваться! Но Pavel Alekseev имел ввиду как раз именно :IDORDER IS NULL. . автортакая процедура хороша тем, что если нам надо выбрать все заказы или только один, то мы запускаем процедуру с параметром null либо со значением. Best regards, Dnico ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=40&mobile=1&tid=1578849]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
107ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 213ms |
| total: | 437ms |

| 0 / 0 |
