0

これは、巨大な文字列パラメーターをストアド プロシージャに渡すこととまったく同じではありません....

ID int と大きな文字列を取り、それをテーブルに挿入する SQL Server 2008 sproc があります。sproc は .NET 4.0 コードによって呼び出されFile.ReadAllText、文字列に変換してから sproc に送信します。文字列のソースはテキスト ファイルです。将来、多くの 100 MB ファイルを 1 日中不変の "use once" 文字列に読み込み、それを SQL Server に送信するという考えは、C# 側ではメモリを浪費するように思えます。

テキストをディスクから sproc にストリーミングするよりスマートな方法は何ですか? 現在のVarchar(Max)パラメーターをより適切なものに変更できます。

すべてのアイデアに感謝します。

ありがとう。

4

1 に答える 1

0

あなたの状況には 3 つの選択肢があります。

  1. 既存のデザインを維持する
  2. SP で OPENROWSET を使用する
  3. ファイルストリーム

ファイルがサーバーからリモートにあり、一意の名前を持つ場合は、アイテム 1 が最適です。

項目 2 は C# 側の作業を取り除きますが、ファイルに対する SQL の読み取りアクセス許可、命名規則、およびファイルのクリーンアップに対処する必要があります。

項目 3 は、SQL Server 2008 の現在のベスト プラクティスです。従うべき HOW2 記事が多数あります。この選択により、ファイルを NTFS ストレージに保持しながら、SQL がファイルを管理できるようになります。

于 2011-06-02T17:16:08.300 に答える