我只想知道如何索引此表以獲得最佳性能?這將有可能保持約20M行。如何通過索引提高我的查詢性能
CREATE TABLE [dbo].[Table1](
[ID] [bigint] NOT NULL,
[Col1] [varchar](100) NULL,
[Col2] [varchar](100) NULL,
[Description] [varchar](100) NULL
) ON [PRIMARY]
基本上,這個表格只會以這種方式被查詢。
SELECT ID FROM Table1
WHERE Col1 = 'exactVal1' AND Col2 = 'exactVal2' AND [Description] = 'exactDesc'
這是我做過什麼:
CREATE NONCLUSTERED INDEX IX_ID
ON Table1(ID)
GO
CREATE NONCLUSTERED INDEX IX_Col1
ON Table1(Col1)
GO
CREATE NONCLUSTERED INDEX IX_Col2
ON Table1(Col2)
GO
CREATE NONCLUSTERED INDEX IX_ValueDescription
ON Table1(ValueDescription)
GO
我說得對不對索引所有這些列?還沒有那麼自信。剛接觸SQL的東西,請讓我知道如果我在正確的軌道上。
再次,大量的數據將放在這張桌子上。不幸的是,由於沒有可用的數據,我無法測試性能。但我很快會生成一些虛擬數據來測試性能。但如果已經有另一個選項(建議)可用,我可以將結果與之比較,那就太好了。
感謝, 插孔
IM不知道這種方法的又..我認爲這是類似於我做了什麼:) 我要它使用這種方法進行測試,看看性能如何,並會在完成後給您提供反饋。 謝謝!順便提一下, – jackCaller
,ID列怎麼樣?是否有必要將它作爲索引?它包含唯一值,但不會包含在過濾器(WHERE子句)中。 – jackCaller
+1 - 同意此解決方案。 – Devart