2

私は、MS SQL サーバーで大きなテーブル (1000 万レコード) を使用するプロジェクトに取り組んでおり、非常に複雑なフィルター (10 列以上) を使用してそのテーブルをクエリし、ユーザーの選択に応じて異なるフィールドで結果を並べ替える必要があります。 UI。

ストアド プロシージャ内で一時テーブルを使用して必要なすべてのフィルタリングと並べ替えを行う必要があるため、クエリの実行が少し遅くなります。

Raven DBのクエリのフィルター部分で使用するテーブルの一部をロードするプロセスを使用できると考えています。実際、SQLのストアドプロシージャとインデックスを、クエリできるRaven DBレイヤーに置き換えます。

ストアド プロシージャが遅い理由を調査し、最適化を行うためにもっと時間を費やすべきだと思いますか、それとも Raven DB のアプローチが私にもっと利益をもたらすと思いますか?

4

3 に答える 3

3

アーキテクチャにはすでに多くの複雑さとオーバーヘッドがあるように思えます。新しいテクノロジーを導入しても、複雑さが軽減される可能性は低いようです。したがって、既存のセットアップを最適化する可能性を調査する必要があると確信しています。

注目すべきことの 1 つは、インデックス付きビューです。これにより、説明したようなクエリ レイヤーを構築できますが、SQL Server 機能が組み込まれています。そのため、仕事を始めるのはずっと簡単になるはずです (それほど楽しいとは言えませんが!)。 詳細をご覧ください

于 2011-03-17T11:55:25.143 に答える
1

速度を上げる前に、常にプロファイルを作成して、何かが遅い理由を特定する必要があります。

于 2011-03-18T02:05:24.560 に答える