バックエンドとして SQL Server 2008 を使用するアプリケーションに取り組んでいます。毎日の終わりに、データベースをバックアップしてラップトップに復元し、自宅で開発を続けることができます。両方のセットアップですべてが正常に機能しますが、ローカル マシンで実行されているクエリは、職場のリモート サーバーにクエリを実行している場合よりも劇的に長くなります (数秒と 1 秒未満)。
サーバーを名前で指定し、「.」を使用します。ローカル インスタンスに接続します。アプリは、統合セキュリティを使用して ADO 経由で接続する Excel VBA です。
職場のサーバーの仕様はわかりませんが、私のラップトップよりも優れていると思うので、おそらく違いの一部を説明しています. ただし、私の開発用ラップトップはまともで (Windows 7、2.4 GHz Core i5、64 ビット、8 GB RAM)、この時点でデータベースは非常に小さいです。
なぜパフォーマンスが劇的に異なるのでしょうか? パフォーマンスを改善するには、ラップトップで何を確認する必要がありますか?
編集:クエリに問題がないことがわかりました。私のラップトップでは、データを取得するためのサーバーへのラウンドトリップにかなりの時間がかかっていました。実際には接続であるのに、クエリであると誤って想定していました。SSMS を介してデータベース エンジンに接続すると、どちらの環境でもほぼ同じ時間がかかりますが、ADO を使用して接続すると、ローカルで接続に時間がかかります。この遅延の原因は何ですか?
Mitch の返信を回答としてマークし (クエリ時間と環境の差異のトラブルシューティングに役立ちます)、接続遅延に関する新しい質問を作成します。
更新:これは、ローカルホストでの接続の恐ろしいパフォーマンスに関する SE.DBAs に関する私の質問へのリンクです: https://dba.stackexchange.com/q/18231/2848