|
|
|
Как убыстрить добавление строк в базу
|
|||
|---|---|---|---|
|
#18+
Есть база в MSAccess, в ней одна таблица. Программа использует компонент TADOQuery для добавления в нее строк. В св-ве SQL пишу INSERT... Добавление 10000 строк занимает около 1 минуты. Нельзя никак убыстрить процесс добавления? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2005, 13:05 |
|
||
|
Как убыстрить добавление строк в базу
|
|||
|---|---|---|---|
|
#18+
romero1206Есть база в MSAccess, в ней одна таблица. Программа использует компонент TADOQuery для добавления в нее строк. В св-ве SQL пишу INSERT... Добавление 10000 строк занимает около 1 минуты. Нельзя никак убыстрить процесс добавления? Надо использовать режим BatchUpdate в компоненте TADODataSet. При этом должны быть выполнены следующие рекомендации: 1. Установить в TADODataSet следующие свойства: - CursorLocation = clUseClient; - CursorType=ctKeyset; - LookType=ltBatchOptimistic; 2. Лучше, если в TADODataSet будет пустой Recordset. Для этого необходимо выполнить запрос, который вернет пустой Recordset. Например: select * from table1 where dat_export is NULL (при условии, что dat_export не может быть NULL). 2а. Открыть TADODataSet. 3. Добавлять данные вTADODataSet при помощи методов Append или Insert. 4. Когда все данные добавлены, выполнить метод UpdateBatch с параметром arAll. 5. Закрыть TADODataSet. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2005, 14:48 |
|
||
|
Как убыстрить добавление строк в базу
|
|||
|---|---|---|---|
|
#18+
По моему опыту 10000 строк в минуту это не так плохо. Если то, что написали выше, уже сделано, то я знаю только один способ: записывать эти строки вручную (или не вручную) в dbf-файл, а потом оттуда INSERT INTO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2005, 18:28 |
|
||
|
Как убыстрить добавление строк в базу
|
|||
|---|---|---|---|
|
#18+
Станислав C. Надо использовать режим BatchUpdate в компоненте TADODataSet. При этом должны быть выполнены следующие рекомендации: Умный, да ? При этом должна выполняться ГЛАВНАЯ РЕКОМЕНДАЦИЯ № 0 -- база данных должна поддерживать режим валовой вставки. Очень сомневаюсь, что ACCESS что-то такое умеет делать. У него и обычные вставки не сильно должны быть напряжны, так что им делать еще более быстрые вставки просто смысла нет. Обычно в таких режимах отлючается журнал транзакций для данных, валидация данных и транзакций и прочее все то, чего в ACCESS нет и никогда не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2005, 22:55 |
|
||
|
Как убыстрить добавление строк в базу
|
|||
|---|---|---|---|
|
#18+
Станислав C. romero1206Есть база в MSAccess, в ней одна таблица. Программа использует компонент TADOQuery для добавления в нее строк. В св-ве SQL пишу INSERT... Добавление 10000 строк занимает около 1 минуты. Нельзя никак убыстрить процесс добавления? Надо использовать режим BatchUpdate в компоненте TADODataSet. При этом должны быть выполнены следующие рекомендации: 1. Установить в TADODataSet следующие свойства: - CursorLocation = clUseClient; - CursorType=ctKeyset; - LookType=ltBatchOptimistic; 2. Лучше, если в TADODataSet будет пустой Recordset. Для этого необходимо выполнить запрос, который вернет пустой Recordset. Например: select * from table1 where dat_export is NULL (при условии, что dat_export не может быть NULL). 2а. Открыть TADODataSet. 3. Добавлять данные вTADODataSet при помощи методов Append или Insert. 4. Когда все данные добавлены, выполнить метод UpdateBatch с параметром arAll. 5. Закрыть TADODataSet. Спасибо. Попробовал сделать так - время убысмтрилось почти в 2 раза. Пытаюсь ускорить еще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 09:07 |
|
||
|
Как убыстрить добавление строк в базу
|
|||
|---|---|---|---|
|
#18+
авторСпасибо. Попробовал сделать так - время убысмтрилось почти в 2 раза. Пытаюсь ускорить еще спасибо! Мой запорожец уже едет 150 км в час. Пытаюсь ускорить еще!!! ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 10:19 |
|
||
|
Как убыстрить добавление строк в базу
|
|||
|---|---|---|---|
|
#18+
А вообще может ктон-нить посоветовать, что использовать чтобы добиться большой скорости. Есть база, в ней несколько таблиц, в которых будет несколько сотен тысяч записей. Нужно чтобы быстро записи удалялись и также выборка делалась довольно быстро. Что можно использовать, чтобы было быстрее чем с Access'ом-ADO ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 10:40 |
|
||
|
Как убыстрить добавление строк в базу
|
|||
|---|---|---|---|
|
#18+
romero1206А вообще может ктон-нить посоветовать, что использовать чтобы добиться большой скорости. Есть база, в ней несколько таблиц, в которых будет несколько сотен тысяч записей. Нужно чтобы быстро записи удалялись и также выборка делалась довольно быстро. Что можно использовать, чтобы было быстрее чем с Access'ом-ADO ? ADO-MSDE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 10:50 |
|
||
|
Как убыстрить добавление строк в базу
|
|||
|---|---|---|---|
|
#18+
Petro123 romero1206А вообще может ктон-нить посоветовать, что использовать чтобы добиться большой скорости. Есть база, в ней несколько таблиц, в которых будет несколько сотен тысяч записей. Нужно чтобы быстро записи удалялись и также выборка делалась довольно быстро. Что можно использовать, чтобы было быстрее чем с Access'ом-ADO ? ADO-MSDE А если оспользовть скажем, InterBase, или там MySQL, работа с ними не будет быстрее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 11:07 |
|
||
|
Как убыстрить добавление строк в базу
|
|||
|---|---|---|---|
|
#18+
romero1206А если оспользовть скажем, InterBase, или там MySQL, работа с ними не будет быстрее?у тебя с акцесом и то не получается, а ты на сервера замахиваешься PS: хватит кросспостингом заниматься ! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 11:15 |
|
||
|
Как убыстрить добавление строк в базу
|
|||
|---|---|---|---|
|
#18+
не знаю, диалект у разных БД сильно отличается. Я когда выбирал БД исходил: - MSDE - условно бесплатен. - есть слухи, что он как ослик будет встроен в следующюю OS - масштабируем без проблем до SQL Server 2000 ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 11:17 |
|
||
|
Как убыстрить добавление строк в базу
|
|||
|---|---|---|---|
|
#18+
Petro123не знаю, диалект у разных БД сильно отличается. Я когда выбирал БД исходил: - MSDE - условно бесплатен. - есть слухи, что он как ослик будет встроен в следующюю OS - масштабируем без проблем до SQL Server 2000 ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! Ты писал программу , работающую с MSDE? Много данных она обрабатывала? Не сильно тормозила? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 11:19 |
|
||
|
Как убыстрить добавление строк в базу
|
|||
|---|---|---|---|
|
#18+
romero1206 Petro123не знаю, диалект у разных БД сильно отличается. Я когда выбирал БД исходил: - MSDE - условно бесплатен. - есть слухи, что он как ослик будет встроен в следующюю OS - масштабируем без проблем до SQL Server 2000 ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! Ты писал программу , работающую с MSDE? Много данных она обрабатывала? Не сильно тормозила? Работает у меня проект на миллион объектов /topic/103823 последние твои вопросы не имеют смысла. Ты ездил на мерседесе? Ну как он? )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 11:31 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33372119&tid=2032473]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 407ms |

| 0 / 0 |
