|
Posted by scott.swank on 11/03/08 11:43
Hello all. I'm running SQL Server 2000 and I'm trying to get a very
few, recent rows of data from a table based on an indexed datetime
column. Here's my predicate:
where order_date > dateadd(hour, -1, getdate())
i.e. everything more recent than one hour ago. This corresponds to the
3 or 4 rows in which I'm interested. I have order_date indexed and I
have current statistics. When I check the explain plan for this query
I see expected rows returned: 114,000. When I go on to join to several
other tables I end up with unnecessary hash joins -- due to the
inaccurate cardinality estimates on this table.
However, if I use the following predicate (which corresponds to data
within the last 3 days):
where order_date > '2006-03-24'
then I see an estimated rows returned: 6 -- which is pretty accurate.
>From there the rest of the query's explain plan falls together nicely.
So my question is: how do I get the optimizer to realize that one hour
ago is pretty recent?
Many thanks,
Scott
Navigation:
[Reply to this message]
|