SQL Server 2005 を使用してページ検索ストアド プロシージャを作成しました。多数のパラメータが必要で、検索条件はやや複雑です。
フロントエンド アーキテクチャのため、実際に結果を返さずに返される結果の数を返せるようにする必要があります。次に、フロントエンドはストアド プロシージャを 2 回呼び出して、実際の結果を取得します。
一方では、2 つのストアド プロシージャを記述できます。1 つはカウントを処理し、もう 1 つは実際のデータを処理しますが、少なくとも 2 つの異なる場所で検索ロジックを維持する必要があります。別の方法として、ストアド プロシージャを記述して、ビット パラメーターを受け取り、それに基づいてデータまたはカウントのみを返すようにすることもできます。おそらく、一時テーブルにデータを入力し、それがカウントの場合はそこからカウントするだけで、そうでない場合はそこから選択します。ここでの問題は、カウント プロセスが最適化される可能性があるため、余分なオーバーヘッドが発生する可能性があることです (不要な列を取得する必要があるなど)。また、ストアド プロシージャでこの種のロジックを使用すると、2 つの使用の間を行き来するため、不適切なクエリ プランが発生する可能性があります。
システム内のデータ量はそれほど多くありません (より大きなテーブルでも数百万行のみ)。ただし、多くの同時ユーザーが存在する場合があります。
これらのアプローチに対する人々の考えは何ですか?私が思いもよらなかった方法でこの問題を解決した人はいますか?
1 回の呼び出しで結果とカウントを同時に取得することはできません。
ありがとう!