SQL Native Client はOLEDB ドライバーよりも高速であると言われています。そこで、この 2 つの間の負荷テストを実行するためのユーティリティをまとめましたが、さまざまな結果が得られています。クエリが何であれ (単純な select、where 句、結合、order by など)、一方が高速な場合もあれば、他方が高速な場合もあります。もちろん、サーバーはワークロードの大部分を処理しますが、データが PC に入ってからアプリ内でデータにアクセスできるようになるまでの時間に興味があります。
負荷テストは、非常に大きなデータセットを返す非常に小さなクエリで構成されています。たとえば、select * from SysTables
このテーブルには 50,000 件以上のレコードがあります。データを受信した後、結果をループする別の負荷を実行します (while notQ.eof ... Q.next ...
などを使用)。また、フィールドのorder by Val
場所など、クエリにいくつか追加しようとしました。Val
varchar(100)
これが私の負荷テスターのサンプルです。一番下の数字は平均です...
では、実際には、2つの違いは何ですか? OLE は非常に柔軟で、さまざまなデータベース エンジンをサポートしていますが、Native Client は SQL Server のみに固有のものです。しかし、舞台裏で他に何が起こっているのでしょうか? また、それは Delphi がこれらのドライバを使用する方法にどのように影響しますか?
TADOConnection
これは特に、コンポーネントを介して ADO を使用しTADOQuery
ています。
私は必ずしもパフォーマンスを向上させる方法を探したり求めたりしているわけではありません。ドライバー間の違いを知る必要があるだけです。