|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.08.2009, 17:55 | #21 |
Участник клуба
Регистрация: 23.04.2009
Сообщений: 1,058
|
короче по порядку.
1) p0 f0 Это настоящие имена полей...или переменные. 2) Quick - IBSQL - У этого компанента вообще есть ParamByName ? пишу Код:
Код:
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
|
03.08.2009, 18:06 | #22 | |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
кстати
занимательная получается арифметика если заполнять инсертный скрипт в приладе, то время его заполнения изменяется по параболе, т.е. если 1000 строк в скрипт записали за 7 сек, то 2000 строк запишем уже за 30 сек (т.е. умножаем не на 2, а на 2*2), а 4000 строк - за 120 сек а выполнение скрипта - линейно, соответственно, 2 сек, 4 сек, 9 сек З.Ы.: брал системное время поэтому округление до секунд Цитата:
еще немного арифметики если собирать запрос без параметризации, то 2000 строк вставляет за 10 сек, 4000 строк за 20 сек, 10000 строк за 72 сек с параметризацией - 9, 17, 44 сек соответственно если написать ХП для импорта данных на принимающей БД и параметры заполнять в цикле, то время импорта сопоставимо с импортом через запрос с параметризацией даже здесь видно что выигрыш от параметризации при масштабировании растет от 1,5 и более раз по сравнению со сборкой запроса в строку, т.е. парметризация должна помочь выполнить импорт 660 000 строк за 5,5-7 минут (а может и быстрее) если данные выгружать в скрипт, то сам процесс выгрузки занимает много времени, даже очень много времени (можно конечно немного ускорить процесс записи в файл, но и это не сильно ускорит процесс), но зато сам скрипт "проигрывается" очень быстро З.Ы.2: если кому интересно самостоятельно поиграться, то могу выложить скрипт и прогу для тестов (тестировал на Оракле, но при желании можно переписать под свои версии СУБД) Последний раз редактировалось soleil@mmc; 03.08.2009 в 18:58. |
|
04.08.2009, 08:02 | #23 |
Участник клуба
Регистрация: 23.04.2009
Сообщений: 1,058
|
937 записей в сек через параметр.... на 337 записей быстрее время выгрузки 11:30.... Неплохо... в 5-7 не уложился
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
|
04.08.2009, 11:17 | #24 | |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
Цитата:
без параметризации - 824 сек, с параметризацией - 444 сек тестовый сервак должен быть медленным - тогда на нем видно все затыки, которые могут возникнуть в будущем в бою покажи свой код |
|
04.08.2009, 13:08 | #25 |
Участник клуба
Регистрация: 23.04.2009
Сообщений: 1,058
|
Код:
Код:
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
|
04.08.2009, 13:54 | #26 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
можно ради интереса попробовать без отображения хода работы (без синхронизации)
может еще немного выгадаешь |
04.08.2009, 15:22 | #27 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
вспомнил о еще одной возможности
делаем так переписываем основной запрос так, чтобы он возвращал одну колонку, которая будет содержать текст инсерта одной строки в цикле собираем весь список инсерта с разделителями (да хоть в стринглист) и сохраняем его в файло, а файло уже скармливаем скрипто-игрателю вполне себе шустро должно выйти |
05.08.2009, 06:45 | #28 |
Участник клуба
Регистрация: 23.04.2009
Сообщений: 1,058
|
не совсем понял...что вы имеете введу...можно наглядно на примере?
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
|
05.08.2009, 11:59 | #29 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
что-то типа такого
Код:
вот этого drfiski.edit1.Text) - выскакивает ошибка (в Оракле такого нет) поэтому лучше создать селективную ХП - на вход ей отдавать этот самый drfiski.edit1.Text и на выходе получать уже готовый список инсерта дальше этот список сохранять в файл и скармливать его скриптоигрателю /* здесь просто поток мыслей */ наверняка, в ФБ есть возможность работать с файловой системой из базы, т.е. можно весь курсор вставки сохранить в файл прямо из ХП, минуя приложение и тогда прилада будет только вызывать ХП, передавай ей параметр drfiski.edit1.Text, и далее по результату выполнения ХП вызывать скриптоигратель Последний раз редактировалось soleil@mmc; 05.08.2009 в 12:05. |
11.09.2009, 16:51 | #30 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
было время и я поигрался тут еще немного с вариантом "выбрать записи и, сформировав из низ скрипт вставки, записать его в файло"
с помощью стримов вышло вполне себе шустро забить файл-скрипт подобными строками Код:
естественно, этот файлик еще нужно скормить скл*плюс-у(скриптоигрателю) для заливки данных и это тоже займет какое-то время, но вот для варианта когда нужно эту кучу данных залить в несколько баз уместнее будет такой вариант - тратим туеву кучу времени сравнимую с одним циклом "выбрать-вставить" все данные через приладу (стратегия, которую использовал ТС), но зато на загрузку данных в каждую следующую БД тратим существенно меньше времени |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите с запросом | euronymous | SQL, базы данных | 12 | 18.03.2012 05:24 |
Помогите с запросом | NATAHA | Microsoft Office Access | 2 | 08.05.2009 15:17 |
Помогите с запросом | Айвенго | Microsoft Office Access | 3 | 08.05.2008 09:07 |
Помогите с запросом | Blackmore | БД в Delphi | 3 | 07.05.2008 01:18 |
помогите с запросом | 9-11 | БД в Delphi | 4 | 20.11.2006 10:04 |