Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

MSSQL Export/Import Wizard [D6, MSSQL, Access]


Palladin ©   (2003-03-31 10:37:00) 

Просветите меня... чем достигается такая бешеная скорость импорта данных в SQLServer хотябы из того же Access....
Какая технология используется?
Хочу такого же быстродействия достичь...


Palladin   (2003-03-31 12:40:00) [1]

а еще точнее настольная...


stone   (2003-03-31 12:36:00) [2]


> согласитесь MSSQL в любом случае предпочтительней чем Access

Ну ты сравнил... MSSQL - промышленная СУБД, a Access - (как бы по-мягче выразиться) "оффисная".


Palladin   (2003-03-31 12:32:00) [3]


> sniknik © (31.03.03 12:15)

сейчас попробую замерить...
с openrowset я еще не сталкивался...


Palladin   (2003-03-31 12:30:00) [4]


> Ну так пиши вместо in
> where exists(select * from table1 where Table2.id = table1.id)

дело не только в построении, конечно пришлось переписать запрос...
согласитесь MSSQL в любом случае предпочтительней чем Access... (ценовой показатель не рассматриваем, не мои заботы)


> Delirium © (31.03.03 12:07)

Спасибо за наводку, попробую рыть в этом направлении, (в самом E/I Wizarde написано что DTS млин :( необратил внимания)..


sniknik   (2003-03-31 12:15:00) [5]

а как насчет OPENROWSET?
переведи все на аналогичные запросы (в самом MSSQL) скорость будет такой же
INSERT INTO DatdTest SELECT * FROM
OPENROWSET("Microsoft.Jet.OLEDB.4.0", "D:\Base.mdb";"admin";"", DatdTest)


stone   (2003-03-31 12:13:00) [6]


> убивают запросы с условием not (Table2.id in (select id
> from table1))

Ну так пиши вместо in
where exists(select * from table1 where Table2.id = table1.id)


Delirium   (2003-03-31 12:07:00) [7]

"я даже стал думать про прямое чтение файла с данными E/I Wizardом... чушь конечно... но скорость убийственная..." - отчего-же чушь? Это называется DTS-пакет, весьма удобный и распространённый способ обмена информацией. Опять таки есть COM - DTS.Package, позволяющий проводить операции с пакетами в пользовательском приложении.


Palladin   (2003-03-31 11:46:00) [8]

ну факт в том, что скорость работы с MSSQL во много раз превышает скорость Access. К примеру меня убивают запросы с условием not (Table2.id in (select id from table1))
уже это условие повергнет Jet в состояние шока. Решено переводить систему отчетности на работу с MSSQL, а основная программа остается пока с Access (не спрашивайте почему, была бы моя воля - я бы вообще все изменил)
По какойто причине (причину не помню, ибо дело было глубокой ночью) я был не в восторге от импорта данных по расписанию в MSSQL... и решил сам написать перенос... использовал ADO... естественно что написаный мною перенос тутже себя опозорил, показав на таблице с ~1200000 записей время примерного завершения через 6 часов... хота в E/I Wizarde это дело бежало - несколько тысяч в полсекунды...
Досадно мне стало... я даже стал думать про прямое чтение файла с данными E/I Wizardом... чушь конечно... но скорость убийственная... и проснулся во мне спортивный интерес...


sniknik   (2003-03-31 10:57:00) [9]

а для чего надо? в смысл вникнуть или использовать в программе? можеш использовать запросы с openrowset (и иже с ними) и будут те же скорости.
если в смысл вникать то нужно OLEDB технологию ковырять именно она перекрестность (и скорость) обеспечивает.


Наверх

Титульная страница Поиск, карта сайта Написать письмо