【发布时间】:2014-02-10 06:05:38
【问题描述】:
我对 SQL Server 的性能测试相当陌生,但我想加快我的搜索查询速度。我有一个名为locations 的表,它仅用于“GET”。我有 2 列名为 city 和 state。用户在文本框中输入一些搜索条件,然后我使用以下代码从该位置带回信息
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),索引它们会使查询更快吗?或者以某种方式优化我的查询。我听到了很多混杂的答案,因为这些都是字符串。
【问题讨论】:
-
索引 可能 有帮助 - 但由于您使用
SELECT * FROM ....拉回 所有列,因此可能性很小。除非您的查询条件非常有选择性 - 返回少于 1-5% 的数据行 - SQL Server 的查询优化器将使用表扫描/聚集索引扫描,即使存在索引也是好的 - 因为它总是必须这样做对实际数据进行昂贵的键查找以获取 所有列 -
如何将 ASP.NET 与 SQL Server 混淆?
-
我没有混淆任何部分,我也在寻找是否有任何可以优化我的搜索查询的方法。
标签: sql-server asp.net-mvc-3 optimization dapper