|
|
|
Sql запрос
|
|||
|---|---|---|---|
|
#18+
Доброе утро. Есть запрос Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Без этой строки (select max(l2.data1) from limit_invest_sv l2 where l.pacc_id=l2.pacc_id and l2.limitpodgr_id=l.limitpodgr_id) он выводит нормально по скорости секунды, с этой строкой скорость вывода несколько минут, в таблице limit_invest_sv около 32000 записей, как можно оптимизировать этот запрос и мне тут нужно ещё активность за максимальную дату вывести? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 08:11:14 |
|
||
|
Sql запрос
|
|||
|---|---|---|---|
|
#18+
А где его ibexperte посмотреть? Вот, что нашёл Plan PLAN (L2 NATURAL) PLAN (L2 NATURAL) PLAN SORT (JOIN (L NATURAL, L1 INDEX (PK_LIMIT_INVEST_PODG), P INDEX (PK_PERSONAL_ACCOUNTS), C INDEX (PK_CLIENTS))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 08:48:52 |
|
||
|
Sql запрос
|
|||
|---|---|---|---|
|
#18+
r901Без этой строки (select max(l2.data1) from limit_invest_sv l2 where l.pacc_id=l2.pacc_id and l2.limitpodgr_id=l.limitpodgr_id) он выводит нормально по скорости секунды, с этой строкой скорость вывода несколько минут, в таблице limit_invest_sv около 32000 записей Код: sql 1. - ? ибо... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 08:52:12 |
|
||
|
Sql запрос
|
|||
|---|---|---|---|
|
#18+
Видимо, select max(l2.data1)... дергается кучу раз, да еще и без индексов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 08:53:26 |
|
||
|
Sql запрос
|
|||
|---|---|---|---|
|
#18+
r901PLAN (L2 NATURAL) Ну вот и одна из причин тормозов зы.Построй индекс на таблице limit_invest_sv по полям pacc_id,limitpodgr_id для этого запроса должно помочь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 08:55:45 |
|
||
|
Sql запрос
|
|||
|---|---|---|---|
|
#18+
r901, попробуй вот так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 08:57:55 |
|
||
|
Sql запрос
|
|||
|---|---|---|---|
|
#18+
Вано Сусанишвили, Вот зачем там DESC индекс по полям (pacc_id, limitpodgr_id) Разве что по полям (pacc_id, limitpodgr_id, data1) но уверенности у меня нет, а проверять сейчас некогда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 09:04:24 |
|
||
|
Sql запрос
|
|||
|---|---|---|---|
|
#18+
m7mРазве что по полям (pacc_id, limitpodgr_id, data1) но уверенности у меня нет, а проверять сейчас некогда правильно думаешь. Но работать как надо этот индекс будет разве что в тройке и то не факт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 09:09:25 |
|
||
|
Sql запрос
|
|||
|---|---|---|---|
|
#18+
r901, Код: plaintext ага то есть ни FK, ни индексов для полей pacc_id и limitpodgr_id нет? Да и ещё не плохо бы версию сервера озвучить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 09:12:39 |
|
||
|
Sql запрос
|
|||
|---|---|---|---|
|
#18+
Спасибо индекс даже по двум полям limit_invest_sv(pacc_id, limitpodgr_id) помог. Ещё раз спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 09:22:14 |
|
||
|
Sql запрос
|
|||
|---|---|---|---|
|
#18+
m7mВот зачем там DESC индекс по полям (pacc_id, limitpodgr_id)там под спойлером погляди, видно всё. Да и вообще: http://www.ibase.ru/devinfo/dataaccesspaths.htm#chapter123 1.2.3. Навигация по индексу <...> для вычисления MIN достаточно взять первый ключ в ASC-индексе, а для вычисления MAX - первый ключ в DESC-индексе . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 09:55:34 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38551461&tid=1563914]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
191ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 474ms |

| 0 / 0 |
