【问题标题】:ASP.NET MVC 3 indexing varchar columnsASP.NET MVC 3 索引 varchar 列
【发布时间】:2014-02-10 06:05:38
【问题描述】:

我对 SQL Server 的性能测试相当陌生,但我想加快我的搜索查询速度。我有一个名为locations 的表,它仅用于“GET”。我有 2 列名为 citystate。用户在文本框中输入一些搜索条件,然后我使用以下代码从该位置带回信息

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


【解决方案1】:

索引它们会使查询更快吗?

嗯....是吗?由于这是一个相等匹配搜索,如果该表中有一个非平凡的行数,非聚集索引(可能是按该顺序跨越州和城市的单个索引)将有很大帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多