Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Быстрая запись в базу данных / 25 сообщений из 36, страница 1 из 2
02.12.2003, 17:16
    #32341092
Mihonin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
Есть данные о миллионе записей, необходимо записать это в БД MS Access. запись по одной строчке insertrecord -занимает очень много времени. Как это сделать оптимальне (быстрее)
...
Рейтинг: 0 / 0
02.12.2003, 17:16
    #32341094
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
Из SQL в MDB?
...
Рейтинг: 0 / 0
02.12.2003, 17:34
    #32341123
Mihonin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
В Builder у меня есть некая таблица данных, её надо сохранить MS Access .mdb я юзаю ADO. 6000 зхаписей примерно пишутся 2 минуты командой InsertRecord примерно столько же через SQL insert into
...
Рейтинг: 0 / 0
02.12.2003, 17:36
    #32341124
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
Ну а в Билдере она откуда взялась, эта таблица? Ручками набивали?
...
Рейтинг: 0 / 0
02.12.2003, 17:37
    #32341127
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
авторВ Builder у меня есть некая таблица данных
О как! Встречаем новую RDBMS - Билдер!
...
Рейтинг: 0 / 0
02.12.2003, 17:41
    #32341138
Mihonin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
Таблица взялась из select из таблицы, потом наней накладывается журнал изменений, обсчитывается( амортизация) результат надо сохранить.
...
Рейтинг: 0 / 0
02.12.2003, 17:46
    #32341146
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
Похоже ЛП прав.
С Днем Рождения New RDBMS - Билдер!
...
Рейтинг: 0 / 0
02.12.2003, 18:04
    #32341172
Mihonin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
Когда ругаетесь объясняйте кем обзываете. RDBMS - это как?
...
Рейтинг: 0 / 0
02.12.2003, 18:07
    #32341177
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
По-русски это РСУБД.
...
Рейтинг: 0 / 0
02.12.2003, 18:13
    #32341185
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
Ха-ха. РСУБД - реляционная система управления базами данных
Короче, стебется народ.
...
Рейтинг: 0 / 0
02.12.2003, 18:16
    #32341191
Mihonin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
Даже если предположить что это плохо ( появление нового RDBMS Builder) - это не дайт ответ на поставленный вопрос. Кто если сталкивался, напишите. может кто то сравнивал, вобщем буду рад любой полезной инфе. Заранее благодарен
...
Рейтинг: 0 / 0
03.12.2003, 00:10
    #32341387
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
2Mihonin

Посмеялись и буде :)

Ответь на сл. вопросы (и как можно подробней)

Где хранились(ться) 1 000 000 записей (тип базы)
Что происходит с ними при обработки, что происходит с оригиналом записей
Как обрабатываешь и чем (ADO, DAO)
Где находиться конечная запись (локально, в сети, в инете)
Прогишь на Дельфи?
...
Рейтинг: 0 / 0
03.12.2003, 05:39
    #32341445
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
5) Виктор, он же написал - на билдере => (90%) Borland C++ Builder
...
Рейтинг: 0 / 0
03.12.2003, 09:14
    #32341517
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
2Темный
>Виктор, он же написал - на билдере => (90%) Borland C++ Builder

А что такое в MS Accesse Borland C++ Builder? И почему об этом все должны знать? Я, например, про С++ знаю, только то, что 3-я буква алфавита с 2 знаками +.

:)
...
Рейтинг: 0 / 0
03.12.2003, 09:37
    #32341532
Mihonin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
Есть локальная база (не клиент сервер). в ней есть табличка (картотека) там "много" записей. есть журнал действий над этой картотекой ,там число записей "поменьше" . Дейсвия - накладываем журнал действий на картотеку. получаем картотеку на нужный период, проиводим вычисления ( расчёт амортизации). и пишем файл отчёта (за 12 месяцев сразу, таким образом записей = "много"*12). Юзаю компоненты ADO. Microsoft Jet 4.0 (понятно что он тормозной, но всё равно, когда обработка идёт одним SQL например копирования из одной таблички в другую, это делается "на лету")
...
Рейтинг: 0 / 0
03.12.2003, 19:20
    #32342563
