我已經爲選擇查詢創建了一個存儲過程,並且它工作正常。 但是我需要一些更有效的方法來創建我的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