|
|
|
Выбор варианта для ХП..
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Подскажите, какой вариант правильнее с точки зрения "процедурописания" для FB 1.0? (Процедура выводит список товаров + кол-во из журнала операции с товарами. Пример упрощен.) Так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. или так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. P.S. Как в IBExpert получить пла выполнения ХП? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2004, 23:52:20 |
|
||
|
Выбор варианта для ХП..
|
|||
|---|---|---|---|
|
#18+
Правильность я бы рассматривал с точки зрения времени выполнения запроса. На мой взгляд запросы выполняться будут одинаковое время, но первый запрос более структурированее что ли... Лучше Вам ответят более опытные форумцы ;) авторP.S. Как в IBExpert получить пла выполнения ХП? На вкладке для ХП "Анализ плана", а после выполнения "Анализ производительности" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2004, 06:28:05 |
|
||
|
Выбор варианта для ХП..
|
|||
|---|---|---|---|
|
#18+
Не помню точно, но каэется Case появилась в 1.5 В этом упрошенном варианте, вообще можно обойтись без ХП - одним селектом. Код: plaintext 1. Ну а про процедуру - надо смотреть планы. Скорость выполнения почти будет одинакова. Но меня могут поправить ! Best regards, Dnico . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2004, 10:00:26 |
|
||
|
Выбор варианта для ХП..
|
|||
|---|---|---|---|
|
#18+
Спасибо всем. Первый вариант оказался лучше тем, что всегда возвращает Null при отсутствии агрегат. функции в подзапросе. А ХП у меня потому, что эта конструкция - часть большой ХП, возвращающей приложению разные выборки (связанные с товаром) в зависимсти от значения доп. параметра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2004, 20:08:20 |
|
||
|
Выбор варианта для ХП..
|
|||
|---|---|---|---|
|
#18+
DnicoНе помню точно, но каэется Case появилась в 1.5 В этом упрошенном варианте, вообще можно обойтись без ХП - одним селектом. Код: plaintext 1. 2. 3. 4. Запрос абсолютно бестолковый. При выполнении агрегатной функции SUM() , записи содержащие NULL игнорируются. Посему, CASE внутри SUM тут нафиК не нужен. Ибо только тормозов добавляет, ничего полезного не делая. SUM() вернёт NULL только в том случае, если все записи подпадающие под условие выборки содержат этот самый NULL , либо, если результат выборки пустой. А чтоб конвертировать NULL в 0 (или любое иное значение) есть COALESCE() . "Накладывать" его нужно "сверху" на SUM() . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2004, 20:34:21 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32660675&tid=1578036]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
188ms |
get topic data: |
9ms |
get forum data: |
6ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 188ms |
| total: | 459ms |

| 0 / 0 |
