|
|
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
Как можно оптимизировать этот код. Оно выполняеться 180 минут надо сократит время. select decode(d.is_authorization, 'Y'/*AUTH*/, d.trans_date, d.trans_date) as TRANS_DATE, substr(trim(ac.contract_number), 1, 4) || '********' || substr(trim(ac.contract_number), 13, 4) as N_êàðòî÷êè, cu.name as Âàëþòà_êîíò, p.s, cu2.name as Âàëþòà_òðàíç, d.trans_amount as ñóììà_òðàíç, rc.resp_text, co.name as Ñòðàíà, d.trans_city as Ãîðîä, d.trans_details , s.name as SICCODE, cl.short_name, ac.service_group as Êîä_ôèëèàëà, ct.name as Òèï_êëèåíòà, cl.client_number as ÈÈÍ, tt.name as Òèï_òðàíçàêöèè, round(d.trans_amount / 1000, 2) t_am, round((case d.settl_curr when '398' then d.settl_amount / fxr.cb_rate when '978' then d.settl_amount * fxeur.cb_rate / fxr.cb_rate else d.settl_amount end), 2) Am_USD, round(sum(case d.settl_curr when '398' then d.settl_amount / fxr.cb_rate when '978' then d.settl_amount * fxeur.cb_rate / fxr.cb_rate else d.settl_amount end) over(partition by ac.client__id), 2) sum_USD from ows.acnt_contract ac join ows.client cl on ac.client__id = cl.id and cl.amnd_state = 'A' and cl.clt in join ows.doc d on ac.contract_number = d.target_number and d.source_channel in ('v', 'V', 'O') and d.amnd_state = 'A' and d.trans_date >= to_date('29.06.2018', 'dd.mm.yyyy') and d.trans_date <= to_date('03.08.2018', 'dd.mm.yyyy')-- + 1 and d.posting_status = 'P' and d.fx_settl_date > to_date('1990-01-01', 'yyyy-mm-dd') and d.id > 0 and d.trans_type in (5, 11, 13, 50) join ows.acnt_contract acc on ac.acnt_contract__oid = acc.id and acc.amnd_state = 'A' join ows.currency cu on cu.code = ac.curr and cu.amnd_state = 'A' join ows.currency cu2 on cu2.code = d.trans_curr and cu2.amnd_state = 'A' join ows.sic s on s.code = d.sic_code and s.amnd_state = 'A' join ows.resp_code rc on d.return_code = rc.resp_code and rc.amnd_state = 'A' join ows.country co on co.code = d.trans_country and co.name <> 'Kazakhstan' and co.amnd_state = 'A' left join ows.CREDIT_HISTORY ch on ch.doc__id = d.id join ows.client_type ct on ct.id = cl.clt and ct.amnd_state = 'A' and ct.id in (6, 10) left join ows.trans_type tt on d.trans_type = tt.id and tt.amnd_state = 'A' join ows.m_transaction mt on d.id = mt.doc__oid and mt.posting_status = 'P' and mt.id > 0 and mt.service_class = 'T' left join ows.fx_rate fxr on mt.fx_seqv_n = fxr.seqv_n and fxr.code = 840 left join ows.fx_rate fxeur on mt.fx_seqv_n = fxeur.seqv_n and fxeur.code = 978 left join (select abs(den.AMOUNT) s, d1.doc__prev__id d, den.ACNT_CONTRACT__ID num from ows.doc_entry_n den join ows.doc d1 on den.DOC__OID = d1.id and d1.amnd_state = 'A') p on p.num = ac.id and p.d = d.id where ac.amnd_state = 'A' and ac.con_cat = 'C' and (ac.service_group = '*' or '*' = '*') order by 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 11:13 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 11:19 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
Отформатировал чтобы смотреть Erik1210198686Как можно оптимизировать этот код. Оно выполняеться 180 минут надо сократит время. Код: plsql 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 11:53 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
Vadim Lejnin, Что за фильтрация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 11:57 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
Erik1210198686, объемы таблиц и схемы их индексации предлагается угадать? может у вас там миллиарды неиндексированных данных. тогда 180 минут - не такой уж и плохой результат... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 12:02 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
Щукина Анна, В базе 100000 записей . Начальник говорит это долго. Можно объединить ли таблицы без join. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 12:09 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
Erik1210198686Можно объединить ли таблицы без join.Можно. Но будет больше и медленней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 12:10 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
Erik1210198686Vadim Lejnin, Что за фильтрация Используйте тэги форума, читать невозможно запросы без них + у Вас кодировка национальных символов поплыла У В целом, запрос как запрос За исключением шедевров вроде: Код: plsql 1. Запрос на засыпку: что вернет это выражение? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 12:13 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
Erik1210198686, Тут у Вас - беда печаль Да еще и странный select Код: plsql 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 1. как было описано выше decode(d.is_authorization, 'Y'/*AUTH*/, d.trans_date, d.trans_date) можно менять на d.trans_date 2. в Way4 ac.contract_number без пробелов, его не надо trim-ить 3. это вообще странная конструкция and cl.clt in 4. попытка прикрутить индекс? and d.id > 0 5. зачем эта таблица прикручена? join ows.acnt_contract acc 6. в Way4 была функцайка перевода цифрового кода валюты в имя, а посему используйте его а не добавляйте 2 таблицы currency ... ну или перенесите в область select 7. зачем лезть в CREDIT_HISTORY и не использовать ответ? 8. попытка использования индекса? and mt.id > 0 9. попытка выключить индекс? and (ac.service_group = '*' or '*' = '*') - не пишите вообще з.ы. проверьте поле fxr.code = 840 - оно точно number? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 12:13 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
Erik1210198686Щукина Анна, В базе 100000 записей . Начальник говорит это долго. Можно объединить ли таблицы без join. 100к записей в таблице doc? тогда добавьте hint LEADING(d) и/или FULL(d) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 12:24 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
Erik1210198686, и and d.fx_settl_date > to_date('1990-01-01', 'yyyy-mm-dd') (по моей памяти) не пустое и это условие будет только мешать (тоже по памяти) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 12:28 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, Fxr.code тип number ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 12:28 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, Как перенести в область select таблицу ows.corrency cu ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 12:38 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
Erik1210198686MaximaXXL, Fxr.code тип number Ну и славненько, тогда выполните рекомендации описанные выше И очень рекомендую hint-ы потому как этот селект должен выводить движения и подтягивать людей, а не наоборот p.s. Когда надо что-то оптимизировать - добавляете пожалуйста план селекта, очень сложно без него понять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 12:39 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
Erik1210198686MaximaXXL, Как перенести в область select таблицу ows.corrency cu Ну как-то так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 12:44 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 12:48 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
Erik1210198686, И напишите, плз, до скольки ускорился селект после проделанной работы? Да и новый селект можете прикрепить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 13:07 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, Да хорошо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2018, 13:13 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
в КЗ со специалистами в банках все хуже и хуже :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2018, 11:37 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
ps -efв КЗ со специалистами в банках все хуже и хуже :( Радует, что не все банки используют Way4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2018, 20:00 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
Kamaelps -efв КЗ со специалистами в банках все хуже и хуже :( Радует, что не все банки используют Way4 А что с ней не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2018, 12:24 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
Melkomyagkii_newbiKamaelпропущено... Радует, что не все банки используют Way4 А что с ней не так? Всё нормально с Way4. Контекст про КЗ, а в КЗ не у всех Way4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2018, 13:53 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
Kamael, ну так "нет процессинга - нет Way4" а без процессинга эт не банки, а шаражки :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2018, 16:12 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
ps -efKamael, ну так "нет процессинга - нет Way4" а без процессинга эт не банки, а шаражки :) К солежению или к счастью, Way4 не единственное решение, которое может процессить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2018, 05:25 |
|
||
|
Оптимизпция sql кода
|
|||
|---|---|---|---|
|
#18+
Kamael, ваша логика мне непонятна. то на "в кз специалистов все меньше" вы радуетесь, что не везде вей4 есть, то теперь на справедливое утверждение, что не у всех банков есть свой процессинг, доказывать взялись, что процессить может не только вей вы точно мне отвечаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2018, 09:26 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39698388&tid=1883250]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
144ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 411ms |

| 0 / 0 |
