![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 технологию ковырять именно она перекрестность (и скорость) обеспечивает.