BUG: Optimizer Chooses Table Scan Instead of Index Seek (252733)



The information in this article applies to:

  • Microsoft SQL Server 7.0
  • Microsoft SQL Server 2000 (all editions)

This article was previously published under Q252733
BUG #: 57350 (SQLBUG_70)

SYMPTOMS

Under certain conditions a query may issue a table scan instead of using a useful covering nonclustered index.

CAUSE

The optimizer is using the density information from the distribution page statistics to estimate the number of qualifying rows. In WHERE clauses with two or more constant values, the value of the constants can be estimated as too costly for using the index because the average density is worse than the density for these special constant values. This is the reason why the optimizer is not using the index.

WORKAROUND

To work around this problem, try either of the following:
  • Use an index hint.

    -or-
  • Change the nonclustered index to a clustered index.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

Modification Type:MajorLast Reviewed:10/17/2003
Keywords:kbBug kbpending KB252733