我有一个相当基本的查询,如下所示,我需要经常并尽可能快地执行:
Select
B.ID, B.FirstName, B.LastName
From
TableA as A
Join
TableB as B on A.ID = B.ID
Where
A.OtherID = @Input
所以我的想法是创建一个参数为@Input
的存储过程。我认为,由于执行计划已保存在服务器端,这将提高速度。
但我希望进一步增加它,并认为索引可能有所帮助。但是我没有处理索引,只是阅读了一点。
您需要什么信息来帮助我构建可以提供帮助的索引? 指数会有帮助吗?
此外,这个存储过程将从Excel 2013中调用,如果这会对我们可以采取的其他措施产生影响来加快速度。
我们正在使用SQL Server 2012。
答案 0 :(得分:1)
SQL Server Management Studio非常擅长推荐索引。运行您的查询,看看它的内容。
在不了解您的架构或OLAP模式的情况下,我只能提出建议......
是" ID" TableA和/或TableB中的关键字段?如果是这样,他们已经编入索引。
我说你正在看两个索引:
TableA上包含ID的OtherID的索引。这将帮助SQL查找OtherID的值并返回与其关联的ID。
TableB上包含FirstName和LastName的ID的索引。这将帮助SQL进行连接并将行程保存回FirstName和LastName的行。