C#、.NET 3.5フレームワーク、およびSQL Server 2008 R2を使用して高頻度取引アプリケーションを開発しています。私は70の楽器を購読しています。それぞれの楽器で1分の小節を保存しています。各器具の各バーは、Open Price
,High Price
,Low Price
,Close Price
,Volume
からなる。C#コードとSQL Server 2008ストアドプロシージャのパフォーマンス比較
プライマリキーがStockID
である共通の1つのテーブルで、各楽器の1分の小節をすべてプッシュします。
今、いくつかの計算のために。私は1分のバーから5分のバー、10分のバー、15分のバーなどを構築する必要があります。例:1分の棒の最後の5行をループし、棒の大きさ= 5分の最初の棒を作成します。そしてその5分のバーの中で私はOpen Price
、High Price
、Low Price
、Close Price
、Volume
を見つける必要があります。同様に、私は180、5分のバーが必要になります。だから、私は180 * 5 = 900行1分のバーが必要になります。私はすべて900の1分のデータを取得し、ループとで5分のバーで180のデータを作成するために、C#コードから簡単なSELECT文を実行すると
(900から、私は180行5分のそれぞれを構築します)私のC#のコードと各5分のバーでオープン価格、高価格、近い価格、ボリュームを取得します。
または、私は上記と同じことをして、オープン価格、高価格、低価格、近い価格、C#コードに5分の棒のすべての180データのボリュームを返します。
私の質問は、はるかに高速1)または2)と1より堅牢になる)または2)
希望、私は専門家のために詳細に私の質問やシナリオを額装しているされる、あります教えて。
私の経験から、ストアドプロシージャはサーバー間のクエリ数を減らすので、はるかに高速です – Mathieu
もう1つの「自分で測定してください。少なくとも、あなたは保守性について幾分尋ねています。 – Marc
これは、クライアントの速度、サーバーの速度、ネットワークの待ち時間、データの量、インデックス、s'procの品質など、さまざまな変数に依存します。自分でテストする必要があります。 – Phil