It's weird, but the literal (untyped) version is faster than the version with the paramenters. Occurs with SQL 2005 SP1 64bit
how come
--FAST!!!! See execution plan
SELECT count(*)
FROM
dbo.NewsComponent ttNC
WHERE
ttNC.DateImported BETWEEN '2007-04-02T00:00:00' AND '2007-04-03T23:59:59' )
--(ttNC.DateImported > '2007-01-01T00:00:00' )
--SLOW!!!! See execution plan
DECLARE @dateBegin DATETIME; SET @dateBegin = '2007-01-01T00:00:00'
DECLARE @dateEnd DATETIME; SET @dateEnd = '2007-04-03T23:59:59'
SELECT count(*) FROM dbo.NewsComponent ttNC WHERE
(ttNC.DateImported BETWEEN @dateBegin AND @dateEnd )
--(ttNC.DateImported > @dateBegin )