FIX: Query Slow w/ ORDER BY DESC on Table w/ Composite Index

Last reviewed: June 27, 1997
Article ID: Q167779
The information in this article applies to:
  • Microsoft SQL Server, version 6.5
BUG #: 16669 (6.5)

SYMPTOMS

An ORDER BY DESC query against a table that has a non-clustered composite index may take significantly longer to run than the equivalent ASC query. This difference is especially noticed in cases in which a WHERE clause contains an equivalency test of an indexed column (including the most significant) and a constant value.

WORKAROUND

To work around this problem, select the result set (ASC) into a temporary table, then run the ORDER BY DESC query only on the results of a select from the temporary table.

Another option, for certain numeric columns, is to multiply the key by -1 and then run the ORDER BY ASC query.

STATUS

Microsoft has confirmed this to be a problem in Microsoft SQL Server version 6.5. This problem has been corrected in U.S. Service Pack 3 for Microsoft SQL Server version 6.5. For more information, contact your primary support provider.


Additional query words: descending
Keywords : kbbug6.50 kbprg kbusage SSrvGen SSrvProg
Version : 6.5
Platform : WINDOWS
Issue type : kbbug
Resolution Type : kbfix


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: June 27, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.