Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
vyegorovits_me, что храниться в `ru_psk_point.way` -- точка? ломанная? замкнутый контур? координаты откуда беруться? и что это -- фиксация каких-то мест? вы считаете дистанцию от заданных координат и потом отбираете минимальныую сумму. Вы хотите найти `way`-ы, ближайшие к заданным координатам? Расстояние между координатами? Расстояния между `way`-ми? -- уточните! если `ru_psk_point.way` используется в географических выражениях, почему не использовать тип geography? зачем хранить точки `ru_psk_rels.parts` в виде массива и мучаться с индексами, может ввести подчинённую таблицу? 1. Точка(её координаты) 2. Координаты - это входящая переменная(в функции где этот запрос). 3. Минимальную сумму расстояний от стартовой входящей координаты до посадочной остановки и от конечной координаты до остановки для выхода. Далее беру id остановок(для дальнейшей обработки - списка маршрутов) и way-и остановок(для геометрической проверки принадлежности к линии маршрута). 4. Не знаю, просто стоит тип geometry, не думал вообще над этим и зачем это. 5. В таком виде предоставляет данные программа-импорт(osm2pgsql), в принципе я уже создал таблицу для извлечения индексов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 16:24 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
its_me, удф по всему у вас мухи копулируют в голове и коде. он должен выглядеть как--то так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. при этом на прогретых данных имеем: Код: 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. 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. ели я правильно понял про ваш unnest . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 17:11 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
qwwq, и тогда без лишних структур: Код: 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. 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 17:24 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
qwwqits_me, удф по всему у вас мухи копулируют в голове и коде. он должен выглядеть как--то так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. при этом на прогретых данных имеем: Код: 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. 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. ели я правильно понял про ваш unnest . )))))Да, порядок такой!))) P.S.: Боюсь понимать уже Вас(удф,мухи,да ещё и копулируют!!!ужас) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 17:25 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
qwwq, Код: plaintext 1. Это я Ваш DO выполнил, по времени у меня также мой запрос, в чем изюминка?(если аккуратно можно ответить))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 17:29 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
its_meqwwq, Код: plaintext 1. Это я Ваш DO выполнил, по времени у меня также мой запрос, в чем изюминка?(если аккуратно можно ответить))) что конкретно вас интересует ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 17:34 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
_t1_ и _t2_ - эточё такое? ещё это непонятно, что тут происходит(это "или" или "и"?): Код: plaintext с unnest-ом еще протестю... и самый главный вопрос: это будет работать без потери времени при увеличении исходных таблиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 18:01 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
its_me, <<label>> : https://www.postgresql.org/docs/9.5/static/plpgsql-control-structures.html#PLPGSQL-CONTROL-STRUCTURES-LOOPS https://www.postgresql.org/docs/current/static/functions-array.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 18:12 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
its_meи самый главный вопрос: это будет работать без потери времени при увеличении исходных таблиц? с потерей не менее чем квадратичной. при одинаковых длинах путей. если и пути вырастут -- всё будет еще гаже. вы что--то не то изобретаете. у вас постгис есть с дистансами и прочими удобствами меж точками и мультипойнтами -- а вы все это назад в скл тянете с неоптимальными переборами коллекций. https://yandex.ru/yandsearch?text=multipoint distance postgis&lr=213 там где--то и оценки затратности от мощности геометрий были. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 21:02 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
qwwq, Я правильно понял, что если все строки из первого/верхнего цикла не пройдут по фильтру(ok) с первой строкой внутреннего/второго цикла, то результата вообще не будет(я так понял описание выхода из блока/цикла)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2016, 11:17 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
its_meqwwq, Я правильно понял, что если все строки из первого/верхнего цикла не пройдут по фильтру(ok) с первой строкой внутреннего/второго цикла, то результата вообще не будет(я так понял описание выхода из блока/цикла)? народноемальчик, ты дебил ? формально -- да, результата не будет. но фильтр просто повторяет ваш множественный джойн , если вы не заметили. т.е. фильтрует только те пары, которые принадлежат одному пути и состоят в заданном отношении порядка. т.е. он не может ничего не вернуть. выгода EXISTS вместо JOIN -- на единственности чека. можно идти в обратную сторону -- идти циклом не по точкам, а по путям. вложенно -- циклом по точкам путей (по индексу массивов). (там есть пара мест для оптимизации -- т.е. понятно , когда НЕ надо пересчитывать суммарные длинноты на шаге, посчитав расстояние от очередной точки). т.е. затраты -- около ~ числа путей на число или квадрат (там на мультипойнты рассечения надо брать, но слева инкрементально расстояние считается, а справа его не надо пересчитывать часто -- если расстояние от выпавшей точки больше прежнего, т.ч. квадрата там не будет) числа точек в пути. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2016, 11:43 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
qwwq, А почему он "не может ничего не вернуть"? Теоретически легко же может не вернуть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2016, 12:04 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
its_meqwwq, А почему он "не может ничего не вернуть"? Теоретически легко же может не вернуть? Отвечаю сам себе. Вся проблема из-за маленького нюанса - я не знал , что 10>=null возвращает FALSE(где-то я встречал наоборот). Пришлось протестить этот вопрос отдельно. Теперь точно что-то вернёт, если такое есть там(пройдет все основные минимальные варианты). Так что прошу прощения за последнее сомнение. На счет наоборот идти и других вариантов, на вскидку, будет быстрее или минимальны изменения по времени? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2016, 15:13 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
its_meits_meqwwq, А почему он "не может ничего не вернуть"? Теоретически легко же может не вернуть? Отвечаю сам себе. Вся проблема из-за маленького нюанса - я не знал , что 10>=null возвращает FALSE(где-то я встречал наоборот).мальчик, <<<>>> Код: sql 1. и не путайте результаты least | greatest с результатом сравнения. там результат если один из операндов null оговорен отдельным соглашением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2016, 15:25 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
its_meНа счет наоборот идти и других вариантов, на вскидку, будет быстрее или минимальны изменения по времени? вам что--то мешает проверить ? напишите, учтите моменты, оптимизирующие проход -- и сравните. всё в ваших руках. или вы хотите , чтобы за вас это сделали из чисто факультативного интереса ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2016, 15:28 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
qwwq, Я протестил least и greatest с null и без - он просто игнорит его и всё. На счет самому протестить, то я собирался попробовать идти геометрическим путём без цикла в голове по подбору вариантов по текущему направлению, поэтому спросил на вскидку. Да и спасибо за проделанную помощь, результат ведь уже есть положительный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2016, 15:43 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
qwwq, А ещё, по поводу замечания что FALSE возвращает: для IF он его и возвращает, NULL это по любому=у не TRUE для IF. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2016, 15:47 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
its_meqwwq, А ещё, по поводу замечания что FALSE возвращает: для IF он его и возвращает, NULL это по любому=у не TRUE для IF. не надо рисать херни, даже когда очень хочется просто выполните : Код: sql 1. 3-х значная логика потому и называется 3-х значной, что Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2016, 16:31 |
|
||
|
|

start [/forum/topic.php?fid=53&gotonew=1&tid=1997126]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
191ms |
get topic data: |
9ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
105ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 357ms |

| 0 / 0 |
