摘要
我計劃存儲在SQL Azure數據庫與下面的模式牌照名單:建議先進性能調整 - 除了基本的索引
架構
CREATE TABLE [dbo].[events](
[id] [bigint] IDENTITY(1,1) NOT NULL,
[dateTimeCreated] [datetime] NOT NULL,
[registration] [varchar](14) NOT NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[events] ADD CONSTRAINT [DF_events_dateTimeCreated] DEFAULT (getdate()) FOR [dateTimeCreated]
GO
我只能想到運行以下一個查詢: - 在給定的日期/時間範圍內搜索註冊
到目前爲止我只能想到建立一個非聚集索引agaisnt dateTimeCreated和登記
問題
有可能最終會被數百萬行的10的。 *當行數最終確實增加很多時,有哪些選項(天藍色特定與否)可以提高性能? *有關於查詢性能如何降低給定行數的指南?
好點我會將其更改爲int謝謝 – 2015-02-10 18:29:45
我同意你的bigint建議,但是......您建議在pkey ID列上使用聚簇索引來加速'count'操作?這是SQL Server的默認設置,在這種情況下根本沒有用。 OP(@DavidHawkins)清楚地詢問'dateTimeCreated'和'registration'列的搜索性能。應該對這些列進行聚類,以顯着減少頁面抓取,從而提高性能。 – 2015-02-10 18:41:59
@PaulSasik好的,這是你的意見和你的答案。我會每次都使用身份證作爲PK(或者甚至沒有身份證)。我懷疑目的是爲了FK。對於insert中的一個,我可以獲取用於填充FK表的標識的值。取回日期時間的價值並不容易。並且getdate()不保證是唯一的。 – Paparazzi 2015-02-10 18:49:52