Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
12.02.2019, 15:54
|
|||
---|---|---|---|
|
|||
Выборка (распределить ресурсы...) |
|||
#18+
Доброго времени суток! Есть такая схема таблиц: сс_queue - это таблица настройки очереди, в ней есть поле которое отвечает за максимальное количество задач. cc_outbound_resource - это таблица которая отвечает за настройки общих ресурсов, в ней есть поле max_call_count - это максимальное количество исходящих сессий для этого ресурса. cc_queue_routing - это таблица которая распределяет в зависимости от pattern (это regex :(, например ^1, ^2 ... ) и очереди - какие ресурсы можно использовать cc_resource_in_routing - таблица соединяет cc_queue_routing с cc_outbound_resource (то есть ресурс может быть общий для задач) сс_member - это таблица участников которым из выборки нужно позвонить/написать... cc_member_communications - это средства связи сс_member (в выборку должен попасть только 1 номер в зависимости от приоритета и pattern табл cc_queue_routing) Как максимально быстро соединить cc_member (только 1 c cc_member_communications) с cc_outbound_resource таким образом, чтобы получилось (resource_id = null не должно попадать в результат, это для понимания как работает расстановка ресурсов): cc_idqueue_ididnumberrn resource_id1311172001R331210032R151310053R161410064R181610085R191710096R171510077null11111118null102820099R21129121010R212210720111R3 Исходные данные: Код: 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. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120.
Грубо говоря, мне нужно получить список средств связи которые в зависимости от regex будут использовать максимально возможное количество cc_outbound_resource.max_call_count но не больше сс_queue.max_call_count Сортировка: сс_queue.priority > сс_member.priority > cc_member_communications.priority > cc_queue_routing.priority > cc_resource_in_routing.priority Помогите пожалуйста советом или решением задачи, много времени потерял на этой задаче (если плохо объяснил задачу - напишите) возможно неверная структура БД ? есть возможность сменить. Главная цель максимально быстро сделать выборку и дать пользователю возможность тонкой настройки исходящих задач и управление ресурсами для этих задач посредством Regex. DB_VERSION Версию можно сменить на не старше 9 PostgreSQL 11.1 (Debian 11.1-3.pgdg90+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit Схема: ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/moderation_log.php?user_name=%D0%B0%D1%88%D0%BA]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
2ms |
others: | 439ms |
total: | 594ms |
0 / 0 |