|
|
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
Есть данные о миллионе записей, необходимо записать это в БД MS Access. запись по одной строчке insertrecord -занимает очень много времени. Как это сделать оптимальне (быстрее) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 17:16 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
Из SQL в MDB? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 17:16 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
В Builder у меня есть некая таблица данных, её надо сохранить MS Access .mdb я юзаю ADO. 6000 зхаписей примерно пишутся 2 минуты командой InsertRecord примерно столько же через SQL insert into ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 17:34 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
Ну а в Билдере она откуда взялась, эта таблица? Ручками набивали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 17:36 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
авторВ Builder у меня есть некая таблица данных О как! Встречаем новую RDBMS - Билдер! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 17:37 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
Таблица взялась из select из таблицы, потом наней накладывается журнал изменений, обсчитывается( амортизация) результат надо сохранить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 17:41 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
Похоже ЛП прав. С Днем Рождения New RDBMS - Билдер! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 17:46 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
Когда ругаетесь объясняйте кем обзываете. RDBMS - это как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 18:04 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
По-русски это РСУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 18:07 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
Ха-ха. РСУБД - реляционная система управления базами данных Короче, стебется народ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 18:13 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
Даже если предположить что это плохо ( появление нового RDBMS Builder) - это не дайт ответ на поставленный вопрос. Кто если сталкивался, напишите. может кто то сравнивал, вобщем буду рад любой полезной инфе. Заранее благодарен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 18:16 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
2Mihonin Посмеялись и буде :) Ответь на сл. вопросы (и как можно подробней) Где хранились(ться) 1 000 000 записей (тип базы) Что происходит с ними при обработки, что происходит с оригиналом записей Как обрабатываешь и чем (ADO, DAO) Где находиться конечная запись (локально, в сети, в инете) Прогишь на Дельфи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2003, 00:10 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
5) Виктор, он же написал - на билдере => (90%) Borland C++ Builder ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2003, 05:39 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
2Темный >Виктор, он же написал - на билдере => (90%) Borland C++ Builder А что такое в MS Accesse Borland C++ Builder? И почему об этом все должны знать? Я, например, про С++ знаю, только то, что 3-я буква алфавита с 2 знаками +. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2003, 09:14 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
Есть локальная база (не клиент сервер). в ней есть табличка (картотека) там "много" записей. есть журнал действий над этой картотекой ,там число записей "поменьше" . Дейсвия - накладываем журнал действий на картотеку. получаем картотеку на нужный период, проиводим вычисления ( расчёт амортизации). и пишем файл отчёта (за 12 месяцев сразу, таким образом записей = "много"*12). Юзаю компоненты ADO. Microsoft Jet 4.0 (понятно что он тормозной, но всё равно, когда обработка идёт одним SQL например копирования из одной таблички в другую, это делается "на лету") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2003, 09:37 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
Пиши транзакции по 1000 записей - будет быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2003, 19:20 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
Mihonin , у меня сходная проблема, только строк поменьше (10-15 тыс), и писать надо с компа, где они "возникли" в БД на сервере (MDB). Сейчас все на DAO и работает просто отвратительно. Склоняюсь к мысли, что надо сделать типа того, как написал Guest - брать по 1000 строк и select from insert into, если что не прошло - откат транзакции и повтор, следующие 1000 строк... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2003, 20:00 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
select from insert into - работает быстро, но суть в том что перед insert into надо провести вычисления. над курсором полученный из select. и проблема в том что к этому курсору никак не обратится SQL. Я делаю insert into Values(:id,...) по 1 записи через параметры- ставлю prepared=true. и пототм в компоненты SQL уже не меняю, а только значени параметров - в результате получил до 30% уменьшения времени записи, но всё равно долго. 84000 записей - 400 секунд ( ны быстрой тачке). Но суть в том что, если блоком это копировать select from insert into -это в делается за несколько секунд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2003, 13:05 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
Блин, ну запихни ты свои чудо-данные во временную таблицу (одним запросом), обработай их как хочешь, запузырь их из временной таблицы обратно в основную (одним запросом) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2003, 13:14 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
если бы ADP то там есть операции массовой вставки а в аксессе наверное надо 1 импортировать во временную таблицу DoCmd.TransferDatabase acImport а затем обрабатывать запросами так будет быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2003, 14:30 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
поставь ради теста MSDE2000 и попробуй сделать все запросами в нем - задача как раз для него. можно получить увеличения быстродействия до нескольких тысяч раз... если конечно все сделать поуму ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2003, 14:37 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
Mihonin "перед insert into надо провести вычисления. над курсором полученный из select. и проблема в том что к этому курсору никак не обратится SQL" - разъясни, если не трудно, про курсор, я что-то не совсем понял (не шибко грамотный). Я до сих пор не сделал на SQL, поскольку над каждыми элементом данных строки мне надо провести ряд проверок, и писать только то, что эти проверки прошло, на SQL это устроить сложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2003, 15:52 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
to Varan Я думал, что SQL запрос вернёт cursor( который В ОЗУ) и с этим курсором средствами БД проводить проверки, расчёты.( что будет быстро т.к. это в ОЗУ а не на винте), а потом обработанный курсор записать на жёсткий диск. но доступа к курсорам нет :( (а каждый раз работать через винт - будет медленне). ПОэтому считываю в данные в свою структуру, обрабатываю, и за писываю на винт. по одной записи. я нашёл как ускорить. Включаем транзакцию, и по больше ОЗУ на борт машины. Таким образом заставим БД кэшировать в ОЗУ. при подверждении транзакции он все изменения одним обращением записывает. Вот только если ОЗУ мало, то ОС включает подкачку (жёсткий диск) и результат получаем обратый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2003, 16:33 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
товарисчи !!!!! если программа при самом оптимальном коде думает дольше чем юзер успевает нажать следующую кнопку - это маструбация (преувеличиваю) вы конечно можете пытаться ставить ставить рекорд скорости на велосипеде, но в самом деле любой самолет будет быстрее и напрягаться не надо... тем более зачастую нет никаких противопоказаний чтобы не воспользоваться более быстрой технологией ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2003, 16:49 |
|
||
|
Быстрая запись в базу данных
|
|||
|---|---|---|---|
|
#18+
ну 5 минут для 6000 записей в БД, и при увеличении размера в 10 раз, время тоже должно вырасти. а более быструю технологию использовать хорошо но не в этом случае. т.е. jet - это требование к задаче. вобщем и на ёлку сесть и ... рыбку съесть. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2003, 16:59 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1710&tid=1677823]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
80ms |
get tp. blocked users: |
2ms |
| others: | 247ms |
| total: | 438ms |

| 0 / 0 |
