8 / 8 / 0
Регистрация: 18.10.2015
Сообщений: 21
|
|
1 | |
Как ускорить запись в БД?18.10.2015, 18:44. Показов 2078. Ответов 17
Метки нет (Все метки)
Добрый всем день!
Имеем: БД Sybase SQL Anywhere 5, Access2003. Подключаюсь через ODBC драйверы. В Sybase может быть открыта только одна база (такая версия). Задача: скопировать часть данных из основной БД в чистую для каких-либо нужд. Выполняю: с помощью INSERT INTO копирую несколько таблиц в промежуточный MDB, закрываю основную БД, открываю новую пустую БД, копирую из MDB. Проблема в том, что есть одна таблица, в которой около 1 млн записей. Из Sybase в MDB эта таблица копируется около 30 сек. А вот обратный процесс - 6 часов! Помогите кто чем.
0
|
18.10.2015, 18:44 | |
Ответы с готовыми решениями:
17
Как ускорить запись массива в файл? VBS+MSSQL2008 - как ускорить запись большого количества данных в БД? Mongodb, Mongoid как ускорить запись данных в Mongodb Как ускорить запись данных в базу данных? |
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
|
18.10.2015, 18:58 | 2 |
Попробуйте сжать и восстановить базу перед обратным копированием.
1
|
8 / 8 / 0
Регистрация: 18.10.2015
Сообщений: 21
|
|
18.10.2015, 19:30 [ТС] | 4 |
ltv_1953 В настройках MDB стоит "Сжимать при закрытии". Я его закрываю перед перезапуском БД Sybase.
mobile В этой большой таблице всего 3 поля, ключ сложный - по двум полям (но это в Sybase). В МДБ я копирую запросом SELECT INTO новая_таблица FROM таблица_сбс, а обратно - INSERT INTO из МДБ в существующую пустую таблицу. При копировании из МДБ WHERE и ORDER BY не использую, просто все записи.
0
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
|
18.10.2015, 19:39 | 5 |
Непонятно, что тормозит, выборки из mdb или добавление записей в Sybase. Если в таблицах Sybase много индексов или триггеры for insert замороченные, а данные в mdb заведомо корректны, то может перед добавлением их удалить, а потом добавить?
4
|
8 / 8 / 0
Регистрация: 18.10.2015
Сообщений: 21
|
|
18.10.2015, 19:49 [ТС] | 7 |
ltv_1953, mobile спасибо. Во вторник буду на работе проверю оба варианта. Отпишусь.
0
|
8 / 8 / 0
Регистрация: 18.10.2015
Сообщений: 21
|
|
18.10.2015, 20:48 [ТС] | 9 |
После копирования из Sybase размер MDB всего около 100 Мб.
0
|
8 / 8 / 0
Регистрация: 18.10.2015
Сообщений: 21
|
|
20.10.2015, 21:03 [ТС] | 10 |
И снова здравствуйте!
Ничего из вышеперечисленного не помогло. Замечено - при копировании из MDB прогрессбар в Акцессе первые процентов 30-35 пролетает за 3 сек, затем до 50 % - минут 15, и всё - дальше еле-еле. Кстати, также очень долго идет удаление большого количества записей. Если копировать или удалять до 10 000 примерно записей, то все более-менее быстро. Наверное придется копировать кусками. Если таблица находится в MDB, таких проблем нет, только с Sybase. Думается, что в Sybase что-то с выделением памяти или настройками БД. Вдогонку - одна странность (или так должно быть): если из БД Sybase удалить записи (до 10 000), то размер базы не меняется, а если удалить больше - 20 - 30 тыс, то размер БД даже увеличивается.
0
|
шапоклякистка 8-го дня
|
|
21.10.2015, 17:25 | 11 |
Может, причиной - ведение лога изменений для возможности восстановления?
А если не вставкой в существующую таблицу, а экспортом целиком всей таблицы (Внешние данные -> Экспорт в базу данных ODBC), а потом уже в Sybase или допилить структуру таблицы, или сделать Select из экспортированной в нужную? И уже чисто из любопытства: а из Sybase сделать Select из .mdb - вообще возможно? Если да - мне кажется, будет быстрее, чем экспорт из аксес.
1
|
8 / 8 / 0
Регистрация: 18.10.2015
Сообщений: 21
|
|
21.10.2015, 19:25 [ТС] | 12 |
0
|
26818 / 14497 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
21.10.2015, 23:41 | 13 | |||||
Предлагаю процедуру для копирования кусками
0
|
8 / 8 / 0
Регистрация: 18.10.2015
Сообщений: 21
|
|
22.10.2015, 17:51 [ТС] | 14 |
0
|
шапоклякистка 8-го дня
|
|
22.10.2015, 18:25 | 15 |
Вам нужно не количество записей, а значения ключа. Если ключа не было и вы создали его программно - то да, скорее всего, нумерация будет от 1 до числа записей. Но если ключ в таблице уже был - более чем вероятно, что номера не подряд.
0
|
8 / 8 / 0
Регистрация: 18.10.2015
Сообщений: 21
|
|
22.10.2015, 18:50 [ТС] | 16 |
Точно, повнимательней сейчас посмотрел.
Что ж, так и буду делать. Добавлено через 14 минут Вот еще задачка возникла. Таблица А - 2 поля, коды приборов и данные из приборов, 12 000 записей. Таблица Б - 2 поля те же, но в 1-м около 100 записей, 2-е пусто. Нужно из таблицы А скопировать данные 2-го поля в те строки таблицы Б, где коды приборов совпадают. Вроде внятно изложил. Можно конечно перебором и сравнением, но что-то мне подсказывает, что можно проще и быстрее.
0
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
||||||
22.10.2015, 18:59 | 17 | |||||
Например
2
|
8 / 8 / 0
Регистрация: 18.10.2015
Сообщений: 21
|
|
22.10.2015, 19:09 [ТС] | 18 |
Спасибо! Век живи - век учись...
0
|
22.10.2015, 19:09 | |
22.10.2015, 19:09 | |
Помогаю со студенческими работами здесь
18
Ускорить запись в файл Ускорить запись в базу ActiveQt - ускорить запись данных Ускорить запись формул в ячейки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
|
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
|
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
|
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
|
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
|
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее:
На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
|
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript
В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
|
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|