SQLUSA.com
SQL SERVER 2008 GRAND SLAM
FREE TRIAL  CLICK HERE TO ORDER  SEARCH
SQL JOBS SQL Server Training Scripts JOB BANK
  SQL Server 2008 Training Scripts  
  SQL Server 2005 Training Scripts  
News SQL Server Articles SQL Format

How to measure cursor performance?

Execute the following Microsoft SQL Server Transact-SQL (T-SQL) script in Management Studio (SSMS) Query Editor, SQLCMD or other client software to measure the performance of a cursor versus inline code:

use tempdb
go
-- drop table dbo.SalesOrderDetail
select * into dbo.SalesOrderDetail
from AdventureWorks.Sales.Salesorderdetail
go
select top 10 * from dbo.SalesOrderDetail
go
-- Inline update
dbcc dropcleanbuffers
select top 500 SalesOrderID into #SalesOrder from dbo.SalesOrderDetail
update dbo.SalesOrderDetail set ModifiedDate=getdate()
where SalesOrderID in (select * from #SalesOrder)
go
-- < 1 sec

-- Cursor update
dbcc dropcleanbuffers

declare curSales CURSOR FOR select top 500 SalesOrderID from dbo.SalesOrderDetail
open curSales
declare @id int
fetch next from curSales into @id
while @@fetch_status = 0
begin
update dbo.SalesOrderDetail set modifieddate=getdate() where SalesOrderID=@ID
fetch next from curSales into @id
end
go

-- 32 seconds

 

Order SQL 2008 GRAND SLAM Today!
SQLUSA.com Home Page
SQL Server Training at www.sqlusa.com.
SQL Server 2008 Video Training at www.sqlusa.com.
SQL Server 2005 Training Videos at www.sqlusa.com.
Microsoft SQL Server 2000 Training Videos at www.sqlusa.com.

FREE SQL & Business Intelligence / OLAP Short Videos on YOUTUBE.com

Microsoft Community Contributor 2011
Invest in Your SUCCESS!

Search SQLUSA FREE SQL Server Articles & FREE T-SQL Scripts


Copyright 2005-2011, SMI Corp. All Rights Reserved.

SQL Server 2012 is a program product of Microsoft Corporation.
SQL Server 2008 is a program product of Microsoft Corporation.
SQL Server 2005 is a program product of Microsoft Corporation.
SQL Server 2000 is a program product of Microsoft Corporation.