Microsoft KB Archive/248604

= FIX: SELECT with Subquery Containing BETWEEN Clause is Slow When Starting Range is the Minimum Value =

Article ID: 248604

Article Last Modified on 3/14/2006

-

APPLIES TO


 * Microsoft SQL Server 7.0 Standard Edition

-



This article was previously published under Q248604



BUG #: 55938 (SQLBUG_70)



SYMPTOMS
The following query gives varying performance depending on the value you use for col6 in the BETWEEN clause: SELECT T1.col1 ,T1.col2 ,T1.col3 FROM Table1 AS T1 WHERE EXISTS (SELECT * FROM TABLE1 AS T2 WHERE T1.col1 = T2.col1 and T1.col4 = T2.col4 AND (T2.col5 = 801101 OR T2.col5=801102 OR T2.col5=801105 OR T2.col5=803198 ) AND T2.col6 BETWEEN 1 and 10 ) A value lower than the one used in the BETWEEN clause must exist in the table. In the preceding example, col6 in TABLE1 must have a value lower than 1 or it will degrade performance.



WORKAROUND
Insert a dummy row in the table with a value for col6 that is lower than the one used in the BETWEEN clause.



STATUS
Microsoft has confirmed this to be a problem in SQL Server 7.0. This problem has been corrected in U.S. Service Pack 2 for Microsoft SQL Server 7.0. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

254561 INF: How to Obtain Service Pack 2 for Microsoft SQL Server 7.0 and Microsoft Data Engine (MSDE) 1.0

For more information, contact your primary support provider.

Additional query words: BETWEEN performance

Keywords: kbbug kbfix KB248604

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.