2014-02-09 76 views
0

我对SQL Server性能测试相当新,但我想加快我的搜索查询速度。我有一个名为locations的表,它仅用于“GET”。我有2列叫做citystate。用户输入一些搜索条件到一个文本框,然后我带回从该位置信息使用下面的代码ASP.NET MVC 3索引varchar列

var city = textbox.city; 
var state = textbox.state; 
var search = sqlConnection.Query<location>("Select * from locations where city = @Ucity AND state = @Ustate", new { Ucity = city, Ustate = state }).FirstOrDefault(); 

两个柱子均Varchar(50),将它们编索引使查询速度更快?或者以某种方式优化我的查询。我听到很多混合的答案,因为这些是字符串。

+1

索引*可能*有帮助 - 但是因为您通过使用'SELECT * FROM ....'回退**所有列**,所以可能性相当小。除非您的查询条件是非常有选择性的 - 返回的数据行数少于1-5% - 即使存在索引,SQL Server的查询优化器也会使用表扫描/聚簇索引扫描,这一点很好 - 因为它总是需要做一个昂贵的密钥查找到实际的数据来获取**所有列** –

+0

如何混淆ASP.NET与SQL Server? –

+0

我没有混淆任何部分,我也期待看看是否有任何我可以优化我的搜索查询。 – user1591668

回答

0

会索引它们使查询更快?

恩......是吗?由于这是一个等式匹配搜索,如果在该表中存在非重要数字,则非聚集索引(大概是单个索引跨越州和城市的顺序)将非常有帮助。