---------------
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
Пиши транзакции по 1000 записей - будет быстрее
...
Рейтинг: 0 / 0
03.12.2003, 20:00
    #32342612
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
Mihonin , у меня сходная проблема, только строк поменьше (10-15 тыс), и писать надо с компа, где они "возникли" в БД на сервере (MDB). Сейчас все на DAO и работает просто отвратительно. Склоняюсь к мысли, что надо сделать типа того, как написал Guest - брать по 1000 строк и select from insert into, если что не прошло - откат транзакции и повтор, следующие 1000 строк...
...
Рейтинг: 0 / 0
04.12.2003, 13:05
    #32343320
Mihonin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
select from insert into - работает быстро, но суть в том что перед insert into надо провести вычисления. над курсором полученный из select. и проблема в том что к этому курсору никак не обратится SQL. Я делаю insert into Values(:id,...) по 1 записи через параметры- ставлю prepared=true. и пототм в компоненты SQL уже не меняю, а только значени параметров - в результате получил до 30% уменьшения времени записи, но всё равно долго. 84000 записей - 400 секунд ( ны быстрой тачке). Но суть в том что, если блоком это копировать select from insert into -это в делается за несколько секунд.
...
Рейтинг: 0 / 0
04.12.2003, 13:14
    #32343337
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
Блин, ну запихни ты свои чудо-данные во временную таблицу (одним запросом), обработай их как хочешь, запузырь их из временной таблицы обратно в основную (одним запросом)
...
Рейтинг: 0 / 0
04.12.2003, 14:30
    #32343507
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
если бы ADP то там есть операции массовой вставки

а в аксессе наверное надо
1 импортировать во временную таблицу
DoCmd.TransferDatabase acImport

а затем обрабатывать запросами
так будет быстрее
...
Рейтинг: 0 / 0
04.12.2003, 14:37
    #32343526
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
поставь ради теста MSDE2000 и попробуй сделать все запросами в нем - задача как раз для него. можно получить увеличения быстродействия до нескольких тысяч раз... если конечно все сделать поуму
...
Рейтинг: 0 / 0
04.12.2003, 15:52
    #32343769
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
Mihonin
"перед insert into надо провести вычисления. над курсором полученный из select. и проблема в том что к этому курсору никак не обратится SQL"

- разъясни, если не трудно, про курсор, я что-то не совсем понял (не шибко грамотный).
Я до сих пор не сделал на SQL, поскольку над каждыми элементом данных строки мне надо провести ряд проверок, и писать только то, что эти проверки прошло, на SQL это устроить сложнее.
...
Рейтинг: 0 / 0
04.12.2003, 16:33
    #32343854
Mihonin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
to Varan
Я думал, что SQL запрос вернёт cursor( который В ОЗУ) и с этим курсором средствами БД проводить проверки, расчёты.( что будет быстро т.к. это в ОЗУ а не на винте), а потом обработанный курсор записать на жёсткий диск. но доступа к курсорам нет :( (а каждый раз работать через винт - будет медленне). ПОэтому считываю в данные в свою структуру, обрабатываю, и за писываю на винт. по одной записи.
я нашёл как ускорить. Включаем транзакцию, и по больше ОЗУ на борт машины. Таким образом заставим БД кэшировать в ОЗУ. при подверждении транзакции он все изменения одним обращением записывает.
Вот только если ОЗУ мало, то ОС включает подкачку (жёсткий диск) и результат получаем обратый.
...
Рейтинг: 0 / 0
04.12.2003, 16:49
    #32343887
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
товарисчи !!!!!
если программа при самом оптимальном коде думает дольше чем юзер успевает нажать следующую кнопку - это маструбация (преувеличиваю)

вы конечно можете пытаться ставить ставить рекорд скорости на велосипеде, но в самом деле любой самолет будет быстрее и напрягаться не надо...
тем более зачастую нет никаких противопоказаний чтобы не воспользоваться более быстрой технологией
...
Рейтинг: 0 / 0
04.12.2003, 16:59
    #32343904
Mihonin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрая запись в базу данных
ну 5 минут для 6000 записей в БД, и при увеличении размера в 10 раз, время тоже должно вырасти. а более быструю технологию использовать хорошо но не в этом случае. т.е. jet - это требование к задаче. вобщем и на ёлку сесть и ... рыбку съесть. :)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Быстрая запись в базу данных / 25 сообщений из 36, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]