【发布时间】:2015-07-01 01:14:59
【问题描述】:
资源 128 GB RAM,6 TB 空间,Sql server 2014 企业版。
问题:我们的数据库很少有表,包括 5 个 200GB(大约)的“只读表”。 这 5 个表中的每一个都有 5 列(所有列(varchar 100))。 每个 col 都有重复的字符串或值。两列(col3 和 col4)有大约 3500 个重复的唯一字符串或值。
我们唯一的查询是 'select col1......(all columns) from table x where col1 like 'searchstring%' or col2 like 'searchstring%' (只有两个 col 被查询为 OR 子句) 因为这些是唯一的匹配条件。
目前查询需要 1 小时到 1.5 小时才能返回具有当前索引的结果。 我想知道是否有一种有效的方法可以在 5 到 10 分钟内获得结果。 谢谢
【问题讨论】:
-
您能发布您的查询吗?以及表的创建脚本?
-
假设您的 OR 条件将在小括号 () 中,例如哪里(col1 like 'searchstring%' 或 col2 like 'searchstring%')。并使用 With (Nolock),例如来自表 x 与 (Nolock)
-
尝试将“喜欢”改为“包含”,看看是否有帮助:stackoverflow.com/questions/7510646/…
-
在执行计划中查看您的查询以找出代价高昂的部分
-
创建
Index更快获得结果非常有用。
标签: sql sql-server sql-server-2012 database-administration sql-server-2014