ソースが何であるか、保存されたデータをクエリする必要があるかなど、詳細情報なしでは言うのは難しいです。
ただし、1000サンプル/秒の場合は、数秒のデータをメモリに保持してから、それらを別のスレッドの永続ストレージに一括で書き出すことを検討する必要があります。(マルチプロセッサマシンを推奨)。
管理言語を介して実行する場合は、サンプルを保持するために同じデータ構造を維持してください。これにより、GCがメモリを頻繁に収集する必要がなくなります。ポインタとunsafeキーワードを使用すると、パフォーマンスがわずかに向上します(メモリ構造への直接アクセスを提供し、配列の境界チェックコードを排除します)。
各サンプルを収集するために必要なCPU時間はわかりません。また、指定された時間に各サンプルを読み取ることがどれほどタイムクリティカルであるか(読み取り元のデバイスにバッファリングされますか?)。サンプリングがタイムクリティカルな場合、サンプルごとに1ミリ秒かかります。そして、ガベージコレクターが起動するリスクを許容できない可能性があります。これは、しばらくの間スレッドをブロックするためです。この場合、私は管理されていないアプローチを選びます。
SQL Serverはデータを簡単に保持できるか、ファイルに書き込むことができます。これは主に、後でデータをどのように処理する必要があるかによって異なります。各サンプルのデータ量はわかりませんが、8バイトだとしましょう。次に、生データの書き込みに1秒あたり8000バイトがあります。おそらくオーバーヘッドがあるため、10 kB/sになる可能性があります。私が考えることができるほとんどのストレージメカニズムは、この速度でデータを書き込むことができます。サンプリングを行っているスレッドとは別のスレッドに書き込むようにしてください。