|
Просьба, выполните тест на информиксе.
|
|||
---|---|---|---|
#18+
я думаю, не вся заглядывают в склочный форум, поэто продублирую здесь. какая ДБМС самая "шустрая" для выполнения хранимых процедур? Пожалуста пропустите тест на компутере десктопного класса. Нагрузка в основном на ЦПУ: райды, саны и т.д. по идее не должны сильно влиять на результат. Тест разумно не паралелится, т.е. кол-во ядер тоже не сильно важно. Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2011, 15:59 |
|
Просьба, выполните тест на информиксе.
|
|||
---|---|---|---|
#18+
mikron, есть проблема: В Informix нет встроенной функции rand(). Её нужно либо реализовывать либо как ХП на SPL, либо как внешнюю на Си/Java. Вариант с ХП на SPL сильно повлияет на результаты тестирования. У меня вызов теста производительности для этого варианта rand на SPL дал при 1 000 000 вызовах 35,5 секунд. для rand Код: 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.
Тем не менее, запуск ХП с этим rand выдал execute procedure my_test(1000000); -- 01:05.141 select count(*) from t2; -- 2849 Если кто-то прикрутит нормальную внешнюю Си для rand - время может уменьшиться почти в два раза для алгоритма, ежели коллеги захотя покрутить Код: 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. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84.
Писал в конце раб.дня, не задумываясь об оптимизациях./ Проц: Intel(R) Celeron(R) CPU E3200 @ 2.40GHz ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2011, 19:02 |
|
Просьба, выполните тест на информиксе.
|
|||
---|---|---|---|
#18+
Да, Informix 11.50FC6 (на Linux x86_64) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2011, 19:06 |
|
Просьба, выполните тест на информиксе.
|
|||
---|---|---|---|
#18+
АнатоЛой, Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2011, 20:35 |
|
Просьба, выполните тест на информиксе.
|
|||
---|---|---|---|
#18+
АнатоЛойЕсли кто-то прикрутит нормальную внешнюю Си для rand - время может уменьшиться почти в два раза execute procedure my_fill_test(); -- 3 сек execute procedure my_test(1000000); -- 01:05.141 select count(*) from t2; -- 2849 прикрутил UDR на Си - udr_rand(), соотв. в вызываемых ХП поменял все вызовы my_random() на нее. (на Си не писал уже лет 20, так что простите, если чего неоптимально... но работает, проверял.) #include <stdlib.h> #include <public/mi.h> mi_integer udr_rand ( mi_integer nmax ) { mi_integer res; float tmp,tmp_rand_max; tmp_rand_max = (float) RAND_MAX; tmp = nmax * ( rand () / tmp_rand_max ) ; res = (int) tmp ; return res; } int main ( ) { return 1; } затестил на том же железе (версия Информикса, правда чуть другая: 11.50.FC9IE ) :) execute procedure my_fill_test(); -- 1.7 сек execute procedure my_test(1000000); -- в среднем ок. 27 сек. PS. у задачки аппетит к виртуальной памяти серьезный оказался: со старта мегабайт 300 дополнительно попросила... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2011, 20:39 |
|
|
start [/forum/topic.php?fid=44&msg=37552914&tid=1607226]: |
0ms |
get settings: |
26ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
123ms |
get tp. blocked users: |
1ms |
others: | 301ms |
total: | 524ms |
0 / 0 |