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

SQL クエリの実行が遅い (一部のパラメーター値の場合)

    (DeviceId, MessageCounter DESC) にインデックスを作成してみてください .

    また、次のクエリを試してください:

    select * 
       from "Timestamps"
       where DeviceId = 1
       and MessageCounter = (SELECT MAX(MessageCounter) FROM "Timestamps" WHERE DeviceID = 1)
    

    推測:パフォーマンスの違いは、DeviceId = 1 が原因である可能性があります DeviceId = 4 よりも多くのページに分散しています .並べ替えによって、一番上の行だけを選択したとしても、一致するすべてのページを掘り起こしているのではないかと思います。



    1. SQL Server 2008 データベースでデータ履歴を維持する方法

    2. mysql_fetch_arrayおよび文字列配列キーのみ

    3. MySQLとSphinxの混合クエリ

    4. デフォルト値を挿入