Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.07;
Скачать: CL | DM;

Вниз

Как ускорить закачку?   Найти похожие ветки 

 
Пуртик   (2004-10-06 17:42) [0]

Продолжение http://delphimaster.net/view/3-1096959444/
Мастаки, очень долго идет заливка данных - в таблице фокса 7167 записей 5 полей, при заливке идет проверка(запрос) есть ли в базе данная запись, если ее нет, то она добавляется, если есть. то обновляются определенные поля(все запросами через ADOQuery, а из фокса данные вытягиваются в ADODataSet и идет обычный последовательный перебор строк Eof..Next) - это колличество записей заливается в MS SQL 10 минут Подскажите чего надо где подкрутить? Может настройки какие-то в конекшене к скл или фоксу? CacheSize у ADODataSet который к фоксу = 500.


 
Пуртик   (2004-10-06 20:55) [1]

ау????


 
MOA ©   (2004-10-06 21:03) [2]

А DTS в Вашем случае не применить?


 
panov ©   (2004-10-06 22:48) [3]

1. Данные закачиваешь во временную таблицу без проверки.
2. Запросом INSERT добавляешь данные
3. Запросом UPDATE обновляешь данные.

Ускорение раз в 10 гарантированно.


 
Vlad ©   (2004-10-06 23:05) [4]

> при заливке идет проверка(запрос)

Запросик оптимизируй и будет все в порядке.
Проверь чтоб были необходимые индесы.
7000 записей при 5-и полях - это детский сад. Должно пулей свистеть.


 
panov ©   (2004-10-06 23:09) [5]

>Vlad ©   (06.10.04 23:05) [4]
7000 записей при 5-и полях - это детский сад. Должно пулей свистеть.

Это точно-)

Недавно закачивал около 2-х миллионов записей с различными проверками. пришлось здорово оптимизировать...


 
Sens ©   (2004-10-07 08:45) [6]

Когда я решал задачу перетаскивания базы в access, то делал это средствами access"а:

Function Ìàêðîñ1()
DoCmd.TransferDatabase acImport, "dBase 5.0", "d:\", acTable, "Dokum.dbf", "11", False
End Function


Если необходимо выполнить проверку данных - рекомендую не вставлять с помошью "INSERT", а подготовить файл (можно даже текстовый), а потом сделать import средствами СУБД думаю в MSSQL  это можно сделать.

P.S. Более 500 тыс. записей влетают в базу за 10-20 сек.


 
Пуртик   (2004-10-07 10:18) [7]


> 1. Данные закачиваешь во временную таблицу без проверки.
> 2. Запросом INSERT добавляешь данные
> 3. Запросом UPDATE обновляешь данные.
>
> Ускорение раз в 10 гарантированно.

так и есть...


> Запросик оптимизируй и будет все в порядке.
> Проверь чтоб были необходимые индесы.

тут нечего оптимизировать :(
обычный запрос select * from table where pk_id = xxx
Индексы есть.

> 7000 записей при 5-и полях - это детский сад. Должно пулей
> свистеть.

вот не свистит...:( уж и не знаю что крутить, буду пробовать еще оптимизировать...

> Если необходимо выполнить проверку данных - рекомендую не
> вставлять с помошью "INSERT", а подготовить файл (можно
> даже текстовый), а потом сделать import средствами СУБД
> думаю в MSSQL  это можно сделать.

вот над этим я и подумываю... есть подводные камни...


 
Пуртик   (2004-10-07 14:30) [8]

Решил:
insert into sql_Table(FieldSql1, ...)
SELECT  FieldFox1, ...
FROM
OPENROWSET("MSDASQL.1","Driver={Microsoft Visual FoxPro Driver}; UID="";pwd="";SourceDB=D:\;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes; Collate=Russian;Null=No;Deleted=No;",
"select * from d:\work\table.dbf")

20000 записей - 6 сек :)


 
Leksiy ©   (2004-10-07 16:45) [9]

:) дуй на SQL Server 72500 записей 30 полей :) 7.65 ... секунд :)



Страницы: 1 вся ветка

Текущий архив: 2004.11.07;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.038 c
1-1098708860
barbaris
2004-10-25 16:54
2004.11.07
Hint в зависимости от положения курсора в строках StringGrid


11-1082556213
chuckloon
2004-04-21 18:03
2004.11.07
CheckListBox


1-1098466615
GuAV
2004-10-22 21:36
2004.11.07
Написать в TLabel.Caption многострочный техт.


1-1097385449
focor
2004-10-10 09:17
2004.11.07
mousewheel


1-1098779002
Brooks Seth
2004-10-26 12:23
2004.11.07
Млин...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский