|
|
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Почему при обновлении таблицы, а именно при добавлении записей - это добавление с каждым разом все медленне и медленнее? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Вот это все хозяйство почему-то с 700 добавленной записи начинает постепенно замедляться, и все медленнее и медленнее добавляет. Делал и с отсоединенным рекордсетом, таже фигня. И с транзакцией и без, все тоже. Где собака порылась? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 11:26 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Потому что нефиг юзать курсоры. Вообще в первый раз вижу такое использование курсоров - SELECT INTO CURSOR ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 11:34 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
В таком случае как мне добавлять записи. А кроме добавления есть еще и модификация, причем тоже пакетная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 11:45 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Мне надо создать на сервере курсор аналогичный какой-либо таблице и заполнить его новыми записями, чтобы потом с этим курсором работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 11:48 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
так а не нельзя одним инсертом вставить, нафига в цикле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 11:51 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Надо подумать, у меня просто не все значения могут присутствовать для вставки. И еще, чем так плох запрос Код: plaintext 1. Собственно как раз и создает мне пустой курсор, идентичный таблице customers. И обратиться я потом к нему могу Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 11:57 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Вам надо создать 2000 записей в БД с null-значениями во всех полях? И это обязательно сделать на стороне сервера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 12:07 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Pr0teusМне надо создать на сервере курсор аналогичный какой-либо таблице и заполнить его новыми записями, чтобы потом с этим курсором работать. Попытался представить себе ситуацию, при которой обычные SELECT, UPDATE и DELETE не справятся - и не смог. Зачем здесь курсор? Бедный сервер... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 12:10 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Мне надо создать на стороне сервера курсор и заполнить его более чем 2000 записями с не пустыми значениями (тут просто для примера привел). Долго все это дело работает и при новых итерациях все замедляется и замедляется, хотя и понятно - ведь все новая втавка в рекордсет занимает с каждым разом больше времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 12:22 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
По поводу Execute я тоже подумал, но как полученный курсор сделать, чтобы он мог принимать записи по INSERT. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 12:31 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Еще раз повтояряюсь, мне нужен курсор идентичный таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 12:33 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Еще раз интересуюсь: чем обычная выборка из таблицы вас не устраивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 13:00 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Меня обычная выборка всем устраивает. Но мне нужна не выборка, а курсор на сервере, чтобы в него перегнать большие данные за раз, а потом манипулировать ими, а именно делать уже из него выборки и сравнения с информацией, что храниться в той таблице, на основе которой он сделан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 13:04 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Pr0teusЕще раз повтояряюсь, мне нужен курсор идентичный таблице.Можно сделать временную таблицу идентичную нужной, пакетно добавить записи в нее, Pr0teusа потом манипулировать ими, а именно делать уже из него выборки и сравнения с информацией, что храниться в той таблице, на основе которойона сделана. Без всяких курсоров и тормозов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 13:09 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Хорошо, и как мне сделать еще одну таблицу, ведь я не знаю ни ее полей, ни типов. Все что у меня есть это ее название и файл с данными для загрузки, при чем в нем могут быть информация только по части полей. Например в таблице храняться Фамилия и Имя, а в файле только Фамилия, и нужно эти новые Фамилии в сервер загрузить и только новые, т.е. те что есть в БД откидываются (это как пример). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 13:28 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 13:53 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Мне это не поможет, т.к. БД - это Fox Pro 6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 14:11 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Antonariy, не факт, что в СУБД, где работает синтаксис типа "WHERE .F. INTO CURSOR" присутствуют временные таблицы. Впрочем, ее можно заменить и на постоянную, а потом убить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 14:12 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Постоянная таблица - это самый крайний шаг, в БД не должно остаться ничего лишнего. Поэтому и хочеться временную структуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 14:21 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Ёклмн, афтор, если б ты самого начала сказал, что это фокс, я бы вообще не лез с советами. По умолчанию SQL server или Access. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 14:42 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Создается такое впечатление, что этот ADO не приспособлен для обновления больших объемов данных. Почему-то и память кушает и вставки теже замедляются. Да и в связке с Fox Pro 6 тоже не ахти. Хз в общем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 17:29 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
А зачем в ADO использовать. Если это FOX, то файл можно писать напрямую. Открыли For Binary и поехали. Вот пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 17:52 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Pr0teusСоздается такое впечатление, что этот ADO не приспособлен для обновления больших объемов данных. Почему-то и память кушает и вставки теже замедляются. Да и в связке с Fox Pro 6 тоже не ахти. Хз в общем.Не надо валить на ADO фоксовские проблемы. На sql сервер через updatebatch 2000 записей влетают меньше, чем за секунду через то же ADO. Почему замедляется уже объяснили, а память кушает потому, что курсор находится в памяти, и записи добавляются в память, тогда как временные таблицы того же sql сервера хранятся в базе tempdb, соответственно в файле tempdb_data.mdf. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 20:04 |
|
||
|
ADO и Update
|
|||
|---|---|---|---|
|
#18+
Напрямую из Fox'а я не стал лишь потому, что ADO без проблем биндит данные, т.е. мне не надо заботиться о типах, т.к. загрузка идет из XML файла. По поводу быстроты, то сделал тест, такой же цикл вставка 10000 записей в таблицу из 20 полей char все в 1-й транзакции, то прошло влет. Не могу врубиться почему, когда из XML вставляю поля, то съедается так много памяти и так все замедляется. Хотя по отдельности все очень быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 21:58 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=34090657&tid=2165067]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
154ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 473ms |

| 0 / 0 |
