sql >> データベース >  >> RDS >> Sqlserver

同じ SQL クエリは、同じサーバーの下の別の DB よりも、ある DB で実行するのに時間がかかります

    (あなたが言ったように) 同じサーバー上に同じデータ セットを持つ 2 つのデータベースがあるという事実は、同じ実行計画を保証するものではありません。

    クエリ プランが異なる理由のいくつかを次に示します。

    • mdf ファイルと ldf ファイル (各データベース用) は別のドライブにあります。 onedrives が高速であれば、そのデータベースのクエリも高速に実行されます。
    • 停滞した統計。 1 つのデータベースが他のデータベースよりも新しい統計情報を持っている場合、SQL は適切な (そして
      より高速な) 実行プランを選択する可能性が高くなります。
    • インデックス:両方とも同一だとおっしゃっていましたが、両方に同じタイプのインデックスがあるかどうかを確認します.

    比較するのではなく、クエリの実行速度が遅い理由や実際の実行計画を確認することに重点を置いてください。遅いクエリの実際の実行計画を確認すると、実行速度が遅い理由のヒントが得られます。

    また、問題を解決するために NO LOCK ステートメントを追加しません。私の経験では、トランザクションによっては、変更された結果セットまたは古い結果セットを取得する可能性のある NO LOCK ヒントを追加する代わりに、コードまたはインデックスを介してほとんどの低速クエリを調整できます。



    1. VBMySqlAddWithValueが値を正常に渡さない

    2. MAKEDATE()の例– MySQL

    3. 春のどこで使用する-jdbc

    4. MySQLと制約を使用して一致するタグを検索(類似性検索)