0

リモートのSQL Server 2012データベースに.netクライアントを書いています。クライアントは、テーブル値パラメーターを入力として受け取るストアド プロシージャを呼び出すことによって機能します。クライアントは、.netデータ テーブルを作成し、これらのデータ テーブルをパラメーター ( ) として渡すことによって、これらのストアド プロシージャを呼び出します。を呼び出すと、データテーブルがSQLサーバーに送信されます。これらのデータテーブルの 1 つの列にはファイル パスが含まれています。SqlCommand.Paramters.AddWithValue()dataAdapter.Fill(dataset)nvarchar(max). これにより、データテーブルが非常に大きくなる可能性があります。SQL サーバーは世界の別の場所にあるため、これは深刻なボトルネックです。私の質問は、インターネット上を飛ぶデータの量を最小限に抑えるために、何らかの方法でファイルパスを圧縮することは可能ですか? この圧縮はどのレベルで行う必要がありますか? それとも、一部の圧縮がすでに自動的に行われていますか? 注: 列について話していますが、もちろんデータテーブル全体を圧縮しても問題ありません。ありがとう

4

1 に答える 1

1

リモートサーバーを制御できますか? ストアド プロシージャを変更できますか?

圧縮をサポートする組み込みの接続タイプはないと思いますが (ただし、独自の.

  • テーブルの代わりに varbinary(max) を受け入れるようにターゲット sproc を変更します
  • .NET クライアントでデータをエンコードおよび圧縮し (json かな?)、sproc を呼び出して、バイナリ ペイロードとして渡します。
  • ターゲット sproc でバイナリを解凍し、テーブルにデコードします (SQL CLR を使用)。
  • ...そして以前と同じように続けます
于 2013-03-01T22:13:42.443 に答える