我有一个名为Products
的表。
这个表包含超过300万条记录。每天大约会有5000个新条目添加,只会在晚上的2分钟内发生。
但是这个表每晚都会被查询超过20,000次,使用的是下面这个查询语句。
SELECT Price
FROM Products
WHERE Code = @code
AND Company = @company
AND CreatedDate = @createdDate
表结构:
Code nvarchar(50)
Company nvarchar(10)
CreatedDate datetime
我发现这个查询需要大约一秒钟的时间才能从Products
表返回结果。
该表中没有productId
列,因为它不是必需的。因此该表中没有主键。
我希望能够改进此查询以更快地返回结果。
我以前从未使用过索引。在这个表上使用索引的最佳方法是什么?
如果我提供主键,您认为它会加速查询结果吗?请记住,我仍然需要通过提供3个参数来查询该表。
WHERE Code = @code
AND Company = @company
AND CreatedDate = @createdDate.
这是必需的。
正如我所提到的,每天晚上表格会在2分钟内获得新条目。这会影响索引吗?
如果我使用索引,哪一列最好使用,我应该使用聚集索引还是非聚集索引?