我已经为选择查询创建了一个存储过程,并且它工作正常。 但是我需要一些更有效的方法来创建我的SP查询。 你有什么建议。使我的存储过程更高效
Create Procedure usp_SelectUserProfile
@UserId int
As
Begin
Select <column name> from DB where UserId = @UserId
End
日Thnx
我已经为选择查询创建了一个存储过程,并且它工作正常。 但是我需要一些更有效的方法来创建我的SP查询。 你有什么建议。使我的存储过程更高效
Create Procedure usp_SelectUserProfile
@UserId int
As
Begin
Select <column name> from DB where UserId = @UserId
End
日Thnx
我可以想像这里的唯一的事情就是:
Create Procedure usp_SelectUserProfile
@UserId int
As
Begin
SET NOCOUNT ON;
Select <column name> from DB where UserId = @UserId
End
禁止受影响的行量发送给客户端,与许多电话小程序可以为您节省高达17的通话时间%
先生,如果我问,请问? (SET NOCOUNT ON;)基本上做什么? – 2012-01-04 11:31:23
抑制向客户端发送受影响的行数量,对于有很多调用的小程序,它可以为您节省多达17%的通话时间 – 2012-01-04 11:33:02
17%具有奇怪的特定性 - 我有兴趣阅读您对此的任何参考 – Blorgbeard 2012-01-04 11:36:43
可以使用SET NOCOUNT ON
Create Procedure usp_SelectUserProfile
@UserId int
As
Begin
SET NOCOUNT ON
Select <column name> from DB where UserId = @UserId
End
(UserID) INCLUDE (<column name>)
Select <column name> from dbo.MyTable where UserId = @UserId
所有的对象引用。也可以在存储过程中使用它。没有这一点,你会阻止计划再利用UserId
和@UserId
是相同的,以避免数据类型的优先级和隐式转换
你真的有速度问题吗?你可以做很多事情来改善这个查询。如果UserId是PK,那么它应该是一个简单的索引查找。 – Blorgbeard 2012-01-04 11:34:40