|
какая ДБМС самая "шустрая" для выполнения хранимых процедур?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovmikronПусть будет кратчаяший путь. Это влият на уровень абстраккции? Да. Для поиска кратчайшего пути есть вполне конкретная кляуза connect by . И не надо извращаться с ХП. Прекрасно. Иммем таблицу которая содержит дуги графа. С1 - начальная точка, С2 - конечная точка, Ф(С3) - длина дуги. Не могли бы вы привести пример кода, который исползует указанную конструкцию для поиска минималной длины. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2011, 21:23 |
|
какая ДБМС самая "шустрая" для выполнения хранимых процедур?
|
|||
---|---|---|---|
#18+
я в шоке. микрон написал вполне конкретный тест, который он попросил прогнать на разных серверах. Тест очень специфичный и очень заточен под его, микрона, задачи. Какого фига тут умничают и учат его жизни. Хотите помочь, перепешите тест на свой серевер и запустите. Млин. Обиженные ораклоиды уже достали. А пока, каша показала себя лучшей на это задаче. Микрон , мне показалось очень странным, что операция округления занимает аж четверть процентов от общего времени. Как по мне, сложность это операции просто не сравнима по сложности вычислений с динамическим селектом. Я ожидал, что там будет от силы 1% но не как не столько много. Что-то тут не так, результат не коррелирует с реальностью. Есть предложение, дополнить вопрос на сайбезовом форуме и спросить - а фигли так? Просто твой инглиш не чета моему. Шо домаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2011, 21:30 |
|
какая ДБМС самая "шустрая" для выполнения хранимых процедур?
|
|||
---|---|---|---|
#18+
Ggg_oldзаточен под его, микрона, задачи Не "его задачи", а "его решение его задач". Если он предпочитает кривую ХП простому запросу... Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2011, 22:03 |
|
какая ДБМС самая "шустрая" для выполнения хранимых процедур?
|
|||
---|---|---|---|
#18+
Дмитрий, не нам решать за кривизну его вопроса. Он же сам написал, что тест у него синтетический, но характеризует его задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2011, 22:52 |
|
какая ДБМС самая "шустрая" для выполнения хранимых процедур?
|
|||
---|---|---|---|
#18+
Ggg_oldОн же сам написал, что тест у него синтетический, но характеризует его задачу. Повторяю ещё раз, медленно: он характеризует не задачу, а его решение. Вероятно - кривое решение. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2011, 22:56 |
|
какая ДБМС самая "шустрая" для выполнения хранимых процедур?
|
|||
---|---|---|---|
#18+
Ggg_oldДмитрий, не нам решать за кривизну его вопроса. Он же сам написал, что тест у него синтетический, но характеризует его задачу. издеваешься ? Код: plaintext 1.
в реальной задачи у него будет простенький джоин с Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2011, 22:59 |
|
какая ДБМС самая "шустрая" для выполнения хранимых процедур?
|
|||
---|---|---|---|
#18+
mikronВот попытался изобразить основной паттерн использования для Сайбейс АСА. Давате мерятся, кто быстрее. На АСА-12 25 секунд. Код: plaintext 1. 2. 3.
Впрочем, вот для Firebird 2.5 (под Win32), на старой рабочей станции P-IV 2.4MHZ c _наимерзейшим_ HDD и намеренно оставленным дефолтным Forced Writes = ON. Только кеш на коннект сделал 32 Mb (DefaultDBCache = 8192 вместо 75 страниц). DDL: Код: 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. 85. 86. 87. 88. 89. 90. 91. 92.
(стабильно ~27 sec) Код: 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. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2011, 00:27 |
|
какая ДБМС самая "шустрая" для выполнения хранимых процедур?
|
|||
---|---|---|---|
#18+
servitСделал вариант MyTest() с использованием прямого доступа вместо SQL. Скорость возросла на порядок. TEST>do ##class(del.t1).MyTestDirect() time=1.167889 s. count=5636И конечно, при этом обеспечивается ACID, да ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2011, 00:29 |
|
какая ДБМС самая "шустрая" для выполнения хранимых процедур?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovGgg_oldОн же сам написал, что тест у него синтетический, но характеризует его задачу. Повторяю ещё раз, медленно: он характеризует не задачу, а его решение. Вероятно - кривое решение. Пусть будет кривое решение. Если бы сияние вашего нимба и не заслоняло небесную сферу то можно было-бы заметит звёзды. - вставка на оракле не играет большого значения на скорость. достаточно закомментировать в тесте инсерте. - рекурсивный селект есть и в АСА. будь он применим, тест был бы другой. - немного теории: алгортмы поиска по графу. вы покажете пример weighted A* реализовынай рекурсивным селектом? (Его особенность, заклёчается в том, что поиск ведётся не строго в глубину по графуа в зависимости от наибольшего веса. т.е. может быть сначала джоин с уровня 10, потом с уровня 5, затем с уровня 8, затем опять с 5) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2011, 13:46 |
|
какая ДБМС самая "шустрая" для выполнения хранимых процедур?
|
|||
---|---|---|---|
#18+
ТаблоидНе понимаю, как вы хотите интерпретировать результаты: этот тест будет на каждом новом запуске вставлять разные числа строк в GTT `t2`. Закон больших чисел. Тест выполняется достаточно большое кол-во раз. К тому-же как вы заметили, кол-во вставок не велико, размер записи тоже маленкий, и коммита нет. Спасибо за тест. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2011, 13:54 |
|
какая ДБМС самая "шустрая" для выполнения хранимых процедур?
|
|||
---|---|---|---|
#18+
Сколько раз вы запускали свой тест ? И еще: mikronи коммита нет.- я как раз использовал коммит для очистки GTT. Правильно ли понимаю, что вы всё время добавляли новые данные в GTT'шку, а старые данные удаляли БЕЗ коммита ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2011, 14:04 |
|
какая ДБМС самая "шустрая" для выполнения хранимых процедур?
|
|||
---|---|---|---|
#18+
ТаблоидservitСделал вариант MyTest() с использованием прямого доступа вместо SQL. Скорость возросла на порядок. TEST>do ##class(del.t1).MyTestDirect() time=1.167889 s. count=5636И конечно, при этом обеспечивается ACID, да ? Да, при прямом доступе поддержка ACID является одной из характеристик ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2011, 09:56 |
|
какая ДБМС самая "шустрая" для выполнения хранимых процедур?
|
|||
---|---|---|---|
#18+
Подскажите глупому человеку, эту конструкцию mikron Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2011, 10:49 |
|
какая ДБМС самая "шустрая" для выполнения хранимых процедур?
|
|||
---|---|---|---|
#18+
servitТаблоидпропущено... И конечно, при этом обеспечивается ACID, да ? Да, при прямом доступе поддержка ACID является одной из характеристик globals featuresBy using the various Cache' locking operations in conjunction with transactions, you can perform traditional ACID transactions using globals. <...> When using Object or SQ L access, transactions are handled automatically. Насколько я понимаю, при прямом доступе к глобалам обеспечить ACID можно, только заблокировав их. И не только от записи, но и от чтения, иначе dirty read. Далее, вот фрагменты из вашего теста: #1. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
#2 Код: 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.
Кроме того, здесь предварительно отключено журналирование. А также нет тех самых "locking operations", которые и должны обеспечить ACID. Поэтому и такая скорость (TEST>do ##class(del.t1).FillDirect() time=.075046 s.). А вот метод MyTest() уже вполне корректен. И скорость у него тоже адекватная - 13 сек. ЗЫ. Кстати: на какой машине это выполнялось ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2011, 12:17 |
|
какая ДБМС самая "шустрая" для выполнения хранимых процедур?
|
|||
---|---|---|---|
#18+
Таблоид , Как видно, код автора состоит из двух частей: заполнение таблицы исходными данными; собственно сама процедура my_test, которую автору и было интересно проверить для разных СУБД.ТаблоидЗачем ниже добавлена статистика по вызову только этого метода (TEST>do ##class(del.t1).Fill() time=.998096 s.) ?Цифры для первого этапа приведены были для полноты картины. Таблоидздесь также только загрузка 20\'000 строк в глобал, но где основной цикл, в идёт котором "перекачка" данных во времянку ?Это происходит в методах MyTest() и MyTestDirect(). Метод FillDirect() приведён был лишь для сравнения с Fill(). ТаблоидЗЫ. Кстати: на какой машине это выполнялось ?Приводилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2011, 13:29 |
|
какая ДБМС самая "шустрая" для выполнения хранимых процедур?
|
|||
---|---|---|---|
#18+
servitЭто происходит в методах MyTest() и MyTestDirect().а, понятно: я не увидел тогда MyTestDirect. Так вопрос остается: как при работе этого MyTestDirect обеспечить: 1) чтобы разные коннекты писали данные в свои глобалы-"времянки" (аналоги GTT'шек в SQL), с полной невидимостью данных этих времянок для других коннектов ? 2) чтобы коннект_1 в процессе переносе данных из глобала t1 в t2 не видел изменений, которые в этом глобале происходят благодаря действиям других коннектов (также прямым доступом обращающихся к t1) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2011, 16:29 |
|
какая ДБМС самая "шустрая" для выполнения хранимых процедур?
|
|||
---|---|---|---|
#18+
Таблоид1) чтобы разные коннекты писали данные в свои глобалы-"времянки" (аналоги GTT'шек в SQL), с полной невидимостью данных этих времянок для других коннектов ?Уже обеспечивается. GTT в СУБД Caché основывается на Process-private Globals Таблоид2) чтобы коннект_1 в процессе переносе данных из глобала t1 в t2 не видел изменений, которые в этом глобале происходят благодаря действиям других коннектов (также прямым доступом обращающихся к t1) ?Используя блокировки , транзакции и другие команды. Подробнее в Transaction Processing ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2011, 10:29 |
|
|
start [/forum/topic.php?fid=35&msg=37536257&tid=1552619]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 140ms |
0 / 0 |