使我的存储过程更有效

San*_*ahu 1 sql-server-2008

我已经为Select Query创建了一个存储过程,它工作正常.但我需要一些更有效的方法来制作我的SP查询.你有什么建议吗?

Create Procedure usp_SelectUserProfile
    @UserId int
As
Begin
     Select <column name> from DB where UserId = @UserId
End
Run Code Online (Sandbox Code Playgroud)

日Thnx

Ole*_*Dok 5

我唯一能想到的是:

Create Procedure usp_SelectUserProfile
    @UserId int
As
Begin
     SET NOCOUNT ON;
     Select <column name> from DB where UserId = @UserId
End
Run Code Online (Sandbox Code Playgroud)

禁止向客户端发送受影响的行数,在有多个呼叫的小程序上可以节省高达17%的通话时间

  • @Blorgbeard - 实际上 - 发现了!引用:最佳实践对于每个返回的记录集,SQL Server默认情况下还会发送一条消息,指出受影响或返回的行数.这不仅令人讨厌,而且我在非正式测试中发现,根据查询的复杂性,它可以使查询速度降低多达17%.因此,养成使用以下代码开始每个存储过程的习惯:CREATE PROC MyProc AS SET NOCOUNT ON; 引文结束(Paul Nielsen,Mike White,Uttam Parui - Microsoft Sql Server Bible,p.622 ISBN 978-0-470-25704-3 (2认同)