繁体   English   中英

如何在SQL Server中执行存储过程时降低执行时间

[英]How to decerase execution time while executing stored procedure in sql server

我有一个这样的存储过程:

alter procedure [dbo].[fetch]
@locid integer 

as 
begin
SET NOCOUNT on
  select * from transaction_tbl where locid=@locid
end

在执行此操作时,我得到大约1500条记录..这大约需要35秒,这次有什么方法可以减少

这个评论太长了。 显然,加快查询速度的方法是在transaction_tbl(loc_id)上添加索引。 我想建议这样一个简单的存储过程应真正实现为内联表值函数:

create function udf_fetch (@LocId)
    @LocId int
)
returns table
return(select *
       from transaction_tbl 
       where LocId = @Locid;
      );

然后可以将其称为:

select *
from dbo.udf_fetch(@LocId)

因此,您可以将结果与from子句中的其他表结合使用。

这里可能没有一个答案可以解决,但通常是在这种情况下,您需要向表中添加索引。

确保在locid字段上有一个索引。

CREATE UNIQUE NONCLUSTERED INDEX (indexname)
ON transaction_tbl (locid)

http://msdn.microsoft.com/en-us/library/ms188783.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM