1

あるコンピューターで実行するのに7秒かかるSQLクエリがありますが、別のコンピューター(同じハードウェア、データベースはmysqldumpでコピーされているため、同じです)では、同じクエリが2000秒以上実行されます。

これがなぜであるかをどうやって知ることができますか?遅いmysqlのデバッグについてオンラインで見つけることができるすべてのアドバイスは、「遅いクエリを見つける」に要約されているようです。それはここで私を助けません。Show processlistは、実行中の他のクエリを表示しません。それでは、あるコンピューターでこのクエリを実行するのに、別のコンピューターよりも何百倍も時間がかかるのはなぜですか。

4

1 に答える 1

0

私が理解しているのは、SQL Server が両方の条件で同じであるということです。あなたが言っているのは、クエリ x が client1 から実行されると、数秒かかるということです。一方、他のクライアント client2 からは 2000 秒以上かかっています。

client2 とデータベース サーバー間のネットワークに問題があると思います。これら 2 つのサーバー間で ping を試行します。何かヒントになるはずです。この理論は、サーバーが実行されているクエリを表示していないと述べたという事実によってもサポートされています。

両方の条件で SQL Server が異なる場合。インデックスなどは同一です。問題は、ANALYZEがclient2で長い間実行されていないことです。

于 2013-01-18T17:32:43.193 に答える