|
Оптимизировать запрос
|
|||
---|---|---|---|
#18+
CREATE OR REPLACE FUNCTION getMessages(begindate date, enddate date) RETURNS table("outsms" bigint, "delivsms" bigint, "outemail" bigint, "delivemail" bigint) LANGUAGE plpgsql AS $body$ begin RETURN QUERY select outsms.cnt as "outsms", delivsms.cnt as "delivsms", outemail.cnt as "outemail", delivemail.cnt as "delivemail" from (select count(a.*) as cnt from NTF_MESSAGE a /*всего отправлено смс*/ join NTF_MSG_TYPES_LINK b on b.ATTRA=a.A_OUID where b.ATTRb=10322418 and a.a_createdate>=begindate and a.a_createdate<=enddate ) outsms join (select count(a.*) as cnt from NTF_MESSAGE a /*всего доставлено смс*/ join NTF_MSG_TYPES_LINK b on b.ATTRA=a.A_OUID join NTF_MESSAGE_LOG c on c.a_message=a.A_OUID where b.ATTRb=10322418 and a.a_createdate>=begindate and a.a_createdate<=enddate ) delivsms on 1=1 join (select count(a.*) as cnt from NTF_MESSAGE a /*всего отправлено email*/ join NTF_MSG_TYPES_LINK b on b.ATTRA=a.A_OUID where b.ATTRb=10322416 and a.a_createdate>=begindate and a.a_createdate<=enddate )outemail on 1=1 join (select count(a.*) as cnt from NTF_MESSAGE a /*всего доставлено email*/ join NTF_MSG_TYPES_LINK b on b.ATTRA=a.A_OUID join NTF_MESSAGE_LOG c on c.a_message=a.A_OUID where b.ATTRb=10322416 and c.a_error is null and a.a_createdate>=begindate and a.a_createdate<=enddate ) delivemail on 1=1 ; end; $body$; Запрос выполняется очень долго, как его оптимизировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 11:22 |
|
Оптимизировать запрос
|
|||
---|---|---|---|
#18+
TanyaBlaginina, покажите планы запросов... покажите структуру таблиц участвующих... по виду у вас нам EAV схема которая убогая по производительности и не лечится но может быть что то очевидное получится сделать. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 12:17 |
|
Оптимизировать запрос
|
|||
---|---|---|---|
#18+
TanyaBlaginina Код: 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.
Запрос выполняется очень долго, как его оптимизировать? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 10:26 |
|
|
start [/forum/topic.php?fid=53&fpage=24&tid=1994529]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 18ms |
total: | 147ms |
0 / 0 |