2011-07-25 15 views
0

私はADOに精通していないので、VB6を使用してレコードを検索する2つの方法のどちらが一般的に早い結果になるのでしょうか。ADO検索のパフォーマンス

  1. 修飾子として 'where'を使用して 'select'文を使用してください。レコードセットカウントがゼロの場合、レコードは見つかりませんでした。

  2. レコードが検出されるまで、またはまったく照合されなくなるまで、クライアント側カーソルを使用してレコードを繰り返すすべてのレコードを選択します。

レコードセットは10,000レコードの範囲にあり、拡張されます。また、私は言及されたもの以外の検索時間が短くなるようなものには開放されています。

答えて

1

私が考えることができるすべてのケースでは、where句を使用して選択する方が高速です。

クライアントコードがデータベース(Accessなどのファイルベースのデータベース)全体を反復処理する場合でも、cまたはC++で書かれたコードをデータベースドライバで選択して最適化します。常にVB6よりも高速です。

データベースエンジン(SQL、MySQLなど)では、パフォーマンスの向上がさらに深刻になる可能性があります。 where句を使用すると、ネットワーク経由で送信する必要のあるデータ量が制限され、応答が大幅に改善されます。

いくつかの追加のパフォーマンスのヒント:

  • は、あなたがしたいだけのフィールドを選択します。
  • 頻繁に使用されるフィールドのインデックスを構築する
  • 返すレコードセットの種類を確認します。データベースからデータを戻すだけの場合は、転送専用カーソルを使用します。

最後に、私はVB.NETのデータベースパフォーマンスに衝撃を受けました。これは最速のVB6コードより数倍高速です。

+0

恐ろしい説明 –

3
SELECT count(*) FROM foo WHERE some_column='some value' 

結果が0より大きい場合、条件を満たすレコードがデータベースに見つかりました。あなたがこれより速くなることはまずありません。 WHERE句で使用している列の適切なインデックスは、パフォーマンスを大幅に向上させる可能性があります。

関連する問題