を移入するためのSQLのパフォーマンスを向上させる私はVARCHAR(50)一覧<T>
その結果は一覧よりも大きい場合、私はSELECT COUNT(*) FROM TABLE
を行う5分ごととしてPKを持つデータベース200,000レコードを持っています。カウントして実行する
"SELECT * FROM TABLE WHERE PRIMARYKEY NOT IN (" + myList.ToCSVString() + ")"
私がこれを行う理由は、レコードが別のプロセスを介してテーブルに追加されているためです。
このクエリは実行に時間がかかり、また、私はそのはOutOfMemoryExceptionが
を投げると信じて、これを実装するための良い方法はありますか?
ありがとうございました
SQL Serverまたは.NETアプリケーションがOutOfMemoryを投げていますか? –
in節のように見えますが、約20MBの文字列データです。あなたのテーブルにタイムスタンプを追加し、作成された時間に基づいて新しいレコードを取得することができます。 –
'OutOfMemoryException'はおそらく' myList.ToCSVString() 'に起因しています。それは200kのアイテム(おそらく7 * 200kバイト程度)を持つ非常に長い文字列になります。たとえそれがうまくいっても、SQLクエリは非常に遅くなります。 –