【问题标题】:indexes for search query sql server搜索查询 sql server 的索引
【发布时间】:2013-01-30 10:15:23
【问题描述】:

我有一个调用存储过程的搜索,该过程最多接受 5 个参数。 查询中有许多表,但参数都在查询中的单个表上进行过滤。 问题是 是为每个参数(表中的字段)建立一个索引还是一个涵盖所有参数的索引更好 显然还有其他查询可能会出于自己的目的使用这些字段中的一个或多个,因此也许值得为每个字段保留一个索引。

抱歉,如果这不是一个明确的问题

问题:最好有一个覆盖索引 - 覆盖所有搜索字段。 或者 每个索引都有一个

哪种做法更好?

非常感谢任何帮助 谢谢

自然

【问题讨论】:

  • 发布查询,或至少发布表架构

标签: sql-server stored-procedures indexing


【解决方案1】:

我怀疑答案取决于最常指定“最多”5 个参数的方式。如果它们通常以特定的增加特异性的顺序指定(例如,客户端 ID 的记录,或客户端 ID + 帐户 ID,或客户端 ID + 帐户 ID + 月份等),那么如果您按该顺序构建覆盖查询,则大多数

如果,OTOH,指定了哪些特定的参数,哪些不是相对随机的,并且您有其他进程想要在其中一些列上建立索引,那么您也可以分别为每列建立索引。

当然,在理想情况下,您应该有一个性能测试平台来凭经验找出正确的决定。但是很少有项目是在理想世界中构建的。即便如此,即使您的 DEV 装备看起来不像生产环境,您也无法通过一点测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-16
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    相关资源
    最近更新 更多