2017-08-11 5 views
0

System.Data.SqlClientを使用してSqlDbType.Structuredパラメータでプロシージャを実行するときに、ネットワーク経由でSQL Serverに送信されるデータの量を見積もりようとしています。暗号化されていない接続を仮定すると、次のような合理的な見積もりが得られますか?System.Data.SqlClientがSQL Serverにプロシージャパラメータを送信するために使用する形式

DataTable dt = new DataTable(); 
//Fill with data 
using (Stream ms = new MemoryStream()) 
{ 
    BinaryFormatter formatter = new BinaryFormatter(); 
    formatter.Serialize(ms, dt); 
    var dataSize = ms.Length; 
} 
+0

プロシージャのパラメータとは何が関係していますか? – Hogan

+0

SqlDbType.Structuredパラメーターを使用してストアドプロシージャを実行するときに使用される型。 – ddrjca

+0

私は、あなたがパラメータとしてテーブルを渡していることがわかります。ネットワークの帯域幅はテーブルのサイズに関係します - これはどうすれば問題になりますか?あなたは1 M​​Bのテーブルを渡すつもりですか? - ほとんどのネットワークは気にしません - 1 GBのテーブルですか?なぜあなたはそれをする必要がありますか? – Hogan

答えて

-1

C#のバイナリフォーマッタは、SQLクライアントの通過フォーマットと何らかの関係があると考える理由はありません。

見積もりを行う最良の方法は、ドキュメントが存在する場合はドキュメントであり、ネットワークモニタとテストケースの場合はドキュメントです。

この質問は私に関係しています。これが問題になるユースケースは考えられません。任意の合理的なサイズのテーブル(例えば1MB)は、現在のすべてのネットワーク上で高速である。大きなテーブル(例:1GB)は、あなたが悪いデザインの信号です。問題が制約されたシステム(IOTなど)の場合は、おそらくより優れた設計が必要です。

関連する問題