同じデータベースを2つコピーして同じアプリケーションを使用した場合、.NETアプリケーションのメモリ使用量に大きな違いがあります。唯一の違いは、シナリオ1では、SQL Server 2005 Express
のインスタンスに登録されたデータベースのローカルコピーを使用していることです。シナリオ2では、SQL Server 2008 Enterprise
のインスタンスに登録されたデータベースのリモートコピーを使用しています。SQL Expressクライアントのメモリ使用量がSQL Enterpriseクライアントのメモリ使用量と異なる
私の知る限り、私はSQLパフォーマンスとSQLメモリ使用量に違いがあると思います(Expressには1GBの制限があるため)。
しかし、私が見ているのは、1GB以上のメモリを使用した場合のSQL Express
シナリオのように、メモリ使用量が大きく異なる(1GB)ということです。 SQL Express
も、特に大きなテーブルや大きなクエリではるかに遅くなるようですが、このメモリヒットがSQLであり、消費/クライアントアプリケーションではないと思いますか?
アプリはSystem.Data.SqlClient.SqlConnection
を使用してSQLサーバに接続し、頻繁にSqlCommand
とSqlBulkCopy
の操作を実行します。
ご意見はお寄せいただければ幸いです。
これはリッチクライアントアプリですか?すべての違いは接続文字列ですか? – Rikalous
ほとんどの場合、SQLに接続する.Netアプリケーション(GUIアプリケーションではなくサービスです)です。そして、はい、2つのテストシナリオの唯一の違いは、接続文字列です。 – Jackfruit
どのようにメモリ使用量を測定していますか? 1ヒットでメモリの負荷を消費しているのか、時間の経過と共に徐々に増加していますか? – Rikalous