Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Подходящ индекс на SQL сървър за схема само за вмъкване

Вмъкване само на индекс :S Мисля, че схемите само за вмъкване е най-добре да бъдат оставени без никакви индекси, но наличието на какъвто и да е индекс в таблица ще навреди на производителността на вашите операции за вмъкване.

Какво ще кажете за създаването на индекс на 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Производителност на свързания сървър на SQL Server

  2. Изпълнете съхранена процедура в динамична временна таблица

  3. Пуснете таблицата, след което не можете да създадете отново таблица със същото име

  4. Най-бързият начин да проверите дали знакът е цифра?

  5. Случаен претеглен избор в T-SQL