1

動的制御に関連するデータを保存するための最良のオプションは何ですか。これが私のシナリオです。

  1. いつでも5〜15個のマスターテーブルから取得できます。
  2. 動的コントロールのタイプは、TextBox、DropDownList、ListBox、GridViewです。
  3. マスターはポストバックで変更されませんが、ページは同じセッションで多くのポストバックが発生します。
  4. SQLServer2005と.NET2.0を使用しています

より経験豊富なユーザーであるため、データベースからこれらのコントロールにアイテムを入力するか、各コントロールのビューステートでアイテムリストを維持できるようにすることをお勧めしますか?私はこれをより速いパフォーマンスの観点から見ています。また、提案の理由を教えてください。

他の提案も歓迎します。さらに情報が必要な場合に備えて、お知らせください。

ありがとう-ラジャ

4

2 に答える 2

1

場合によります。アーロンが述べたように、ビューステートに保存するものはすべて、クライアントからサーバーにアップロードする必要があります。インターネットサイトの場合、これは通常、ビューステートを表形式のデータを格納するための非常に悪い場所にします。クライアントが100Mbsのアップロード帯域幅を持っている可能性が高いインターネットサイトの場合、それほど大きな問題ではなく、Viewstateの方が適している可能性がありますこれは、このデータを再構築するためのデータベースクエリにコストがかかる場合に特に当てはまります。

とは言うものの、多くのイントラネットサイトは最終的に在宅勤務者をサポートするために移植され、突然インターネットの状況で作業していることに気付くため、インターネットのようなパフォーマンスの制限を念頭に置いておくとよいでしょう。この場合、データベースクエリがボトルネックになっている場合は、インデックス付き/マテリアライズドビュー、またはこのデータを一時的に挿入してすばやく取得できる別のテーブルを検討して、処理を高速化することができます。

于 2009-12-28T15:59:27.253 に答える
0

あなたの場合、私は間違いなくデータベースにデータを当て、表形式のデータをViewStateに保存しません。ViewStateに保存されているものはすべて、ポストバックごとにクライアントからサーバーに送り返されます。暗号化されておらず、使用され、再暗号化されてから返送されます。これは、データベースにクエリを実行するよりもはるかにコストがかかります。

idやwhatnotのような小さなものは、ViewStateに格納するのに適していますが、データのテーブル全体ではありません。

于 2009-12-28T15:19:54.180 に答える