FIX: Non-Optimal Performance for Views Defined with a Subquery

ID: Q175097


The information in this article applies to:

BUG #: 16803 (6.5)

SYMPTOMS

If you run a query on a view defined with a subquery in its select list, you may experience impaired performance. However, a direct query for the equivalent select with no view (with or without a predicate against the view) yields much faster performance.


WORKAROUND

To resolve this problem, obtain and install the latest Service Pack for SQL Server 6.5. For more information, see the STATUS section of this article.

NOTE: To use the fix in the latest Service Pack, you must re-create the view with trace flag 349 enabled. For additional information, see the MORE INFORMATION section of this article.

To work around this problem and improve performance, do either of the following:

NOTE: Views created under versions of SQL Server earlier than 6.5 Service Pack 1 with a subquery in the select list will continue to work, even under SQL Server 6.5 Service Pack 1 and later, provided that they are not re-created under these later versions of SQL Server.



STATUS

Microsoft has confirmed this to be a problem in SQL Server version 6.5 Service Packs 1, 2, and 3. This problem was corrected in the latest Microsoft SQL Server 6.5 U.S. Service Pack. For information on obtaining the service pack, query on the following word in the Microsoft Knowledge Base (without the spaces):

S E R V P A C K


MORE INFORMATION

To use the fix for this bug, you must enable trace flag 349 (which was newly added). To ensure that the proper queries take advantage of this fix, you may consider starting the server with the trace flag enabled, so that all connections have the trace flag enabled. The SQL Server Setup program (in Server Options) provides a means to add startup parameters. Add the parameter -T349 to the list. You can enable the trace flag for a specific connection by executing DBCC TRACEON(349). Doing this is required to re-create the views(s) in question to invoke the new behavior.

Additional query words: sp sp1 sp2 sp3


Keywords          : kbusage SSrvTran_SQL kbbug6.50.sp1 kbbug6.50.sp2 kbbug6.50.sp3 kbfix6.50.sp4 
Version           : 6.5 SP1 SP2 SP3
Platform          : winnt 
Issue type        : kbbug 

Last Reviewed: April 17, 1999