Форум: "Базы";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
ВнизЗагрузка объемных данных в рамках одной транзакции Найти похожие ветки
← →
DiamondShark © (2006-07-23 09:44) [40]
> поэтому пакетная текстовая заливка (bcp) не "катит"
Не "поэтому", а потому что кто-то BOL ленится читать.
См. раздел
Performing Bulk Copy Operations
BCP для таких вещей -- самое то что надо. Данные заливаются со скоростью молнии, смазанной салом.
Если кому интересно -- стукнитесь в почту или асю...
Вышлю дельфишные интерфейсный модули для ODBC и BCP, или примерчики какие-нибудь.
← →
DiamondShark © (2006-07-23 10:28) [41]
> Медведъ (19.07.06 13:01) [37]
XML ну никак не предназначен для заливки больших объёмов...
← →
Anatoly Podgoretsky © (2006-07-23 11:39) [42]MsGuns © (14.07.06 16:18)
Требуется сделать следующее:
1. Создать в БД таблицу, если ее нет, или очистить от записей, если есть
2. Создать ХП вставки в таблицу
3. С помощью этой ХП из текстового файла загрузить в таблицу данные (порядок - от сотни тысяч до миллионов)
4. ХП удалить из БД
5. Транзакцию подтвердить.
6. В случае ошибки создания (очистки) таблицы или создания ХП транзакцию откатить, оставив таблицу в прежнем состоянии
1. Создать в БД таблицу вне зависимости есть данные или нет. Это быстрее, чем удалять записи
2.
3.
4. ХП удалить из БД вне зависимости от состояния
5.
6. при откате транзакции ничего делать не надо, кроме удаления ХП
поэтому операцию удаления ХП выносим за рамки пунктов 1-6
Все это можно сделать с помощью сгенерированого скрипта, в EM и после небольшой заточки использовать его.
Заливку даннных делать с помощью BCP из ранее подготовленных данных.
Возможны варианты.
← →
Anatoly Podgoretsky © (2006-07-23 11:43) [43]DiamondShark © (23.07.06 10:28) [41]
Это точно, проверено на практике. Есть одна задача импорт данных из старой программы на основе DBF в MS SQL.
Ее можно выполнить двумя путями, через импорт с помощью XML или с помощью прямого импорта из DBF таблиц. Суммарный размер базы порядка 500 мегабайт.
Первый путь требует свыше 7 дней и гигабайты памяти, второй три часа и ничтожно мало памяти. Повальное увлечение новомодными технологиями до добра не доводит.
← →
Anatoly Podgoretsky © (2006-07-23 11:45) [44]AlexAlex (20.07.06 18:36) [39]
В MS SQL есть несколько аналогов, например заливка с помощью DTS, скорость несколько десятков тысяц в секунду.
← →
Медведъ (2006-07-23 17:06) [45]>Anatoly Podgoretsky
насчет повального увлечения - автор вроде ничего не говорил про 500 мегабайтные dbf-таблицы, к тому же
3. С помощью этой ХП из текстового файла загрузить в таблицу данные (порядок - от сотни тысяч до миллионов)
а файл мы на сервер предварительно по фтп зальем, да ?
красота
давайте сразу про терабайты говорить, тогда вообще проще жесткий диск по почте переслать в другой город где сервер находится
← →
Медведъ (2006-07-23 17:09) [46]и вообще я привел програмное решение, если мне просто нужен импорт я замечательно пользую DTS Wizard
← →
Anatoly Podgoretsky © (2006-07-23 17:12) [47]Медведъ (23.07.06 17:06) [45]
Ты потерял нить обсуждение, речь шла про повальное увлечение XML а не DBF и про то, что XML для таких объемов не подходят.
← →
Anatoly Podgoretsky © (2006-07-23 17:13) [48]Медведъ (23.07.06 17:09) [46]
Вот и мы про тожеВ MS SQL есть несколько аналогов, например заливка с помощью DTS, скорость несколько десятков тысяц в секунду.
← →
Медведъ (2006-07-23 17:23) [49]способ хороший, но не в том случае когда оператору нужно импортировать заказ клиента из хлс файла в базу на удаленном сервере
я понимаю что есть системы в которых файловый обмен активно используется но это не гуманно
← →
Медведъ (2006-07-23 17:24) [50]но впрочем я думаю мы поняли друг друга, нет смысла продолжать дискуссию на мой взгляд
Страницы: 1 2 вся ветка
Форум: "Базы";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.042 c