My Blog List

hotinit.com. Powered by Blogger.

Search This Blog

Use the sp_executesql stored procedure instead of the EXECUTE statement.

Thursday, 19 May 2011


·         Use the sp_executesql stored procedure instead of the EXECUTE statement.
The sp_executesql stored procedure supports parameters. So, using the sp_executesql stored procedure instead of the EXECUTE statement improve the re-usability of your code. The execution plan of a dynamic statement can be reused only if each and every character, including case, space, comments and parameter, is same for two statements. For example, if we execute the below batch:

DECLARE @Query VARCHAR(100)
DECLARE @Age INT
SET @Age 25
SET @Query 'SELECT * FROM dbo.tblPerson WHERE Age = ' +CONVERT(VARCHAR(3),@Age)
EXEC (@Query)

If we again execute the above batch using different @Age value, then the execution plan for SELECT statement created for @Age =25 would not be reused. However, if we write the above batch as given below,

DECLARE @Query NVARCHAR(100)
SET @Query N'SELECT * FROM dbo.tblPerson WHERE Age = @Age'
EXECUTE sp_executesql @QueryN'@Age int'@Age 25

the compiled plan of this SELECT statement will be reused for different value of @Age parameter. The reuse of the existing complied plan will result in improved performance.

No comments:

Post a Comment

 

Blogger news

Blogroll

Most Reading

8.6/10