私はMS認定の勉強をしていますが、私が行っている模擬テストの1つに、StateServerとは対照的に、SQL Serverにセッションを格納する間のパフォーマンスが競合のポイントであるという疑問があります。
アプリがWebファームで実行されている場合、セッション状態のどのソリューションが最高のパフォーマンス(SQL ServerまたはStateServer)を提供するか、そして最も重要なのはなぜですか?
State Serverは、セッションデータをインメモリディクショナリに格納するため、より高速です。 SQL Serverは、データをディスクに保持するデータベースに格納されているため、速度が遅くなります。
すべてが1つのテーブルに格納されるため、SQLサーバーの速度も遅くなります。これは、セッションデータにアクセス/更新するクライアントが増えるにつれて、競合が発生するためです。
SQLサーバーはディスクに永続化され、フェイルオーバー機能を備えたクラスターとしてセットアップできるため、信頼性が高くなります。
詳しい説明は この記事 の前文を参照してください。
少しではありますが重要な補足:InProcはファームで使用できません。名前が示すように、InProcは現在のw3wpプロセスで実行され、ファーム間で共有できません。 StateServerはWindowsサービスであるため、StateServerを使用する速度は、stateserverサービスが実行されているマシンの速度に依存します。これはメモリのみです。もちろんSQLはデータを書き込んで取得する必要がありますが、これはおそらくメモリのみよりも低速です。
ここ から:
このリンクから: http://www.eggheadcafe.com/articles/20021016.asp
パフォーマンス
InProc-最速ですが、セッションデータが多いほど、Webサーバーで消費されるメモリが多くなり、パフォーマンスに影響を与える可能性があります。
StateServer-基本タイプ(文字列、整数など)のデータを保存する場合、1つのテスト環境では、InProcよりも15%遅くなります。ただし、大量のオブジェクトを格納している場合は、シリアル化/逆シリアル化のコストがパフォーマンスに影響する可能性があります。独自のシナリオでパフォーマンステストを行う必要があります。
SQLServer-基本タイプ(文字列、整数など)のデータを保存する場合、1つのテスト環境では、InProcより25%遅くなります。 StateServerと同じシリアル化に関する警告。
したがって、StateServerは、SQL Serverよりもセッション状態を格納する方が少し高速であるように見えます。
理由については、SQL Serverの方が多目的であり、他の用途にも使用される可能性が高いと思います。それだけでなく、ストレージメカニズムはディスクにあり、StateServerは別のプロセスで実行されているため、ディスクにデータを書き込む必要はなく(仮想メモリで許可されている)、データを他のプロセスのメモリスペースに単に格納しています。
SQL Server(In Memory)が答えです-SQL 2014で利用可能