Ms SQL 2K SP4 is avaialable!
Ms SQL 2K SP4 is avaialable!
http://www.microsoft.com/downloads/details.aspx?FamilyId=8E2DFC8D-C20E-4446-99A9-B7F0213F8BC5&displaylang=zh-cn
http://download.microsoft.com/download/9/b/f/9bff6646-2cdb-4069-ada0-548be9cb9338/ReadmeSql2k32sp4.htm#_additional_information_about_sp4
不知效果如何?!是否明显?:
5.1.17 优化具有大的 IN 列表或许多 OR 子句的查询
在 SP4 中引入
SP4 包含对 SQL Server 优化器行为的更改,此更改影响包含具有大的 IN 列表或许多 OR 子句的谓词的查询。更具体的讲,此更改(在 SQL Server 2000 热修复程序 789 中引入)影响包含以下内容的查询(或可以使用包含以下内容的对应表达式重写的查询):
- IN 列表中包含 10,000 个以上的元素
- 两个 IN 列表,每个列表都包含 100 个以上的元素
- OR 子句中包含 10,000 个以上的分离项
- OR 子句和 IN 列表组合,使对应的表达式包含 10,000 个以上的分离项
由于该更改,在编译这些类型的语句时 SQL Server 将使用更少的内存,因此避免了内存不足错误。在极少数情况下,如果运行此类查询的系统具有大量内存但并行程度很低,优化器可能会选择性能较差的查询计划。为了覆盖优化器行为的更改,此 Service Pack 中提供了跟踪标志 9060。默认情况下,禁用跟踪标志 9060。如果启用该跟踪标志,热修复程序 789 之前的 SP3 行为将启用。如果启用该跟踪标志时遇到错误 701(系统内存不足),应考虑使用 IN 列表中的值的临时表或表变量重写查询。对于数字范围,应使用 BETWEEN 子句或者大于 (>) 或小于 (<) 运算符。有关使用跟踪标志的信息,请参见 SQL Server 联机丛书中的“跟踪标志”。