ASP.NET コントロールでは、データ ソースをバインドするときに使用するテーブル インデックスを指定できないため、SqlDataSource コントロールを使用してデータを処理している場合、クエリは実際には 1 つのテーブルしか返すことができません。別の方法は、コードビハインドとデータバインドからクエリを手動で実行することです。どちらの方法でも問題ありませんが、この状況での「ベストプラクティス」とは何か (そしてその理由) に興味があります。
ありがとう
ASP.NET コントロールでは、データ ソースをバインドするときに使用するテーブル インデックスを指定できないため、SqlDataSource コントロールを使用してデータを処理している場合、クエリは実際には 1 つのテーブルしか返すことができません。別の方法は、コードビハインドとデータバインドからクエリを手動で実行することです。どちらの方法でも問題ありませんが、この状況での「ベストプラクティス」とは何か (そしてその理由) に興味があります。
ありがとう
パフォーマンスの問題が発生している場合は、ストアド プロシージャ、データベース、またはネットワーク構成を調べます。簡潔でモジュール化されたデータにアクセスする目的で、データベースに対して複数の呼び出しを行っても問題はありません。実際、クエリの数を減らすためだけに非常に高価なクエリを考え出すと、パフォーマンスがさらに低下する可能性があります。
アプリケーションのさまざまな機能で同じデータにアクセスしている場合は、データをキャッシュにプルして、データベースではなくキャッシュにクエリを実行できます。これは、クエリの数を減らすよりもはるかにパフォーマンスに大きな影響を与えます。
1 つのクエリを使用して「必要な」データの複数のセットを取得できる場合は、そのデータが本当に必要であることが常に推奨されます。Yout 2nd アプローチはその柔軟性を提供します
また、SQLDataSource
実際の運用アプリケーションで を使用すると、DAL と UI が組み合わされるため、ほとんどのベスト プラクティスに反します。この方法でレイヤー化するという概念はまったくなく、事実上 1 レイヤーのアプリケーションを作成しています。SQLDataSource
私の提案は使用しないでください。