私たちのプロジェクトの 1 つを最適化する方法について、ちょっとしたアドバイスを探しています。SQL2008 データからデータを取得し、それを DevExpress ASPxGridView に表示する ASP.NET/C# システムがあります。検索されるデータは、多数のデータベースの 1 つから取得できます。データベースはすべてわずかに異なり、定期的に追加および削除されています。ユーザーにはライブの「会社」のリストが表示され、対応するデータベースからデータが取得されます。
現時点では、標準の SqlDataSource と動的に作成された SQL SELECT ステートメントを使用してデータを取得しています。ステートメントにはいくつかの JOIN と、オプションの WHERE 制約があり、データベースとユーザーの権限レベルに応じて動的に作成されます。
パフォーマンスは別として、これらはすべてうまく機能します (正直なところ!)。一部のデータベースに関しては、数十万の行があり、データの取得とページングが非常に遅くなります (データベースは既に適切にインデックス化されています)。したがって、私はシステムを高速化する方法を検討してきましたが、それは XPO または LINQ の 2 つの選択肢に要約されるようです。
LINQ は一般的な選択肢のようですが、本質的に非常に動的なシステムで実装するのがどれほど簡単かはわかりません.LINQ がアクセスできるデータベースごとに「定義」を作成する必要がありますか? また、LINQ クエリを動的に作成することについても少し確信が持てませんが、少なくともその一部が実行可能であるように思われるいくつかの例を見てください。
一方、XPO では、その場で XPO データ ソースを作成できるようです。ただし、他のテーブルに結合する方法に関する情報があまり見つかりません。
このプロジェクトにレトロフィットを試みるのに最適な方法 (ある場合) について、誰かアドバイスをいただけますか? それとも、現在使用されている動的 SQL モデルは LINQ や XPO とは根本的に異なり、そのままにしておくのが最善でしょうか?