|
|
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
Jonhson <> а в вашем тесте не понял <> а как дысал, как дысал ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:51 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. чудеса! Берёт то, чего в индексе нет. Судя по всему шаг table access by rowid план просто не пишет ( а он явно есть) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:53 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
п.с. прекратите уже паясничать. Не два по третьему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:54 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
А мне это поможет?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 18:02 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
its_meА мне это поможет?)зависит от вас. просто демонстрируется факт, что для нахождения некоторых первых записей не надо строить весь набор, сортировать и выбирать первые. если вы знаете, как заранее можно обрезать выборку -- это может помочь. в вашем случае индексов нет, но есть другой способ обхода множества из 181*181 записей, думается. Если конечно фильтр, как назло, не подавляет всё в начале и пропускает только в конце перебора. (т.е. не коррелирует с обходом). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 18:09 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
Jonhsonп.с. прекратите уже паясничать. свободен, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 18:10 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
JonhsonСудя по всему шаг table access by rowid план просто не пишет ( а он явно есть) Вам неоднократно говорили — прочитайте уже, наконец, документацию. И не ждите ORACLE-их фич, это другая СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 18:34 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
На чём я остановился пока: Код: 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. Анализ: Код: plaintext 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. Результат есть, но меня пугает то, что записи в таблицах, таких как ru_psk_point, ru_psk_rels, будут пополняться и значительно(в разы чем сейчас). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 09:22 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
its_me, [thy. yt rjvvtynbhe. PS однако вот такое вот вам не приходило в голову : Код: sql 1. т.е. если вы не можете усечь перебор до треугольника -- м.б. хотя бы диагональ явно выколоть, а не неизвестно сколько исполняемой ф--ей ? да ,если выложите в свободное место свои таблички, -- м.б. кто--то не поленится их покрутить. а так -- нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 10:44 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
qwwq, Я херню комментирую). Про массивы пока не дошло. Про выкладывания - я ссылку кидал уже выше: https://www.dropbox.com/s/pbtn1qhgioruqh3/backup_tables.7z?dl=0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 11:02 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
ещё: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 11:11 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
its_meqwwq, Я херню комментирую). не льстите себе, мсье. вы её пишете its_meПро массивы пока не дошло. пичаль. на хабре или их гите щас хорошая статья про микроцефалию новых поколений. its_meПро выкладывания - я ссылку кидал уже выше: https://www.dropbox.com/s/pbtn1qhgioruqh3/backup_tables.7z?dl=0 это говно настойчиво хочет от меня логина. приходится им писать в поле логина "кто вы такие, чего вам надо, ..." далее -- по известному мему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 11:41 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
its_meещё: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. это не оракел. не надо подменять sql ф--ями. хотя оно у вас секъюрити инвокер, должно встраиваться в план как подзапрос. могли еще стейблом сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 11:44 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
qwwq, Скачать можно, если в окне регистрации нажать ссылгу "Мне пофиг" (внизу), вверху-справа нажать "Скачать". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 12:01 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
qwwq, Мне трудно говорить с человеком который говорит сам с собой... Раньше больше/преимущественно ораклом занимался. Попробуйте эту ссылку(редко требуется передавать файлы по ссылкам): http://filecloud.me/s53lmqzwgtaa.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 12:01 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
its_me, У вас в запросе функция, которой нет в дампе: bus_idx_rels_parts ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 12:55 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
its_meqwwq, Мне трудно говорить с человеком который говорит сам с собой... если вы чего--то не поняли, это не проблема собеседника. хорошая для вас новость -- рекурсивным запросом эффективно резать не удастся. по крайней мере -- навскидку. (чтобы добегать только до фильтра в каждой итерации надо отдельно сортировать и фильтровать -- идексов то нет) видимо надо попытаться plpgsql вложенным лупом по 2--м сортированным наборам с выходами по условию выхода из диапазонов. -- должно сработать за 1 проход. иначе -- это просто многочисленная сортировка с фильтрацией на каждой итерации: //это должно было быть понятно сразу. проглядел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 13:18 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
vyegorovits_me, У вас в запросе функция, которой нет в дампе: bus_idx_rels_parts если на неё наплевать -- то примерно так : Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 13:52 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
qwwqесли на неё наплевать -- то примерно та: Чёт не выходит у меня этот цветок :) Меня напрягает, что нужно сортировать явным образом `ru_psk_point`, без индексов. Если, как было сказано, оно ещё и вырастет, то тут подход неправильный. Думаю, что в `ru_psk_rels` хранятся маршруты, `ru_psk_rels.parts` -- остановки. В `ru_psk_point` -- какие-то моменты в рамках маршрута. Может через kNN искать ближайшую остановку из общего списка для каждого момента , а потом уже накладывать эти точки на маршруты? Ну чтобы индексы задействовать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 15:05 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
vyegorovits_me, У вас в запросе функция, которой нет в дампе: bus_idx_rels_parts Я её выше написал отдельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 15:14 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
vyegorov Меня напрягает, что нужно сортировать явным образом `ru_psk_point`, без индексов. Если, как было сказано, оно ещё и вырастет, то тут подход неправильный. Думаю, что в `ru_psk_rels` хранятся маршруты, `ru_psk_rels.parts` -- остановки. В `ru_psk_point` -- какие-то моменты в рамках маршрута. Может через kNN искать ближайшую остановку из общего списка для каждого момента , а потом уже накладывать эти точки на маршруты? Ну чтобы индексы задействовать... ru_psk_rels - маршруты(общее - отношения) ru_psk_rels.parts - объекты отношения(в тч остановки из ru_psk_point.id) ru_psk_point - остановки(точки) Про метод задействовать индексы непонял, что за каждый момент? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 15:19 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
qwwq видимо надо попытаться plpgsql вложенным лупом по 2--м сортированным наборам с выходами по условию выхода из диапазонов. -- должно сработать за 1 проход. Вы же можете писать как пример скрипты тут и даже не маленькие, как хорошо бы эту строчку увидеть в "скриптовом" виде)). Вы же вкурсе как до меня доходят Ваши советы)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 15:23 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
its_meЯ её выше написал отдельно. Я не понимаю что там: - создаётся функция - потом индекс на несуществующей реляции - потом создаётся таблица с названием `ru_psk_rels_parts_idx` в которой вы раскрываете список точек в маршруте (если мои предположения верны). Опишите, что вы делаете формально, будет проще экспериментировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 15:31 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
vyegorovits_meЯ её выше написал отдельно. Я не понимаю что там: - создаётся функция - потом индекс на несуществующей реляции - потом создаётся таблица с названием `ru_psk_rels_parts_idx` в которой вы раскрываете список точек в маршруте (если мои предположения верны). Опишите, что вы делаете формально, будет проще экспериментировать. Порядок только у меня перепутан)). Создаю таблицу для извлечения информации по индексам в массиве(parts) объектов отношения. Далее индекс для этой таблицы. Далее функцию которая из этой таблицы возвращает индекс(нужна в запросе для фильтра порядка расположения остановок). Главная проблема/причина у меня была в извлечении индексов объектов массива - версия постгреса 9.2(нету array_position), intarray не включить(ругается osm2pgsql), есть generate(он используется у меня в следующем запросе и он не самый быстрый тоже) - других я не нашел методов возврата индекса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 15:48 |
|
||
|
Что можно сделать для сокращения времени обработки запроса?
|
|||
|---|---|---|---|
|
#18+
its_me, что храниться в `ru_psk_point.way` -- точка? ломанная? замкнутый контур? координаты откуда беруться? и что это -- фиксация каких-то мест? вы считаете дистанцию от заданных координат и потом отбираете минимальныую сумму. Вы хотите найти `way`-ы, ближайшие к заданным координатам? Расстояние между координатами? Расстояния между `way`-ми? -- уточните! если `ru_psk_point.way` используется в географических выражениях, почему не использовать тип geography? зачем хранить точки `ru_psk_rels.parts` в виде массива и мучаться с индексами, может ввести подчинённую таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 16:09 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39265838&tid=1997126]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
151ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
85ms |
get tp. blocked users: |
2ms |
| others: | 307ms |
| total: | 599ms |

| 0 / 0 |
