|
|
|
Как вставить пачку (1 млн.) записей из оперативки (массив) бысрее?
|
|||
|---|---|---|---|
|
#18+
Примерчик для теста - 10000 записей за 30 секунд. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 15:08 |
|
||
|
Как вставить пачку (1 млн.) записей из оперативки (массив) бысрее?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 15:27 |
|
||
|
Как вставить пачку (1 млн.) записей из оперативки (массив) бысрее?
|
|||
|---|---|---|---|
|
#18+
Новичок в этих Базах, имелось в виду это? Код: 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. Пробую вариант с хранимой процедурой, но непонятно как проще передавать в неё параметры - массив из миллиона значений. Он подготовлен в клиенте. Опять вопрос - разве передача по сети или локально в виде SELECT....., SELECT....., SELECT....., SELECT....., SELECT....., выгоднее передачи массива. В Т-SQL есть параметр массив? А указатель на массив нельзя передать если это локальные 2 процесса? В общем мешмнина технологий. Какая быстрее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 17:16 |
|
||
|
Как вставить пачку (1 млн.) записей из оперативки (массив) бысрее?
|
|||
|---|---|---|---|
|
#18+
Может я не совсем правильно понял, но предложил использовать инструкцию/команду SQL сервера ASA. Если это разовая операция, то - это самое то. Если нужно регулярно в процессе работы добавлять столько строк, то может стоит даже задуматься о смене СУБД... Опишите задачу, так будет легче что-либо советовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 08:28 |
|
||
|
Как вставить пачку (1 млн.) записей из оперативки (массив) бысрее?
|
|||
|---|---|---|---|
|
#18+
Petro123 Извините, а Вы для какого СУБД вопрос задали ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 10:41 |
|
||
|
Как вставить пачку (1 млн.) записей из оперативки (массив) бысрее?
|
|||
|---|---|---|---|
|
#18+
Для данной БД вопрос задал. Но вообще я ищу БД для системы типа AutoCAD с примерно до миллиона примитивов (точки, полилинии, полигоны-регионы). Сейчас всё пишется ручками в двоичный файл. Если, например выделить все объекты и сделать масштаб, то до миллиона объектов надо пересчитывать координаты и записыват в БД. предпологаю, что координаты одной фигуры - это массив точек - BLOB поле в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 11:01 |
|
||
|
Как вставить пачку (1 млн.) записей из оперативки (массив) бысрее?
|
|||
|---|---|---|---|
|
#18+
Тут 3 данных Sybase БД: ASA, ASE и IQ. У каждой свои возможности и характеристики. Я бы порекомендовал Вам в форум "Сравнение СУБД" кинуть сообщение, кто на каких БД реализовывал такие задачи. Во вторых советую посмотреть на Interbase - в нем реализована поддержка полей-массивов, возможно это то, что Вам нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 11:44 |
|
||
|
Как вставить пачку (1 млн.) записей из оперативки (массив) бысрее?
|
|||
|---|---|---|---|
|
#18+
все понятно, вам нужен MySQL. Он вам и синусы с косинусами быстренько посчитает, и все такое... Я диплом писал (векторная карта) - все объекта города хранились в примерно такой форме и нужно было быстренько масштабировать, искать, указывать... Вот только БЛОБ - не совсем хорошо, лучше сделать "один ко многим", т.е. объект - и его координаты..., дальше думаю понятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 11:47 |
|
||
|
Как вставить пачку (1 млн.) записей из оперативки (массив) бысрее?
|
|||
|---|---|---|---|
|
#18+
ASCRUSТут 3 данных Sybase БД: ASA, ASE и IQ. У каждой свои возможности и характеристики. Я бы порекомендовал Вам в форум "Сравнение СУБД" кинуть сообщение, кто на каких БД реализовывал такие задачи. Во вторых советую посмотреть на Interbase - в нем реализована поддержка полей-массивов, возможно это то, что Вам нужно. 1. Да, я пробую сейчас ASA для этих целей. Поэтому интересно решение на Sybase. 2. Поля - массивы почитаю, но ещё интереснее DB2 и информих "Spatial" - хранение объектов - точка, полигон, линия... Но там никто не знает про это и молчок. Рыжий Котвсе понятно, вам нужен MySQL. Он вам и синусы с косинусами быстренько посчитает, и все такое... Я диплом писал (векторная карта) - все объекта города хранились в примерно такой форме и нужно было быстренько масштабировать, искать, указывать... Вот только БЛОБ - не совсем хорошо, лучше сделать "один ко многим", т.е. объект - и его координаты..., дальше думаю понятно 1. Чем My лучше ASA? И где в SQL у него косинусы? 2. Один ко многим это миллион объектов, у каждого может быть 500 000 ТОЧЕК!!!! Многовато, чтобы хранить в таблице точки (1 млн. Х 500000) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 13:13 |
|
||
|
Как вставить пачку (1 млн.) записей из оперативки (массив) бысрее?
|
|||
|---|---|---|---|
|
#18+
Как вариант еще - подключаете к ASA Java, разрабатываете на ней соотвествующие классы (точка, полигон, линия и т.д.). На свои таблицы вешаете поля с этим типом классов. В итоге с одной стороны ООП Java позволяет полноценно описать нужный обьект, сделать нужные свойства и методы, с другой стороны ASA будет автоматом хранить такие обьекты в таблице, беря на себя всю работу по их сериализации и десериализации, но в то же время позволяя через SQL и в ХП образаться к свойствам и методам таких обьектов. Например есть класс, реализующий обьект для хранения и обработки информации: Код: 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. Код: 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. 102. 103. 104. 105. 106. 107. Думаю Java в ASA идеальное решения для разных специфических вариантов хранения и обработки информации, когда обычным SQL и средствами СУБД это трудно реализовать. Вариантов применения найти можно много - от расширенных ХП проверки текстов, нейросеток, до хранения сложно формализуемых обьектов с встроенной сложной обработкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 13:54 |
|
||
|
Как вставить пачку (1 млн.) записей из оперативки (массив) бысрее?
|
|||
|---|---|---|---|
|
#18+
ASCRUS Java Очень интересно. Спасибо! Жалко, что с Java я не дружу. Знаю Delphi и С++ поменьше. Не для флейма. Как обстоят дела с этими языками? ASA почему дружит именно с Java? И расширенные хранимые процедуры на Delphi в DLL это не то? А то мне кто-то их советовал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 14:09 |
|
||
|
Как вставить пачку (1 млн.) записей из оперативки (массив) бысрее?
|
|||
|---|---|---|---|
|
#18+
Тут надо выяснить одну немаловажную вещь: скорость... 500 тыс. точек на объект... сколько времени это займет. Скажем, нужно отодвинуть объект, повернуть или еще что с ним сделать. Тут уже вопрос не в СУБД. Знаю точно, что My очень быстро посчитает вам синус для нескольких сот тысяч точек. Я не знаю всей специфики вашей задачи. Но задав что-то вроде UPDATE temp_coords set x = SIN(x)...*radius... where idojbject = ...(формула может достаточно сложной), почти сразу получите результат. Кстати, используя БЛОБ вы будете его парсить, тянуть на клиента, считать и т.д.? Будет медленно, проверено. Нужно чтобы все вычисления пачкой выполнялись в БД на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 14:30 |
|
||
|
Как вставить пачку (1 млн.) записей из оперативки (массив) бысрее?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 15:01 |
|
||
|
Как вставить пачку (1 млн.) записей из оперативки (массив) бысрее?
|
|||
|---|---|---|---|
|
#18+
Единственное но! При перемещении части кода/бизнес правил на Java или другом языке в сторону БД мы тем самым больше привязываемся к этой самой БД. Альтернатива может быть в 3х звенке? Но возможно "тяжелее будет перекачивать" данные между сервером приложений (где будут эти самые классы) и РСУБД. IMHO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 16:49 |
|
||
|
Как вставить пачку (1 млн.) записей из оперативки (массив) бысрее?
|
|||
|---|---|---|---|
|
#18+
2Petro123 При вставке большого объема данных в независимочти от СУБД, если варинт с LOAD TABLE не подходит, то можно делать так: Убить индексы на таблицу Закачивать данные в цикле не по одной записи, а одним батчем на несколько строчек. Приблизительно так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 17:38 |
|
||
|
Как вставить пачку (1 млн.) записей из оперативки (массив) бысрее?
|
|||
|---|---|---|---|
|
#18+
Спасибо! Сработало, а то у меня один раз вылетело сообщение что что-то в синтаксисе не то "нет точки с запятой" и я не пробовал. Еще помогло Код: plaintext 1. 2. 3. 4. 5. Ещё бы узнать специфику для SQL MS 2000 Server. К сожалению доступ к форуму будет только в понедельник :( Пока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 18:14 |
|
||
|
Как вставить пачку (1 млн.) записей из оперативки (массив) бысрее?
|
|||
|---|---|---|---|
|
#18+
И все таки мне кажется легче эти точки выгружать в файл и подгружать его оператором LOAD TABLE, чем генерить в цикле операторы вставки. Скорость явно будет быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 18:30 |
|
||
|
Как вставить пачку (1 млн.) записей из оперативки (массив) бысрее?
|
|||
|---|---|---|---|
|
#18+
Вы извините, но боюсь именно с этим вопросом Вы не туда направились. Здесь лично я не советовал бы городить огород, а действительно воспользоваться Spatial картриджем оракла или DB2 (что тут народ уже советовал). Лично мое небольшое знакомство со Spatial показало, что в нем есть уже сделанные и проверенные примитивы и все необходимые функции (вплоть до определения пересечения, наложения и прочих операций с группами объектов), причем с хорошей скоростью. На этих картриджах работают многие ГИСы,а они содержат немало объектов, можете сами убедится. Посему не вижу причины городить огород на яве или чем еще. К моему огромному огорчению такое расширение отсутствует у сайбеса. А было бы весьма полезно иметь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 20:42 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=32544956&tid=2014449]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 154ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...