![]() |
|
|
![]()
|
|
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
Формучане, всем доброго вечера.
Возник сл. вопрос: Есть локальная база, многим известный КЛАДР. Так вот мне нужно определенные данные перебросить в сетевую БД (MySQL) Есть вот такой код, но он работает медленно, как это можно ускорить?
Заранее спасибо! Присоединённый файл ( Кол-во скачиваний: 7 )
1.JPG 67,46 Kb-------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
vikaz, думаю кардинально иного решения нет - если конечно нет родного конвектора из одной БД в другую.
Посмотрев на код - замечу - что ты все делаешь в "визуальном режиме", т.е. сам наблюдаешь как добавляются записи - это как известно тоже требует время на перерисовку контрола. Допусти у Query->DataSource = dsQ; ибо твоего не знаю. Немного изменю кусок кода:
|
|||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
mrbrooks, спасибо, что откликнулся. Вот только жаль, что решения другого нет. Я вот что заметил. Когда я эти же данные пробрасываю в локальную БД, скорость на порядок выше. А вот когда пытаюсь в MySQL, то скорость не высокая. Может попробовать сменить БД, допустим на FireBird?
-------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
да не думаю, что будет колоссальный прирост. тем боле инфу переливаешь через сеть. в общем суть моего предложение минимизировать визуализацию самого копирования. а что используешь для коннекта к MySQL? Не ADO ли? Добавлено через 3 минуты и 31 секунду кстати а КЛАДР в какой СУБД хранится? |
|||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
нет, исполльзую MyDAC. Это простые DBase в OEM кодировке (DOS). 1C же как-то пробрасывают эти данные с большой скоростью. Это сообщение отредактировал(а) vikaz - 23.6.2009, 10:50 -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
скорее всего они работают на прямую с API - никаких компонентов тузлу dbf2mysql.exe не пробывал? Добавлено через 2 минуты и 33 секунды это не смотрел? |
|||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
Нет, пока не пробывал, гляну. посмотрел, но на скорый глаз, не до конца понял, что они там хотели показать. Сегодня дома гляну. СПС -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Сформируй SQL запрос к MySQL в файле (в виде текста) и скорми его MySQL напрямую (через mysql.exe)
И запрос лучше формировать один - insert ... values ... позволяет задать много этих самых values А еще у MySQL есть утилита mysqlimport.exe для импорта из текстовых файлов (может быть быстрее, а может и не быть |
|||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
Я же перебрасываю данные не между MySQL, а из локальной в сетевую. то что можно скормить файл, я тоже знаю, но если честно, не совсем понимаю, как это поможет в моем случае? -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
||||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Запрос пойдет через native интерфейс MySQL, что может радикально сказаться на скорости обработки (в положительную сторону). Кроме того, один запрос с набором данных так же будет выполняться быстрее, чем несколько с 1 записью каждый. |
|||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
Это ЖЕСТЬ. 100Мб, через текстовый файл.... Надо 1С расковырять, глянуть, как они это сделали. Хотя ,наверное как уже и говорилось выше, они пошли через API интерфейс. Но это предстоит выяснить. Выясню, напишу. mrbrooks и xvr - спасибо за советы! -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
||||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Кстати, если есть возможность забросить файл на сервер, где крутится MySQL, то у него есть команда прямой загрузки базы данных из файла (LOAD DATA INFILE) - скорость должна быть максимальная
Поправка - LOAD DATA INFILE может работать даже для файлов на клиенте (если на клиенте и сервере это не запрещено) Это сообщение отредактировал(а) xvr - 24.6.2009, 08:26 |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
xvr, я про это и говорил. При условии, что DBase имеет экспорт в файл.
|
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |