我的查询的表现

时间:2012-06-27 06:41:44

标签: sql-server

我对sql server的行为感到有点困惑。

我有一个很大的存储过程,执行很多步骤。如果我这样开始:

Exec [MyStoredProcedure] @MyBoolean=0

直接在管理工作室中调用存储过程的内容需要更长的时间。 我在stackoverflow上看到了它可能来自参数的答案所以我添加了:

declare @IMyBoolean bit

select @IMyBoolean=@MyBoolean;

之后用@IMyBoolean做所有事情,但结果并不是决定性的,它有点好但不是那么多:

  

sp:4分钟

     

sp with parameter interface:3分钟

     

直接sql 2分钟

有没有人对此行为有任何解释?

这是xmlplan

1 个答案:

答案 0 :(得分:0)

对于计划中显示的每个查询批次,您的索引缺失,影响超过90%。

按照查询优化器的建议创建这些索引(右键单击索引详细信息 - 绿色文本 - 并选择缺失索引详细信息)。

然后回发新结果。应该快得多,因为大多数表扫描都会变成索引搜索。

如果需要,下一步是微调这些索引以涵盖更多查询。