Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 17.12.2015
Сообщений: 2
MySQL

Быстрая запись из List в базу данных

17.12.2015, 12:43. Показов 3508. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
На работе решили изобрести велосипед, я сделал, но он получился медленный.
Суть дела:
Предприятие решило запустить веб-сайт для поставщиков, чтобы они через интернет могли заказывать нашу продукцию. Сейчас на предприятии основная работа идет в базе 1С 7.7, которая вертится на SQL SERVER 2005, плюс есть набор самописных программ управляющих производством. Данные по товарам, контрагентам, по остаткам товаров на складах и по их актуальным ценам сайту предоставляет база данных системы 1С. Появилась потребность выгружать актуальные остатки в БД сайта (СУБД mySQL). Компания, которой заказан сайт, не может на своей стороне выполнять запросы к нашей 1С базе, тк наименования товара на русском языке и как следствие возникают проблемы с кодировкой. Они ссылаются на apache, но я считаю, что им просто лень разбираться. Было принято решение запросы выполнять на нашей стороне. для этого я сделал на java веб-сервис, который вытаскивает из нашей базы все остатки с ценами и прочей ерундой и записывает их в БД сайта.
Работает так: Запрос, результат в ArrayList, цикл по ArrayList, для каждого элемента делаю insert в БД сайта.
ArrayList всреднем получается объемом 8000 объектов по 6 полей в каждом. Вся процедура занимает порядка 15 минут.

Подскажите пожалуйста, есть ли способ как то ускорить процесс?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.12.2015, 12:43
Ответы с готовыми решениями:

Быстрая запись строк в базу
Есть вот такой кодик: Number($('#count').html()) + 1; $('#count').html(count); $('#found').append(hash+''); Он выводит на html...

Быстрая запись большого колличества данных на питоне
Есть формиловалка ods документа через ooolib. Есть у нас 500 к элементов. Допустим одинаковых строк вида some_str =...

Как записать list в базу данных access?
Здравствуйте. Нужна помощь! Есть база данных в acceess database1 в ней есть таблица скрин1 как в неё записать list? public class Part...

4
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
17.12.2015, 13:32
VladimirAlekhin, для начала не вставляйте записи по одной. Пишите один запрос на вставку всех элементов. Если это существенно не повысит производительность, можно будет смотреть в сторону более сложных решений.
0
0 / 0 / 0
Регистрация: 17.12.2015
Сообщений: 2
17.12.2015, 14:04  [ТС]
В этом наверное и суть моего вопроса: как вставить все записи разом?

Запрос на выборку отрабатывает за секунду, по сети, тоже, не такой большой объем данных, чтобы так медленно ползти. остается 8000 insert-ов. Копал на тему как одну таблицу в другую быстро скопировать, но тут должна быть структура таблиц одинаковая. У сайта одна красивая таблица, в 1С беда. Представление не вариант делать - 1С уничтожит его.

Таким образом у меня есть RecordSet с остатками. (ArrayList убрал.) Возможно ли его разом записать в таблицу? Если да, то как?

Добавлено через 6 минут
Кстати, одна операция вставки отрабатывает, за 0.023 с, умножить на 8000 получаем 184 с = 3 минуты. Ну плюс выборка, плюс подключения к двум базам. Что происходит в оставшиеся 12 минут?! Код без изощрений, получил connection, выполнил statement, закрыл connection.
0
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
17.12.2015, 14:58
SQL
1
INSERT INTO supertable VALUES (val1,val2), (val1,val2),(val1,val2);
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
17.12.2015, 15:43
VladimirAlekhin, чем вы пользуетесь для работы с БД?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.12.2015, 15:43
Помогаю со студенческими работами здесь

Запись данных в базу данных SQL и выгрузка таблицы в форму
Нужно сделать 2 формы, одну с несколькими textBox'ами, чтобы при нажатии кнопки информация введённая в них, записывалась в Базу данных, и...

Где ошибка? (Запись данных из массива в базу данных mysql)
Массив, генерирующий данные: $data = array(); for($i = 0; $i < 100; $i++){ $data = array( 'name' ...

Запись данных в базу данных mdb с использованием DataAdapter и DataSet
Попробовал сделать Update для таблицы контактов: private void Form1_Load(object sender, EventArgs e) { OleDbConnection...

Запись в базу данных из форм; экспорт базы данных
Существует html - сайт с формами. Типа: <p>Номер договора: <input type="text" name="contract number" value=""...

Запись данных и проверка в контейнере list
Добрый день! Пытаюсь создать просто приложение на c++ в Win32 Application. У меня есть несколько функций : - первая должна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru