2017-03-08 6 views
0

私は、高遅延接続に対処する方法を探しています。 ODBCにはherehereと記載されているように、この問題を解決するSetRowsetSizeがあります。ODBCにはSetRowsetSizeがありますが、ADO.netにはどのようなものがありますか?

ADO.netにはこの設定と同等の機能がありますか? This articleは、元のADOにアナログがあることを示唆しているようですが、それは非常に古いもので、もはや存在しない記事を指しています。

一般的に言えば、遅延が大きい接続でADO.netのパフォーマンスをどのように改善しますか?

答えて

1

SQL ServerでADO.NETを使用しているときに遅延が懸念される場合は、connection poolingを調べる必要があります。ただし、pool fragmentationを心配してください。

データソースへの接続には時間がかかることがあります。 接続を開くコストを最小限に抑えるために、ADO.NETでは、接続のプールの接続プール と呼ばれる最適化手法を使用しており、接続の開閉回数を最小限に抑えます。 接続プーリングは、.NET Frameworkデータプロバイダに対して異なる方法で処理されます( )。

さらに、多くのレコードを迅速に取得する必要がある場合は、SqlDataReaderを調べてください。 DataSetsなどの他のタイプのADO.NETオブジェクトを使用する場合と、大量のデータを効率的に取得する場合に最適化されたものよりも大幅に少ないメモリを必要とします。

あなたは他の有用な情報と一緒にアクティブな接続プール(NumberOfActiveConnectionPools)の数を確認することで見ることができperformance counters特定があります。

Step by step guide on how to test

+0

私が間違っていない限り、これはそれぞれの接続文字列ごとに自動的に行われます。私たちは1つの接続しか持っていないので、すべてのクエリ(すべてのSELECT BTW)がデフォルトで同じ接続プールを経由するわけではありませんか?プールを見る方法はありますか?これをテストできますか? –

+0

あなたは正しいです。あなたは、ADO.NET/SQL Serverに関するレイテンシに関する具体的な質問をしました。したがって、接続プーリングについて議論してください。私はこれをテストする方法に関するあなたの質問に私の答えを編集しました。 –

関連する問題