トップ回答者
テストサーバでは速いのに、本番サーバでは遅い

質問
-
はじめまして
SQL Serverのチューニングについて教えてください。
本番サーバ Windows 2003 Serve、 memory 4G 、SQL Server 2005
テスト用サーバ Windows XP、 memory 2G、 SQL Sever 2005
本番サーバにて、50分かかる処理の検証を行うため、データをテスト用サーバに移行し実行したところ、4分で終了してしまいました。
データ件数は、同一です。本番サーバでの遅延について調査方法、改善方法をご教授ください。
*テストサーバは、処理中 CPUの使用率が90%を超えていましたが、本番サーバは、10%前後でした。
回答
-
本番サーバーからテスト用サーバーにどのようにデータを移行したかが書かれておりませんでしたので、その辺の情報を提示されるとよろしいかもしれません。
例としては以下のような情報になります。- 本番サーバーで取得したバックアップ (BACKUP DATABASE) をテスト用サーバーにリストア (RESTORE DATABASE) して移行
- 本番サーバーからテキスト形式でエクスポートしたデータをテスト用サーバーにインポートして移行
- データベースエクスポートウィザードを使用して本番サーバーからテスト用サーバーにデータを移行
どのような方法でデータを移行したかによって回答が変わってくるかと思いますので。
本番サーバーからテキスト形式でエクスポートし、テスト用サーバーにインポートを行いデータを移行、データベースエクスポートウィザードを使用してデータを移行した場合は、テスト用サーバー上ではデータの断片化が解消され処理が早くなったという可能性があります。
バックアップ / リストアの場合は断片化の状態もそのままテスト用サーバー上で再現されますので、これで処理速度に差がある場合は実行プランに違いがあるかもしれませんので、本番とテスト用サーバーで実行プランが同じになっているかを確認されると調査の一助になるかと。
# テキスト形式でエクスポートした場合も実行プランは見られた方がよろしいかと。CPU の使用率の違いですが、本番とテスト用サーバーで CPU コア数の違いはありませんでしょうか。
CPU コア数が違うと使用率も変わってきますので、使用率についても情報をお探しなのであればコア数についても情報を書かれるとよろしいかと思います。また、SQL Server の Edition によっても多少動作が変わってきますので、こちらの情報も書かれるとよろしいかもしれないです。
# 本番は Standard で実行していて、テスト用サーバーは Developer Edition で実行されている場合にはテスト用サーバーの方が上位エディションを使用していることになりますので。ご参考になれば幸いです。
すべての返信
-
本番サーバーからテスト用サーバーにどのようにデータを移行したかが書かれておりませんでしたので、その辺の情報を提示されるとよろしいかもしれません。
例としては以下のような情報になります。- 本番サーバーで取得したバックアップ (BACKUP DATABASE) をテスト用サーバーにリストア (RESTORE DATABASE) して移行
- 本番サーバーからテキスト形式でエクスポートしたデータをテスト用サーバーにインポートして移行
- データベースエクスポートウィザードを使用して本番サーバーからテスト用サーバーにデータを移行
どのような方法でデータを移行したかによって回答が変わってくるかと思いますので。
本番サーバーからテキスト形式でエクスポートし、テスト用サーバーにインポートを行いデータを移行、データベースエクスポートウィザードを使用してデータを移行した場合は、テスト用サーバー上ではデータの断片化が解消され処理が早くなったという可能性があります。
バックアップ / リストアの場合は断片化の状態もそのままテスト用サーバー上で再現されますので、これで処理速度に差がある場合は実行プランに違いがあるかもしれませんので、本番とテスト用サーバーで実行プランが同じになっているかを確認されると調査の一助になるかと。
# テキスト形式でエクスポートした場合も実行プランは見られた方がよろしいかと。CPU の使用率の違いですが、本番とテスト用サーバーで CPU コア数の違いはありませんでしょうか。
CPU コア数が違うと使用率も変わってきますので、使用率についても情報をお探しなのであればコア数についても情報を書かれるとよろしいかと思います。また、SQL Server の Edition によっても多少動作が変わってきますので、こちらの情報も書かれるとよろしいかもしれないです。
# 本番は Standard で実行していて、テスト用サーバーは Developer Edition で実行されている場合にはテスト用サーバーの方が上位エディションを使用していることになりますので。ご参考になれば幸いです。