2012-02-25 4 views
0

データを検索するためにクエリを使用しています。 同じクエリの処理時間が短く、つまりバックエンドから実行するには2秒です。 しかし、同じクエリでは、レコードセットのオープン時間が30秒と長くなります。 データベース:SybaseのVB6 Recordsetバックエンドと比較して結果を表示するのに時間がかかります。

おかげ

コードサンプル:

Dim rsRoute As New ADODB.Recordset 
    --------------------------------------------- 

    If rsRoute.State = 1 Then rsRoute.Close 
    Set rsRoute = New ADODB.Recordset 
    Set rsRoute.ActiveConnection = con 
    rsRoute.CursorLocation = adUseClient 
    rsRoute.CursorType = adOpenKeyset 
    rsRoute.LockType = adLockBatchOptimistic 
    strCmd = " select * from Table where CoumnVal =1 " 
    con.Errors.Clear 
    On Error Resume Next 
    rsRoute.Open strCmd 
+0

サーバー上のカーソルを保つあなたはより多くを得る可能性がありますいくつかのコードを表示すると助けます。どのようにデータベースへの接続を開いていますか?どのようにレコードセットを開いていますか?いくつかのサンプルコード(または可能であれば、実際のコード)を見てみましょう。 –

答えて

2

CursorsType、いくつかのタイプの異なる2つのCursorLocationの品種があります。 Sybaseデータベース(当日のASE)では、選択した内容によってパフォーマンスが大きく異なります。クライアント側とサーバー側の両方のカーソルを試して、何が起こるか見てみましょう。

結果を一度ループする必要がある場合は、adOpenForwardOnlyカーソルタイプを選択します。通常、最高のパフォーマンスが得られます。

EDIT:あなたが投稿コードに基づいて、何も(たとえば、種類のLockType)をロックしていない)してみてください、b)はadOpenForwardOnlyカーソルを使用して、A)(adUseServer)

+0

ありがとうございました。 – Preeti

関連する問題