2016-05-02 2 views
0

Я подключаюсь к базе данных оракула с подключением ADODB в Excel. Когда я запускаю запрос в SQL-разработчике, он запускается около 8 секунд (это полный результат из 45 000 записей). Когда я запускаю те же самые трещины в Excel vba, это занимает очень много времени, около 20 минут. Зачем так долго в Excel?Excel Запрос Oracle занимает много времени для запуска

Вот пример моего кода,

Set rs = New ADODB.Recordset 
Set con = New ADODB.Connection 

con.CursorLocation = adUseClient 
con.Open "Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)" & _ 
         "(HOST=JASONPC)(PORT=1521)))(CONNECT_DATA=(SID=jasonpc)));User Id=jason;Password=jason;DeferUpdChk=true" 


rs.CursorType = ADODB.adOpenStatic 
rs.LockType = adLockOptimistic 
rs.Open sql, con 

Set rs.ActiveConnection = Nothing 
con.Close 
Set con = Nothing 
+1

, что запрос? вы пытаетесь загрузить результаты? – Bulat

+0

Попробуйте изменить locktype на adLockReadonly – jkpieterse

ответ

0

Если вы выполняете полную 45K записей будет замедлять выполнение Вашего или повиснет Excel. Так запустить его из 5K запроса

Первого 10k затем следующий 10k и так далее, используя строку Num в запросе ...

Так что вам нужно изменить ваши на основе этого запроса