- WPF .NET 4.0 アプリケーション
- 現在Citrixでホストされています
- MSSQL 2008 R2 バックエンド
- DB サイズは最大 100 GB
- TSQL 検索は一度に 100 個のオブジェクトを返し、12 個のテーブルにヒットします
- ほとんどの検索は 1 秒未満で、10 秒を超える検索はほとんどありません
- TSQL (SP) の更新は一度に 1 つずつ
- 読み取り:書き込み > 10000:1
- 1 つのデータベースに 100 人のアクティブ ユーザーがいる場合がありますが、アクティブな接続が 10 を超えることはありません。
- データのロードを実行すると、SQL ボックスが 25% を超えるだけで、その後は 50% 未満のままになります。
WCF 経由でクライアント サーバーに移動します。私の最初のWCF。
- 社内でサービスとしてホスティングすることを考えているWebクライアントがいないので??
- 後で姉妹製品を作成し、Azure でホストします
- セッションが必要だと考えていますか??
- 私の考えが間違っていたら教えてください
私が迷っているのは、OperationContract Instancing と Concurrency です。
検索インスタンス化の場合、PerSession を使用する必要がありますか? もしそうなら、SQL接続を開いたままにしておくべきですか?
更新は検索とは大きく異なります。6 つの異なる update OperationContracts があります (異なるデータ型用)。更新は一度に 1 つずつ、PK を介して行われ、ソース テーブルとログ テーブルにヒットします。これは、Single Instance および ConcurrencyMode Mutiple としてより意味があり、接続を保持する可能性がありますか? もしそうなら、私は並行性を管理しますか?
一括更新もありますが、今のところ一連の単一更新として扱うつもりです。
主な目的は、データの整合性、可用性、スケーラビリティです。
難しい答えがないかもしれないことは理解しています。ポインタや参考資料はありますか?ストレステストはどのようにすればよいですか?プロセスを管理および監視する方法は?
テストするデータがたくさんあるので、結果を報告します。