質問: タイトルの件、IIS上で動作するASP.NETのWEBアプリ(C#)で大量のデータを SQL Serverから検索して、処理しています。 Webアプリで大量のデータを扱うのは設計が悪いということはわかっておりますが、 件数が増えるにつれて、メモリ領域の確保に時間がかかり検索速度が大幅に遅くなってしまう 状況です。 動作環境は以下となります。 Windows Server 2012 R2 IIS 8.5 メモリ 32GB SQL Server 2016 Standard Edition SQL Server も複数インスタンスが同じサーバ上で動作(同居)しており、 リソースモニタで確認すると30GB程度使用中となっています。 IISの利用しているアプリケーションプールの プライベートメモリ制限と仮想メモリ制限は、0で設定しており、 無制限の認識です。 少しでも状況を改善したいと思っておりますが、単純にメモリを増設すれば IISが利用できるメモリも増えると考えて問題ないでしょうか? 知見があるかたご回答いただけますと幸いです。
回答: XY問題ではないでしょうか? > > Webアプリで大量のデータを扱うのは設計が悪いということはわかっておりますが、件数が増えるにつれて、メモリ領域の確保に時間がかかり検索速度が大幅に遅くなってしまう状況です。 > > > 「件数が増えるにつれて、検索速度が大幅に遅くなってしまう」は疑う余地のない観測された事実と思います。しかしその原因が「メモリ領域の確保に時間がかかり」であると特定できているのでしょうか? 当たり前ですが原因でなかった場合、メモリを増設してもメモリが増えるだけで速度は改善しません。 ですので、原因を特定することをお勧めします。 「大量のデータを扱うのは設計が悪いということはわかっております」との記述はプログラムを修正しない前提でしょうか? であれば、ディスクに負荷がかかっているのであれば高速なSSDを、ネットワークに負荷がかかっているのであれば10GbEを、と対策を取るべきです。