|
|
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Уважаемые, подскажите чайнику как оптимизировать запрос. БД Firebird 2.1 есть запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. В запросе обращение к двум процедурам. Одна процедура выдает перечень смен (Дату, Смена) в месяце. Во второй процедуре идут циклические подсчеты опозданий, выходов и уходов. К GET_SHIFT_PERSON обращаемся много раз с одним и тем же параметром... Как мне оптимизировать, чтоб обращений было одно? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 17:51:02 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Fly`, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 18:00:43 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Fly`, а зачем вообще нагородили этот кошмар из процедур? я ни одной таблицы в запросе не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 18:01:46 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Fly`, только одного обращения добиться всё равно не удастся, если конечно GET_SHIFTS_IN_MONTH не даёт одну запись ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 18:03:28 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, а давно стало безопасно писать такие джойны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 19:38:34 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
afgmа давно стало безопасно писать такие джойны? А когда их было опасно писать? http://ibase.ru/devinfo/dataaccesspaths.htm Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 19:41:24 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Что НЕ надо делать в InterBase и Firebird 14. Не рекомендуется использовать связку "таблица+ХП" , т.е. явный или неявный join таблицы с хранимой процедурой. В некоторых ситуациях наблюдалось неправильное выполнение запроса (Например, от пеpемены мест слагаемых, "сумма" иногда меняется.). Также ситуации сильно зависят от версий IB (4.x, 5.x, 6.x) - в одной из версий это может привести к падению сервера, в другой не выполнится, а в третьей - пройдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 20:06:20 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
DragНе рекомендуется использовать связку "таблица+ХП" А если мозг включить?.. Вопрос звучал "писать такие джойны". Между "такими джоинами" и "джоинами вообще" - дистанция огромного размера. Описанная в статье по ссылке, которую я привёл. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 20:09:51 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, "грубиян и не воспитанный тип" (с) Капитан Зелёный А чем отличается данный join от приведенного по моей ссылке? (статью перечитал) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 20:21:50 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Drag, я сейчас тот документ вообще удалю. Уже говорил, что мне не очень интересно поправлять подобные древние "сборники рецептов" под современные реалии. Когда-то - да, глючило. Теперь вроде бы не глючит, можно, но определенным образом. В итоге получится сборник рецептов + туча поправок к нему. Мне это не надо. А вам советую обращать внимание на информацию в заголовках статей - когда статья была создана, и когда она последний раз была обновлена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 20:23:40 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Dragчем отличается данный join от приведенного по моей ссылке? По твоей ссылке вообще нет никаких джоинов. А статью перечитал видимо плохо. Ограниченным набором планов он отличается. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 20:24:57 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Drag, я не знаю про что данный пункт. Ни разу не видел случаев падения при такой связке. И уж никогда не боялся делать такие JOIN если это оправдано. Единственное прошу обратить внимание, что именно LEFT JOIN. Обычный JOIN до тройки работать не будет если в процедуру передаётся параметр из соединяемого потока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 20:30:40 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
kdv, Спасибо. Но в любом случае, соглашусь с Дмитрием, что такое обращение к данным - "кошмар". Кстати, а "(SELECT shift_enter FROM GET_SHIFT_PERSON(:PERSON_ID, GS."SHIFT", GS.DT)) is not null" мультипл роу ин синглтон селект не ругнет? или GET_SHIFT_PERSON всегда дает одну запись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 20:32:05 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, на ошибки не натыкался. Просто запоминаю полезные советы при работе с FB. А про JOIN тоже ловил такую штуку... вкурсе... значит в 3-ке уже можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 20:35:46 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Drag, пока не до конца Код: sql 1. 2. 3. FB 2.5 Код: plaintext 1. FB 3.0 Alpha Код: plaintext 1. Однако Код: sql 1. 2. 3. В обоих версиях Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 20:56:29 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА когда их было опасно писать? Это почти единственный случай, когда корелированная процедура будет работать "как ожидается". В случае отсутствия связи процедура будет выполняться многократнно. В влучаях отличных от такого вообще ничего сказать нельзя. В общем для нормального скрещивания процедурно-реляционного подхода не хватает ручного указания детерминированности (и для будущих функций тоже), кеширования результата выполнения, вьюшек с параметрами (транзитные табличные функции или как ещё их называют) и, возможно, явного аналога cross apply/other apply. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 21:09:26 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
afgm, хватит чушь писать. То что процедура может выполняться многократно, а может не выполняться опасности не представляет. Просто надо это понимать и не писать такое когда это не оправдано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 21:26:51 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Симонов Денисхватит чушь писать. То что процедура может выполняться многократно, а может не выполняться опасности не представляет. Просто надо это понимать и не писать такое когда это не оправдано. Чушь = неправда? Или как? Я за запрет таких вещей со стороны сервера для устранения неоднозначности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 21:43:09 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
afgm, запрет таких вещей теперь делать нельзя. У многих на такое поведение логика завязана. И вообще это select из процедуру с параметром это одна из самых востребованных фич, которые другие сервера не умеют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 21:52:29 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисИ вообще это select из процедуру с параметром это одна из самых востребованных фич, которые другие сервера не умеют. Сам считаю это одной из основных фич FB, но речь шла о джойнах с процедурами в спорных ситуациях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 22:04:12 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
afgm, покажи пример спорной ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 22:07:33 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
afgmречь шла о джойнах с процедурами в спорных ситуациях. Нет никаких спорных ситуаций. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 22:09:48 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Симонов Денисafgm, покажи пример спорной ситуации. Код: 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. 27. 28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 22:44:22 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
afgm, ага давай тогда запретим ещё и вот это Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 22:50:10 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38423567&tid=1564231]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
211ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
86ms |
get tp. blocked users: |
2ms |
| others: | 204ms |
| total: | 551ms |

| 0 / 0 |
