Wednesday, June 30, 2010

Check your query performance.

Set NoCount On


Declare @cpu_ int

Declare @lreads_ int

Declare @eMsec_ int





Select @cpu_ = cpu_time

, @lreads_ = logical_reads

, @eMsec_ = total_elapsed_time

From sys.dm_exec_requests

Where session_id = @@spid



--======

-- Your Test Code Goes Here

--======

Select cpu_time-@cpu_ as CpuMs

, logical_reads- @lreads_ as LogRds

, total_elapsed_time - @eMsec_ as Elapsed

From sys.dm_exec_requests

Where session_id = @@spid

Tuesday, June 29, 2010

Query to Fill Table with Dates

Here is a simple query to insert dates from 2000-07-03 00:00:00.000 to 2020-06-27 00:00:00.000

with DateCTE as (


SELECT dateadd( dd,-3650 + RW ,DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)) As N

FROM (

SELECT TOP 7300

row_number() OVER (ORDER BY sc1.id) AS RW

FROM Master.dbo.SysColumns sc1

CROSS JOIN Master.dbo.SysColumns sc2

) X

)

--the SQL2008 DATE datatype, instead of datetime

SELECT convert(DATETIME,DateCTE.N)

from DateCTE