2

10個のドロップダウンリストを含むフォームがあります。これらのリストは、フォームの読み込み時にデータベースに対して10回の呼び出しを行うことで取得します。

次の2つの場合のアプリケーションとSQLServerのパフォーマンスを知りたいです。また、最善のアプローチを提案してください。

  1. 10個のリクエストを実行するこれらのドロップダウンリストのそれぞれのデータを取得します
  2. 10個のテーブルをフェッチしてデータリーダーのUIにこれらの10個のテーブルを返し、エンティティを作成するストアドプロシージャを作成します(シングルヒット)

あなたの意見を提案してください...

4

4 に答える 4

1

一度にデータをフェッチする場合、つまりproceudre oneceを呼び出して、10個すべてのドロップダウンデータを取得する場合に便利ですが、レコードの数と、各ドロップダウンボックスにバインドする各レコードを処理する時間にも依存します。

于 2012-07-19T06:31:41.293 に答える
0

オプション1。メンテナンスが簡単です。

1.10リクエストはそれほどコストがかかりません。2。いつか5つだけをクエリしたいとすると、データ部分を簡単に組み合わせることができます。それらを1つのストア手順に入れると、ビジネスロジックが変更されたときに物事が困難になります。

于 2012-07-19T06:45:06.520 に答える
0

SQLServerのストアドプロシージャから複数のテーブルを返すことができます。複数のselectクエリを使用してストアドプロシージャを作成します。たとえば、spに10個のselectクエリがある場合、10個の結果セットまたはテーブルが返されます。

于 2012-07-19T06:32:40.993 に答える
0

数か月前に同じ状況が発生し、ある意味でオプション2を選択しました。つまり、異なるSPから5つのデータテーブルが返されるため、5つの出力パラメーターを持つ1つのSPを作成しました。

これらのパラメーターでは、特定のデータテーブルが必要かどうかを入力として送信し、後でSPが特定のデータテーブルが返されるインデックスを返します。

CREATE procedure [dbo].[MySP]
@pTable1 smallint OUTPUT
@pTable2 smallint OUTPUT
AS
DECLARE iLocation smallint = 0;
BEGIN
IF @pTable1 = 1
     BEGIN
          SELECT * FROM TABLE1;
          SET @pTable1 = iLocation;
          iLocation = iLocation + 1;
     END
END
.....
AND SO ON

それがあなたにもっと良い考えを与えることを願っています。

于 2012-07-19T07:17:31.937 に答える