资源128 GB RAM,6 TB空间,Sql server 2014企业。
问题:我们的数据库有几个表,包括5'只读表'每个200GB(约)。 这5个表中的每一个都有5列(所有列(varchar 100))。 每个col都有重复的字符串或值。两列(col3和col4)具有大约3500个重复的唯一字符串或值。
我们唯一的查询是从表格x中选择col1 ......(所有列),其中col1类似于' searchstring%'或col2喜欢' searchstring%' (只有两个col被查询OR子句)因为这是唯一的匹配标准。
目前查询需要1小时到1.5小时才能返回带有当前索引的结果。 我想知道是否有一种有效的方法可以在5到10分钟内获得结果。 感谢
答案 0 :(得分:1)
进入SQL Server Managment Studio并查看execution plan查询。这将显示任何推荐的索引以及速率限制步骤(比如io)。确保您没有cardinality mismatching,并且在大表格上确保您保持statistics最新。
答案 1 :(得分:0)
这完全取决于您的数据库,但我建议尝试将查询拆分为2以删除OR。
我还建议调查功能索引,例如,您可能能够对前10个字符进行索引,然后查询可能会更快。
尝试一切,你永远不知道什么会起作用。