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

挿入のみのスキーマに適した SQL サーバー インデックス

    挿入のみのインデックス :S I シン挿入のみのスキーマはインデックスなしで残すのが最適ですが、テーブルにインデックスがあると挿入操作のパフォーマンスが低下します。

    feeditem_id にインデックスを作成するのはどうですか および effectiveDateUTC

    のようなフィールド
    CREATE NONCLUSTERED INDEX NIX_feeditem_id_effectiveDateUTC
    ON dbo.spotquotes(feeditem_id ASC, effectiveDateUTC DESC)
    GO
    

    次に、クエリを次のように記述します .....

    ;WITH LastestRecords
     AS(
       SELECT Id 
            ,feeditem_id 
            ,value_ask
            ,value_bid
            ,effectiveDateUTC
            ,ROW_NUMBER() OVER (PARTITION BY feeditem_id ORDER BY ffectiveDateUTC DESC) AS RN
      FROM spotquotes
      )
     SELECT Id 
            ,feeditem_id 
            ,value_ask
            ,value_bid
            ,effectiveDateUTC
     FROM LastestRecords
     WHERE RN = 1
    

    または

    次のようにインデックスを作成します

    CREATE NONCLUSTERED INDEX NIX_feeditem_id_Id
    ON dbo.spotquotes(feeditem_id ASC, ID DESC)
    GO
    

    クエリ

    ;WITH LastestRecords
     AS(
       SELECT Id 
            ,feeditem_id 
            ,value_ask
            ,value_bid
            ,effectiveDateUTC
            ,ROW_NUMBER() OVER (PARTITION BY feeditem_id ORDER BY Id DESC) AS RN
      FROM spotquotes
      )
     SELECT Id 
            ,feeditem_id 
            ,value_ask
            ,value_bid
            ,effectiveDateUTC
     FROM LastestRecords
     WHERE RN = 1
    


    1. SQL_Latin1_General_CP1_CI_AS を UTF-8 にエンコードする

    2. タグに基づいて同様のオブジェクトを取得する方法

    3. 長い生データをclob変数に取得する

    4. 一時的な使用を取り除く; filesortの使用