我對數據庫感興趣,並開始使用SQL Server 2008,我讀過使用表上適當的索引可以幫助提高數據庫的整體性能。SQL Server索引性能
我有兩個表和自動生成的在使用SQL數據生成每個表一個百萬行,表1是一個客戶表和表2是一個租戶表中,設計如下:
Customer Renters
CustomerID (PK) RentersID (PK)
ForeName (Non clustered index) StartDate
SurName EndDate
Email RentalNights
CustomerID (FK) (Non Clustered index)
我已經讀過在最常用的列和外鍵列上放置非聚集索引將有助於提高性能。在使用索引之前和使用索引之後,我創建了一個簡單的連接查詢,但對於我來說,在使用索引時我看不到增加的性能,任何主體都可以幫助我?下面的圖片是索引之前和使用它們之後的執行計劃。
前指標:
之後索引:
編輯: 這是我使用
SELECT cu.ForeName + ' ' + cu.SurName AS 'Name'
FROM dbo.Customers cu
INNER JOIN dbo.Renters re ON re.CustomerID = cu.CustomerID
WHERE cu.ForeName = 'Daniel'
編輯 SQL語法這是我的索引使用o的語法內斯貼在下面的回覆:
CREATE NONCLUSTERED INDEX [ix_Customer] ON [dbo].[Customers] ( [ForeName] ASC, [CustomerID] ASC ) INCLUDE ([SurName]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] GO
你能否還請顯示導致這些執行計劃的** SQL查詢**? –
也顯示索引的代碼? – JNK
另外,它看起來像你正在使用你的索引,性能是否一樣?是否需要同時運行這兩個查詢? – JNK