2016-05-02 21 views
0

ExcelでADODB接続を使用してOracleデータベースに接続しています。 SQLデベロッパーでクエリを実行すると、約8秒実行されます(これは45 000レコードの完全な結果です)。同じ地震をExcel vbaで実行すると、20分ほどという非常に長い時間がかかります。 Excelでそれほど時間がかかるのはなぜですか?ここでExcelのOracleクエリー実行に時間がかかります

は、フル45Kレコードに対して実行する場合、それはあなたの実行を遅らせるか、Excelをハングアップします

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

ロックタイプをadLockReadonlyに変更してみてください – jkpieterse

答えて

0

、私のコードの例です。だから、次の10Kその後、5Kクエリ

まず10Kからそれを実行し、そう...クエリで

を行numは使用上ですから、そのクエリ

関連する問題