|
|
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
Дооооооооолго выполняется скрипт в функции: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Если убрать поиск "count(*)", то моментально. Инфа по таблице ru_psk_rels: Код: 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. В каждом цикле по 181 строчки. Как это дело можно ускорить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2016, 16:29 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
its_me, видно птицу па палёту, а ару -- калоеда по каунту вместо экзистса. поменяйте прокладку меж стулом и клавиатурой -- должно полегчать. квесшон намбер ту: скока строчек в вашей табличке, что вы не стесняетесь её вот таким макаром мусолить: Код: sql 1. судя по энтому коду, руки из джопы давно выдраты -- чем же вы, болезный, посты набиваитя ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2016, 16:50 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
Да, забыл исправить, пока поправил на это: Код: plsql 1. Скорость та же... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2016, 18:00 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
поправка, скорость быстрее, но не целевая... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2016, 18:01 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
its_me Код: plsql 1. 2. -- как минимум. зачем вам весь каунт, ять, если вы проверяете наличие , ять ну а про индексы по array -ям пока даже не намекайу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2016, 18:17 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
its_me, хотя намекну http://www.postgresql.org/docs/9.1/static/indexes-types.html As an example, the standard distribution of PostgreSQL includes GIN operator classes for one-dimensional arrays, which support indexed queries using these operators: <@ @> = && т.е. условия Код: sql 1. надо переписать в Код: sql 1. скорее всего и посмотреть результат EXPLAIN -- ом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2016, 18:30 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
qwwqits_me, хотя намекну http://www.postgresql.org/docs/9.1/static/indexes-types.html As an example, the standard distribution of PostgreSQL includes GIN operator classes for one-dimensional arrays, which support indexed queries using these operators: <@ @> = && т.е. условия Код: sql 1. надо переписать в Код: sql 1. 2. скорее всего и посмотреть результат EXPLAIN -- ом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2016, 18:31 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
Вообщем кое что поправил, сделал так: Код: plsql 1. 2. 3. 4. стало в 3 раза быстрее, 50 секунд вместо 150(вся функция), хотелось бы быстрее. Сам запрос который правил выполняется за примерно 0.5 мс. Без этого запроса за примерно 1.5 секунды вся функция. Не могу вывести подробный отчет(explain) по функции, только краткий, где показывает фактически только тотальное время. Да и еще, индекс вообще ничего не меняет. Может что я не так или не доделал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 10:55 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
its_me, а скажите, милчел, вы каунт где--то ещё кроме как в условии каунт >0 используете ? а то в приведённом коде -- нет другого использования. откуда просится вывод -- у вас либо хронический оракл межушного ганглия, либо вообще, от рождения типа. Вы приведите explain вашего запроса. вот как есть -- так и приведите. хотя отвечать на наводящие вопросы вы не считаете нужным -- я давно вас спросил о числе записей в таблице. так и нее дождался. и очень хочется понять, зачем вы на динамическиом скл настаиваете ? у вас суровое партицирование по тагам ? или вы обычным скл пользоваться не умеете ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 13:31 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
В функции других каунтов(запросов и упоминания переменной) нет. Код: plsql 1. 2. Вы давно меня спросили про количество строк в таблице, так вот я ещё раньше на этот вопрос ответил(181 строка). Про "скл" я ничего не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 14:39 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
its_me, подсказка. sql - это основной язык реляционных баз данных, таких как оракл, постгрес, диби два и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 14:46 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
Ясно, что именно Вы хотели узнать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 14:53 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
Новый результат(динамо на статику): Код: plsql 1. 2. Еще можно, интересно, ускорить? P.S.: Я безусловно туплю отвлекаясь и редко обращаясь к таким вопросам, Вы "весело" объясняете, и Мы достойны друг друга)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 15:06 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
Lonepsycho, Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 15:08 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
its_me, можно ускорить или нет, по этому плану вам вряд ли кто либо подскажет. покажите план кода который выполняется в самой функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 15:15 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
Код: 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. План кода пока мне не удалось познать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 15:25 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
its_meНовый результат(динамо на статику): Код: plsql 1. 2. Еще можно, интересно, ускорить? P.S.: Я безусловно туплю отвлекаясь и редко обращаясь к таким вопросам, Вы "весело" объясняете, и Мы достойны друг друга)). вам 100 раз сказано, что для того, чтобы узнать наличие, совсем не обязательно считать весь каунт. это в оракле, в силу проблем с синтаксической свободой (потому что идиоты формируют синтаксические концепции ) это оправдано, но толкьо для проверки существования по уникъю. но не для проверки существования вообще. и этот вредный рефлекс выдаёт ару--калоеда из толпы скл--овнокодеров. найти первую попавшуюся и вывалиться (т.е. EXISTS | или SELECT 1 .... LIMIT 1 ) -- оптимизатору много дешевле, чем считать каунты по многотысячным наборам (а про размер набора все ждут ответа со второго поста темы, пилять) -- ну и т.п. и т.д и т.д. и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 15:43 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
its_me, ну вот выдерите вы этот Код: sql 1. 2. и подставьте вместо p1.osm_id p2.osm_id какие--то значения; уберите into cnt. и запустите explain -- т.е. выведите план запроса. вот чего от вас ждут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 15:48 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
Я раньше с ораклом больше работал, потом со всем подряд. Я Вас больше стал понимать)) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 15:55 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
its_meЯ раньше с ораклом больше работал... В связи с этим следует иметь в виду, что PostgreSQL иначе работает с процедурными языками — для него они “черный ящик” и оптимизировать код внутри он не может. Потому ваша код и запросы в процедуре обслуживаются разными частями системы. Поэтому всё, что можно сделать на чистом SQL-е следует делать именно на нём. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 16:40 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
vyegorov, я правильно понял, что мне остается только оптимизировать свою "логику"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 16:47 |
|
||
|
Как оптимизировать время выполнения скрипта?
|
|||
|---|---|---|---|
|
#18+
its_me, Не знаю. Я не понимаю, что значит ”оптимизировать свою логику” — неконкретно. Я говорил о том, что если можно получить данные SQL запросом, то так и следует поступать, не кидаясь в функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 20:07 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=93&tid=1997292]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 354ms |

| 0 / 0 |
