DBCC TRACEON - 跟踪标志 (Transact-SQL)
适用于: SQL Server Azure SQL 托管实例
跟踪标志用于设置特定服务器特征或更改特定行为。 例如,跟踪标志 3226 是一种常用的启动跟踪标志,可取消显示错误日志中的成功备份消息。 跟踪标志通常用于诊断性能问题或调试存储过程或复杂计算机系统,但也可能建议Microsoft 支持部门解决对特定工作负荷产生负面影响的行为。
当按照指示使用时,所有记录的跟踪标志和 Microsoft 支持部门推荐的跟踪标志在生产环境中都完全受支持。 此列表中的跟踪标志可以对其特定用法有其他注意事项,因此建议仔细查看此处和/或由支持工程师提供的所有建议。 此外,与 SQL Server 中的任何配置更改一样,最好在部署标志之前在非生产环境中全面测试该标志。
注意
Microsoft Entra ID 以前称为 Azure Active Directory (Azure AD)。
注解
在 SQL Server 中,跟踪标志可以使用三个范围:查询、会话和全局。 查询跟踪标志在特定查询的上下文中处于活动状态。 会话跟踪标志对某个连接有效,且只对该连接可见。 全局跟踪标志在服务器级别上进行设置,对服务器上的每一个连接都可见。 某些标志只能作为全局标志启用,而某些标志在全局或会话作用域都可以启用。
下列规则适用:
全局跟踪标志必须全局启用。 否则,跟踪标志无效。 建议在启动时使用
-T
Windows 上的命令行选项或使用 Linux 上的 mssql-conf 启用全局跟踪标志。 这样可确保跟踪标志在服务器重新启动后保持活动状态。 若要让跟踪标志生效,请重启 SQL Server。如果跟踪标志有全局、会话或查询作用域,则可以用合适的作用域来启用它。 在会话级别启用的跟踪标志永远不会影响另一个会话,并且当打开会话的 SPID 退出登录时,该跟踪标志将失效。
使用以下方法之一可将跟踪标志设置为开或关:
使用
DBCC TRACEON
和DBCC TRACEOFF
命令。例如,若要全局启用 2528 跟踪标志,请将 DBCC TRACEON 与
-1
参数结合使用:DBCC TRACEON (2528, -1)
。 重启服务器时,使用DBCC TRACEON
启用全局跟踪标志的方法将失效。 若要关闭全局跟踪标志,请将 DBCC TRACEOFF 与-1
参数结合使用。使用
-T
启动选项可以指定跟踪标志在启动期间设置为开。-T
启动选项可全局启用跟踪标志。 无法使用启动选项启用会话级别的跟踪标志。 这样可确保跟踪标志在服务器重新启动后保持活动状态。 有关启动选项的详细信息,请参阅数据库引擎服务启动选项。在查询级别,通过使用 QUERYTRACEON 查询提示。 QUERYTRACEON 选项只能用于本文稍后提供的表中所述的查询优化器跟踪标志。
使用 DBCC TRACESTATUS
命令确定哪些跟踪标志当前是活动的。
示例
以下示例使用 DBCC TRACEON
针对服务器级别的所有会话将跟踪标志 3205 设置为开。
DBCC TRACEON (3205, -1);
对于特定查询,可以启用由跟踪标志 4199 和 4137 控制的所有影响计划的修补程序。
SELECT x
FROM correlated
WHERE f1 = 0
AND f2 = 1
OPTION (QUERYTRACEON 4199, QUERYTRACEON 4137);
跟踪标志
下表列出了 SQL Server 中可用的跟踪标志,并进行了说明。
Azure SQL 托管实例支持以下全局跟踪标志:460、2301、2389、2390、2453、2467、7471、8207、9389、10316 和 11024。 SQL 托管实例尚不支持会话跟踪标志。
特定的 SQL Server 版本中引入了一些跟踪标志。 有关适用版本的详细信息,请参阅与特定跟踪标志关联的 Microsoft 支持文章。
SQL Server 的未来版本中可能不支持跟踪标志行为。
可以通过使用 #tfNNNN 格式添加到 URL 末尾的书签直接在表中引用跟踪标志。 例如,若要直接跳到表中的跟踪标志 1118,则使用 dbcc-traceon-trace-flags-transact-sql#tf1118
。
跟踪标志 | 说明 |
---|---|
101 | 增加合并复制代理日志记录的详细程度。 重要提示:在从命令提示符下执行 replmerg.exe 时,只能使用 -T 选项为复制合并代理启用跟踪标志 101。警告:跟踪标志 101 不应在生产环境中持续启用,而应只限于用于时间限制的故障排除。 有关详细信息,请参阅已存档版本的 KB2892633。 范围:仅限复制合并代理。 |
102 | 增加合并复制代理日志记录的详细程度,并将其定向到 <Distribution server>..msmerge_history 表。 重要提示:在从命令提示符下执行 replmerg.exe 时,只能使用 -T 选项为复制合并代理启用跟踪标志 102。警告:跟踪标志 102 不应在生产环境中持续启用,而应只限于用于时间限制的故障排除。 有关详细信息,请参阅已存档版本的 KB2892633。 范围:仅限复制合并代理。 |
139 | 当在兼容性级别较低的数据库上,针对特定数据类型分析兼容性级别 130 中引入的改进型精度和转换逻辑时,在 DBCC CHECKDB、DBCC CHECKTABLE 和 DBCC CHECKCONSTRAINTS 等 DBCC 检查命令的作用域中强制执行正确的转换语义。 有关详细信息,请参阅 SQL Server 和Azure SQL 数据库改进,以处理某些数据类型和不常见操作。 适用于:SQL Server 2016 (13.x) RTM CU 3、SQL Server 2016 (13.x) Service Pack 1 及更高版本。 警告:跟踪标志 139 不应在生产环境中持续启用,应仅用于执行 SQL Server 中所述的数据库验证检查,并Azure SQL 数据库改进处理某些数据类型和不常见操作。 应在完成验证检查后立即禁用它。 范围:仅全局。 |
174 | 在 64 位系统上将 SQL Server 数据库引擎计划缓存桶计数从 40,009 增加到 160,001。 有关详细信息,请参阅 KB3026083。 注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 范围:仅全局。 |
176 | 在为包含已计算分区依据列的表联机重新生成分区时解决错误。 有关详细信息,请参阅 KB3213683 和 KB4541096。 范围:全局或会话。 |
205 | 当由于自动更新统计信息而重新编译依赖于统计信息的存储过程时,向错误日志提交报告。 有关详细信息,请参阅已存档版本的 KB195565。 注意:此跟踪标志需要启用跟踪标志 3605。 范围:仅全局。 |
260 | 打印有关扩展存储过程动态链接库 (DLL) 的版本控制信息。 有关详细信息 GetXpVersion() ,请参阅 创建扩展存储过程。范围:全局或会话。 |
272 | 在服务器意外重新启动或故障转移到辅助服务器的情况下,禁用标识预分配以避免标识列的值出现差异。 标识缓存用于提高具有标识列的表的 INSERT 性能。 注意:从 SQL Server 2017(14.x)开始,若要在数据库级别完成此操作,请参阅 ALTER DATABASE SCOPED CONFIGURATION 中的IDENTITY_CACHE选项。 范围:仅全局。 |
460 | 将数据截断消息 ID 8152 替换为消息 ID 2628。 有关详细信息,请参阅 KB4468101。 从 SQL Server 2019(15.x)开始,若要在数据库级别完成此操作,请参阅 ALTER DATABASE SCOPED CONFIGURATION 中的VERBOSE_TRUNCATION_WARNINGS选项。 适用于:SQL Server 2016 (13.x) Service Pack 2 CU 6、SQL Server 2017 (14.x) CU 12 及更高版本。 注意: 从数据库兼容性级别 150 开始,消息 ID 2628 为默认设置,此跟踪标志无效。 对于数据库兼容性级别 140 或更低级别,消息 ID 2628 仍然是要求启用跟踪标志 460 的“选择加入”错误消息,并且此数据库范围的配置无效。 范围:全局或会话。 |
610 | 控制对索引表进行的以最低限度记录的插入。 从 SQL Server 2016 (13.x) 开始,不需要此跟踪标志,因为对索引表默认启用了最小日志记录。 在 SQL Server 2016 (13.x) 中,当大容量加载操作导致分配一个新页面时,如果符合最低限度记录的其他所有先决条件,则会以最低限度记录按顺序填充该新页面的所有行。 为了维护索引顺序而插入到现有页面中的行(不分配新页面)仍以完整方式记录,这与在加载过程中由于页面拆分而移动的行一样。 为索引(默认情况下为 ON)启用ALLOW_PAGE_LOCKS也很重要,因为最小日志记录操作在分配期间获取页锁,因此只会记录页或盘区分配。 有关详细信息,请参阅数据加载性能指南。 范围:全局或会话。 |
634 | 禁用背景列存储压缩任务。 SQL Server 定期运行元组发动机后台任务,对含有未压缩数据的列存储索引行组进行压缩,每次压缩一个这种行组。 列存储压缩可提高查询性能,但也会占用系统资源。 通过用跟踪标志 634 禁用后台压缩任务,然后随时显式调用 ALTER INDEX...REORGANIZE 或 ALTER INDEX...REBUILD,可以手动控制列存储压缩计时。 范围:仅全局。 |
652 | 禁用页面预提取扫描。 如果启用跟踪标志 652,则在扫描操作使用这些数据库页之前,SQL Server 不会再将数据库页引入缓冲池中。 其结果是,受益于页预提取功能的查询会表现出较低的性能。 范围:全局或会话。 |
661 | 禁用虚影记录删除进程。 跟踪标志 661 会禁用虚影记录删除进程。 虚影记录是删除操作的结果。 删除记录时,已删除的记录将保留为虚影记录。 稍后,虚影记录删除进程将清除已删除的记录。 如果禁用此进程,则不会清除已删除的记录。 因此,已删除的记录所使用的空间不会被释放。 此行为会影响扫描操作的空间消耗量和性能。 有关详细信息,请查看虚影清除进程指南。 范围:仅全局。 |
692 | 将数据大容量加载到堆或聚集索引时禁用快速插入。 从 SQL Server 2016(13.x 开始),默认情况下会启用快速插入,在数据库处于简单或大容量记录恢复模式时使用最小日志记录,以优化插入到新页面中的记录的插入性能。 启用快速插入后,每个大容量加载批次都会绕过现有盘区的分配查找获得新盘区,从而提供可用空间来优化插入性能。 使用快速插入时,批量加载和小批大小可能会导致对象占用的未使用空间增加,因此建议对每个批使用大型批处理以完全填充盘区。 如果增加批次大小不可行,此跟踪标志可以帮助减少以性能为代价保留的未用空间。 适用于:SQL Server 2016 (13.x) 及更高版本。 范围:全局或会话。 |
715 | 为没有非聚集索引的堆中的大容量加载操作启用表锁。 启用此跟踪标志时,大容量加载操作会在将数据大容量复制到表中时获取大容量更新锁(BU 锁)。 大容量更新 (BU) 锁允许多个线程将数据并发地大容量加载到同一表中,同时防止其他不进行大容量加载数据的进程访问该表。 该行为与以下行为类似:用户在执行大容量加载时显式指定 TABLOCK 提示,或为给定表启用大容量加载的 sp_tableoption 表锁。 但是,启用此跟踪标志后,该行为将变成默认行为,无需进行任何查询或数据库更改。范围:全局或会话。 |
809 | 为混合缓冲池启用名为“直接写入”的行为。 此模式要求在与混合缓冲池相同的数据库中启用持久化日志缓冲区。 “直接写入”允许混合缓冲池充当脏页和干净页面的缓存,从而减少适用于 OLAP 和 OLTP 样式工作负载的 DRAM 缓冲池的工作负载需求。 此跟踪标志是在 SQL Server 2022 (16.x) 中引入的,SQL Server 2022 (16.x) CU 1 中默认启用该行为。 如果使用 SQL Server 2022 (16.x) CU 1 及更高版本,则会忽略此跟踪标志。 |
818 | 允许其他的 I/O 诊断在文件 I/O 操作过程中检查“写入丢失”或“读取过时”条件。 跟踪标志 818 启用了内存中环形缓冲区,该缓冲区用于跟踪 SQL Server 执行的最后 2,048 个成功的写入操作,不包括排序和工作文件 I/O。 如果发生错误(如错误 605、823 或 3448),则会将传入缓冲区的日志序列号 (LSN) 值与最近的写入列表进行比较。 如果检索的 LSN 早于在写入操作期间指定的 LSN,则会在 SQL Server 错误日志中记录一条新的错误消息。 有关详细信息,请参阅 SQL Server 诊断检测到由于读取过时或写入丢失而未报告的 I/O 问题。 注意:从 SQL Server 2017 (14.x) 开始,此跟踪标志不再有效。 范围:仅全局。 |
830 | 对需要很长时间才能完成的 I/O 请求禁用检测和报告。 默认情况下,SQL Server 使用某种机制来检测需要很长时间才能完成(通常超过 15 秒)的读取和写入 I/O 请求。 此跟踪标志会禁用此检测。 有关详细信息,请参阅 MSSQLSERVER_833。 注意: 不建议启用此跟踪标志,因为可以减少检测系统上的 I/O 问题的能力。 范围:仅全局。 |
834 | 对缓冲池、列存储和内存中表使用大型页分配。 大型页面大小因硬件平台而异,但页面大小可以是 2 MB 到 16 MB。 大型页在启动时分配,并会在进程的整个生存期内保留。 跟踪标志 834 通过提高 CPU 中转换旁视缓冲区 (TLB) 的效率,提高了性能。 换句话说,跟踪标志 834 提高了由内存管理硬件执行的“物理到虚拟内存地址转换”管理的效率。 有关 SQL Server 和大型页的信息,请查看以下博客。 注意:跟踪标志 834 仅适用于 64 位版本的 SQL Server。 必须具有“锁定内存页”用户权限才能启用跟踪标志 834。 只能在启动时启用跟踪标志 834。 跟踪标志 834 可以阻止服务器在内存碎片和无法分配大页的情况下启动。 因此,跟踪标志 834 最适合用于 SQL Server 专用服务器。 注意:启用时,大型页内存模型会在实例启动时预分配所有 SQLOS 内存,并且不会将该内存返回到 OS。 注意: 如果使用 SQL Server 2012(11.x)及更高版本的列存储索引功能,则不建议启用跟踪标志 834。 有关详细信息,请参阅 批处理模式处理与大型页面内存模型之间的互操作性问题。 如果使用 SQL Server 2019 (15.x) 和列存储,请改为查看跟踪标志 876。 范围:仅全局。 |
836 | 对缓冲池使用 max server memory 选项。 跟踪标志 836 会导致 SQL Server 在启动时基于“最大服务器内存”选项的值而不是基于“总物理内存”来调整缓冲池的大小。 可使用跟踪标志 836 来减少在启动时以 32 位“地址窗口化扩展插件”(AWE) 模式分配的缓冲区描述符的数量。 注意:跟踪标志 836 仅适用于已启用 AWE 分配功能的 32 位版本的 SQL Server。 只能在启动时启用跟踪标志 836。 范围:仅全局。 |
845 | 当 SQL Server 的服务帐户启用了“锁定内存页”特权时,启用 SQL Server 标准 SKU 上的锁定页。 有关详细信息,请参阅 KB970070 和服务器内存服务器配置选项。 注意:从 SQL Server 2012 (11.x) 开始,将为标准 SKU 默认启用此行为,并且不得使用跟踪标志 845。 范围:仅全局。 |
876 | 对列存储使用大型页分配。 注意:与跟踪标志 834 不同,使用跟踪标志 876 不会在实例启动时预分配 SQLOS 内存,可以释放未使用的内存。 适用于:SQL Server 2019 (15.x) 及更高版本。 注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 范围:仅全局。 |
888 | 解决了当 PMEM 设备内存不足时,在 SQL Server 中启用混合缓冲池的 PMEM 设备的性能下降问题。 有关详细信息,请参阅 KB4548103。 适用于:SQL Server 2019 (15.x) CU 4 及更高版本。 范围:仅全局。 |
890 | 禁止在错误日志中显示缓冲池慢扫描完成消息(错误 898)。 有关缓冲池扫描的详细信息以及错误日志中记录的消息,请参阅触发缓冲池扫描的操作可能在大内存计算机上运行缓慢。 适用于:SQL Server 2017 (14.x) 及更高版本。 范围:仅全局。 |
898 | 禁用混合缓冲池的“直接写入”行为以进行故障排除或调试。 有关详细信息,请参阅 KB5022375。 适用于:SQL Server 2022 (16.x) CU 1 及更高版本。 范围:仅全局。 |
902 | 安装累积更新或 Service Pack 时不执行数据库升级脚本。 如果在脚本升级模式下遇到错误,建议联系 Microsoft SQL 客户服务和支持部门(CSS),以获取进一步的指导。 有关详细信息,请参阅 KB2163980。 警告:此跟踪标志用于在脚本升级模式下对失败更新进行故障排除,不支持在生产环境中连续运行该标志。 需要成功执行数据库升级脚本才能完整安装累积更新和 Service Pack。 不这样做可能会导致 SQL Server 实例出现意外问题。 范围:仅全局。 |
1117 | 当文件组中的某个文件达到自动增长阈值时,文件组中的所有文件都会增长。 此跟踪标志将影响所有数据库。 仅当在每个数据库中,建议安全地将文件组中的所有文件增长相同的数量。 注意:从 SQL Server 2016 (13.x) 开始,此行为由 ALTER DATABASE 的 AUTOGROW_SINGLE_FILE 和 AUTOGROW_ALL_FILES 选项控制,跟踪标志 1117 不再有效。 有关详细信息,请参阅 ALTER DATABASE (Transact-SQL) 文件和文件组选项。 范围:仅全局。 |
1118 | 强制在统一区而不是混合区分配页,以减少 SGAM 页的争用。 创建新对象后,默认情况下,将从不同的盘区(混合区)分配前 8 页。 此后,如果需要更多的页,将从相同的片区(统一区)分配进行分配。 SGAM 页用于跟踪这些混合区,因此发生大量混合页分配时,可能会很快成为瓶颈。 创建新对象时,此跟踪标志从相同的片区分配所有 8 页,以最大限度降低扫描 SGAM 页的需求。 有关详细信息,请参阅 KB328551。 注意:从 SQL Server 2016 (13.x) 开始,此行为由 ALTER DATABASE 的 SET MIXED_PAGE_ALLOCATION 选项控制,跟踪标志 1118 不再有效。 有关详细信息,请参阅 ALTER DATABASE SET 选项。 范围:仅全局。 |
1204 | 返回参与死锁的锁的资源和类型,以及受影响的当前命令。 有关死锁的详细信息,请参阅死锁指南。 注意:避免在导致死锁的工作负载密集型系统上使用跟踪标志 1204。 有关检测死锁的其他方法的详细信息,请参阅死锁指南。 范围:仅全局。 |
1211 | 基于内存不足或基于锁数禁用锁升级。 SQL Server 数据库引擎不会将行锁或页锁升级到表锁。 使用此跟踪标志可能会生成过多的锁数,如果锁内存增长足够大,则尝试为任何查询分配其他锁可能会失败。 这样会降低数据库引擎的性能,或因为内存不足而导致 1204 错误(无法分配锁资源)。 如果同时设置了跟踪标志 1211 和 1224,则 1211 优先于 1224。 但是,由于在所有情况下(甚至在内存紧张的情况下)跟踪标志 1211 都禁止升级,因此建议改用 1224。 这有助于在使用多个锁时避免“锁不足”错误。 有关如何解决 SQL Server 中锁升级导致的阻塞问题的详细信息,请参阅 解决 SQL Server 中锁升级导致的阻塞问题。 范围:全局或会话。 |
1222 | 以不符合任何 XSD 架构的 XML 格式,返回参与死锁的锁的资源和类型,以及受影响的当前命令。 有关死锁的详细信息,请参阅死锁指南。 注意:避免在导致死锁的工作负载密集型系统上使用跟踪标志 1222。 有关检测死锁的其他方法的详细信息,请参阅死锁指南。 范围:仅全局。 |
1224 | 基于锁数禁用锁升级。 但是,内存不足仍可激活锁升级。 如果锁对象使用的内存量超出下列条件之一,数据库引擎会将行锁或页锁升级为表(或分区)锁: - 数据库引擎占用的 40% 的内存。 只有在 sp_configure 的 locks 参数设置为 0 时,这才适用。- 使用 sp_configure 的 locks 参数配置的锁内存的 40%。 有关详细信息,请参阅服务器配置选项。如果同时设置了跟踪标志 1211 和 1224,则 1211 优先于 1224。 但是,由于在所有情况下(甚至在内存紧张的情况下)跟踪标志 1211 都禁止升级,因此建议使用 1224。 这有助于在使用多个锁时避免“锁不足”错误。 注意: 也可以使用 ALTER TABLE 语句的 LOCK_ESCALATION 选项控制到表级或 HoBT 级粒度的锁升级。 有关如何解决 SQL Server 中锁升级导致的阻塞问题的详细信息,请参阅 解决 SQL Server 中锁升级导致的阻塞问题。 范围:全局或会话。 |
1229 | 禁用所有锁定分区,而不管 CPU 数如何。 默认情况下,SQL Server 在服务器具有 16 个或更多 CPU 时启用锁定分区,以提高较大系统的可伸缩性特征。 有关锁定分区的详细信息,请参阅事务锁定和行版本控制指南。 警告:跟踪标志 1229 可能导致旋转锁争用和性能下降。 范围:仅全局。 |
1236 | 启用数据库锁分区。 有关详细信息,请参阅 KB2926217。 注意:从 SQL Server 2012 (11.x) Service Pack 3 和 SQL Server 2014 (12.x) Service Pack 1 开始,此行为由数据库引擎控制,跟踪标志 1236 不再有效。 范围:仅全局。 |
1237 | 允许 ALTER PARTITION FUNCTION 语句遵从用户定义的当前会话死锁优先级,而不是成为默认情况下可能的死锁牺牲品。 有关详细信息,请参阅 KB4025261。 注意:从 SQL Server 2017 (14.x) 和数据库兼容性级别 140 开始,该行为变成默认行为,跟踪标志 1237 不再有效。 范围:全局、会话或查询 (QUERYTRACEON)。 |
1260 | 禁用计划程序监视器转储。 范围:仅全局。 |
1448 | 甚至在异步辅助数据库不确认接受更改的情况下,也使复制日志读取器前移。 即使启用了此跟踪标志,日志读取器也始终会等待同步状态为“已同步”的同步辅助数据库。 日志读取器不会超过已同步辅助数据库的最小已确认日志序列号。 此跟踪标志应用于 SQL Server 的实例,而不仅是可用性组、可用性数据库或日志读取器实例。 应用会立即生效,无需重新启动。 此跟踪标志可提前激活或在异步次要副本失败时激活。 范围:仅全局。 |
1462 | 对异步可用性组禁用日志流压缩。 默认情况下,对异步可用性组启用此功能,以优化网络带宽。 有关详细信息,请参阅 Tune compression for availability group(调整可用性组的压缩)。 范围:仅全局。 |
1800 | 在 SQL Server Always On 和日志传送环境中,当主副本和次要副本日志文件使用扇区大小不同的磁盘时,启用 SQL Server 优化。 只需在符合以下条件的 SQL Server 实例上启用此跟踪标志:事务日志文件位于扇区大小为 512 字节的磁盘上。 无需在磁盘上启用 4 KB 扇区大小。 有关详细信息,请参阅 KB3009974。 适用于:SQL Server 2012 (11.x) Service Pack 1 CU 13、SQL Server 2012 (11.x) Service Pack 2 CU 3、SQL Server 2014 (12.x) RTM CU 5 及更高版本。 范围:仅全局。 |
1802 | 在数据库附加或拆离操作过程中,禁用 ACL 更改和模拟访问验证。 附加数据库并遇到访问权限错误(例如错误 5120)时,这非常有用。 范围:仅全局。 |
1819 | 允许备份到 URL,以便在访问 Azure 块 blob 时使用代理服务器。 除了此跟踪标志,还必须在服务器上设置 WinHTTP 代理配置,并在 Windows Vista、Windows Server 2008 及更高版本中使用 netsh.exe 实用工具。 范围:全局、会话或查询 (QUERYTRACEON)。 |
2301 | 启用特定于“决策支持查询”的高级决策支持优化功能。 此选项适用于大型数据集的决策支持处理。 范围:全局、会话或查询 (QUERYTRACEON)。 |
2312 | 将查询优化器基数估计模型设置为 SQL Server 2014 (12.x) 及更高版本,不考虑数据库兼容性级别。 注意:如果数据库兼容性级别低于 120,则启用跟踪标志 2312 将使用基数估计模型 SQL Server 2014 (12.x) (120)。 有关详细信息,请参阅 查询提示。 从 SQL Server 2016 (13.x) Service Pack 1 开始,若要在查询级别完成此操作,请添加 USE HINT 'FORCE_DEFAULT_CARDINALITY_ESTIMATION' 查询提示,而不是使用此跟踪标志。范围:全局、会话或查询 (QUERYTRACEON)。 |
2335 | 对于最大服务器内存服务器配置设置得太高的情况,使 SQL Server 假设在查询优化期间有固定内存量可用,并使 SQL Server 为特定查询生成低效计划。 它不限制 SQL Server 授予用来执行查询的内存。 为 SQL Server 配置的内存仍将由数据缓存、查询执行和其他使用者使用。 注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 范围:全局、会话或查询 (QUERYTRACEON)。 |
2338 | 使 SQL Server 在执行 UPDATE 语句以更新表中的索引时使用窄计划。 当针对聚集索引列执行 UPDATE 时,SQL Server 不仅会更新聚集索引本身,而且还会更新所有非聚集索引,因为非聚集索引包含群集键。 一种常见的更新方式是更新聚集索引,然后同时更新所有非聚集索引。 SQL Server 将更新一行,然后转到下一行,直到完成所有行的更新。 这称为窄计划更新,也称为按行更新。 在某些情况下,数据库引擎可以选择执行宽计划更新。 此跟踪标志强制执行窄计划更新。 范围:全局、会话或查询 (QUERYTRACEON)。 |
2340 | 导致 SQL Server 在生成计划时不对优化的嵌套循环联接使用排序操作(批排序)。 默认情况下,在查询优化器断定很有可能不需要排序,但在基数或成本估算不正确的情况下仍有可能时,SQL Server 可使用经过优化的嵌套循环联接,而不是使用完全扫描或显式排序的嵌套循环联接。 有关详细信息,请参阅 使用优化嵌套循环或批处理排序的查询可能会出现高 CPU 或内存授予。 从 SQL Server 2016 (13.x) Service Pack 1 开始,若要在查询级别完成此操作,请添加 USE HINT 'DISABLE_OPTIMIZED_NESTED_LOOP' 查询提示,而不是使用此跟踪标志。注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 范围:全局、会话或查询 (QUERYTRACEON)。 |
2371 | 将固定更新统计信息阈值更改为线性更新统计信息阈值。 有关详细信息,请参阅此 AUTO_UPDATE_STATISTICS 选项。 注意:从 SQL Server 2016 (13.x) 开始,在数据库兼容性级别 130 或更高版本下,此行为由数据库引擎控制,跟踪标志 2371 不再有效。 范围:仅全局。 |
2389 | 为升序键启用自动生成的快速统计信息(直方图修正)。 如果设置了跟踪标志 2389,并且将前导统计信息列标记为升序,则会在查询编译时调整用于估计基数的直方图。 注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 注意:此跟踪标志不适用于 CE 版本 120 或更高版本。 请改用跟踪标志 4139。 范围:全局、会话或查询 (QUERYTRACEON)。 |
2390 | 为升序键或未知键启用自动生成的快速统计信息(直方图修正)。 如果设置了跟踪标志 2390,并且将前导统计信息列标记为升序或未知,则会在查询编译时调整用于估计基数的直方图。 有关详细信息,请参阅 查询提示。 注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 注意:此跟踪标志不适用于 CE 版本 120 或更高版本。 请改用跟踪标志 4139。 范围:全局、会话或查询 (QUERYTRACEON)。 |
2422 | 当超过 Resource Governor REQUEST_MAX_CPU_TIME_SEC 配置设置的最长时间时,允许 SQL Server 数据库引擎中止请求。 有关详细信息,请参阅 KB4038419。 适用于:SQL Server 2016 (13.x) Service Pack 2、SQL Server 2017 (14.x) CU 3 及更高版本。 范围:仅全局。 |
2430 | 启用备用锁类清除。 有关详细信息,请参阅 KB2754301。 范围:仅全局。 |
2446 | 当使用轻型查询执行统计信息分析基础结构或执行 sys.dm_exec_query_statistics_xml DMV,同时对长时间运行的查询进行故障排除时,会导致 SQL Server 生成带有 ParameterRuntimeValue 的 Showplan XML 片段。适用于:SQL Server 2017 (14.x) CU 31、SQL Server 2019 (15.x) CU 19 和 SQL Server 2022 (16.x) 及更高版本。 警告:跟踪标志 2446 不应在生产环境中持续启用,而应只限于用于时间限制的故障排除。 使用此跟踪标志将引入其他可能重要的 CPU 和内存开销,因为我们将创建一个提供运行时参数信息的 Showplan XML 片段,而无论是否调用 sys.dm_exec_query_statistics_xml DMV。注意:从 SQL Server 2022(16.x)开始,若要在数据库级别完成此操作,请参阅 ALTER DATABASE SCOPED CONFIGURATION 中的FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION选项。 范围:仅全局。 |
2451 | 在 sys.dm_exec_query_plan_stats 中启用最后一个实际执行计划的等效项。适用于:SQL Server 2019 (15.x) 及更高版本。 注意:从 SQL Server 2019(15.x)开始,若要在数据库级别完成此操作,请参阅 ALTER DATABASE SCOPED CONFIGURATION 中的LAST_QUERY_PLAN_STATS选项。 范围:仅全局。 |
2453 | 当足够数量的行发生更改时,允许表变量触发重新编译。 有关详细信息,请参阅 KB2952444。 注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 从 SQL Server 2019(15.x 开始),这成为 表变量延迟编译,跟踪标志 2453 不起作用。 范围:全局、会话或查询 (QUERYTRACEON)。 |
2467 | 启用备用并行工作线程分配策略(基于哪个节点具有最少分配的线程)。 有关详细信息,请参阅并行查询处理。 有关 配置最大工作线程服务器选项的信息, 请参阅配置最大工作线程数(服务器配置选项)。 注意: 并行查询度 (DOP) 必须适用于要使用的此备用策略的单个节点,或改为使用默认线程分配策略。 使用跟踪标志时,不建议执行指定 DOP 多于单个节点中的计划程序数的查询,因为这会干扰指定 DOP 低于或等于单个节点中的计划程序数的查询。 注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 范围:仅全局。 |
2469 | 为已分区列存储索引中的 INSERT INTO ... SELECT 启用备用 Exchange。 有关详细信息,请参阅 KB3204769。范围:全局、会话或查询 (QUERYTRACEON)。 |
2528 | 禁用通过 DBCC CHECKDB 、DBCC CHECKFILEGROUP 和 DBCC CHECKTABLE 进行对象并行检查。 默认情况下,并行度由查询处理器自动确定。 最大并行度的配置就像并行查询的最大并行度一样。 有关详细信息,请参阅配置最大并行度(服务器配置选项)。注意: 通常应启用(默认设置)并行 DBCC 检查。 查询处理器会对 DBCC CHECKDB 检查的每个表或每批表重新求值并自动调整并行度。典型的使用场景为:系统管理员知道在 DBCC CHECKDB 完成之前服务器负载会增加,因此选择手动减少或禁用并行度,以便增加与其他用户工作负载的并发。 但是,禁用 DBCC CHECKDB 中的并行检查会延长其完成时间。注意: 如果使用 DBCC CHECKDB TABLOCK 选项执行并禁用并行度,则表可能会锁定更长的时间。注意:从 SQL Server 2014 (12.x) Service Pack 2 开始,可以在 DBCC 语句中使用 MAXDOP 选项来替代 sp_configure 的 max degree of parallelism 配置选项。范围:全局或会话。 |
2544 | 导致 SQL Server 的内存转存成为完全转储(默认是小型转储)。 完全转储是活动目标进程内存的完整副本。 这将包括所有线程状态、所有进程分配的内存和所有已加载的模块。 因此,完整转储的大小大致相当于 SQL Server 进程使用的内存量,而 SQL Server 进程反过来可能几乎与系统 RAM 总量一样大。 在专用于单个 SQL Server 实例的大型服务器上,这可能意味着文件数百 GB 或更多。 警告: 生成完整内存转储可能会长时间(几秒钟到几分钟)挂起 SQL Server 进程,并可以生成非常大的转储文件。 请谨慎使用此方法,仅在极少的实际需要的情况下使用。 有关详细信息,请参阅 使用 Sqldumper.exe 工具在 SQL Server 中生成转储文件。 范围:仅全局。 |
2549 | 强制 DBCC CHECKDB 命令假设每个数据库文件位于唯一的磁盘驱动器上,但将不同物理文件视为一个逻辑文件。 DBCC CHECKDB 命令根据唯一磁盘驱动器跨所有数据库文件生成一个待读取页面内部列表。 此逻辑根据每个文件的物理文件名的驱动器号确定唯一磁盘驱动器。注意:除非知道每个文件都基于唯一的物理磁盘,否则不要使用此跟踪标志。 注意: 虽然此跟踪标志可提高以PHYSICAL_ONLY选项使用为目标的命令的性能 DBCC CHECKDB ,但某些用户可能无法看到性能有任何改善。 虽然此跟踪标志提高了磁盘 I/O 资源使用率,但磁盘资源的基础性能可能会限制命令的整体性能 DBCC CHECKDB 。 有关详细信息,请参阅 KB2634571。范围:仅全局。 |
2551 | 导致 SQL Server 的内存转存成为经过筛选的转储(默认是小型转储)。 这将捕获完整内存的百分比,其中与 SQL Server 相关的大部分内存结构有意被筛选掉,且不会序列化到磁盘,因为它们没有故障排除附加价值(通常是数据/索引页,一些内部缓存,例如内存中 OLTP 数据页和日志池内存)。 这会生成一个文件,该文件小于完整内存转储,同时保留其大部分有用性作为大多数小型转储不足的情况的首选选项。 有关详细信息,请参阅 使用 Sqldumper.exe 工具在 SQL Server 中生成转储文件。 范围:仅全局。 |
2562 | 无论数据库中有多少个索引,都以单个“批次”运行 DBCC CHECKDB 命令。 默认情况下,DBCC CHECKDB 命令会尝试通过以下方式最大限度地减少 tempdb 资源:限制使用“批次”概念生成的索引或“事实”的数量。 但此跟踪标志强制在一个批次中执行所有处理。使用此跟踪标志的一个效果是,可能会增加空间要求 tempdb 。 tempdb 可以增长到命令正在处理 DBCC CHECKDB 的用户数据库的 5% 或更多。注意: 虽然此跟踪标志可提高以PHYSICAL_ONLY选项使用为目标的命令的性能 DBCC CHECKDB ,但某些用户可能无法看到性能有任何改善。 虽然此跟踪标志提高了磁盘 I/O 资源使用率,但磁盘资源的基础性能可能会限制命令的整体性能 DBCC CHECKDB 。 有关详细信息,请参阅 KB2634571。范围:全局或会话。 |
2566 | 在未指定 DATA_PURITY 选项的情况下,运行 DBCC CHECKDB 命令而不检查数据纯度。注意:默认情况下将启用列值完整性检查,并且不需要使用 DATA_PURITY 选项。 对于从 SQL Server 的早期版本升级的数据库,默认情况下不启用列值检查,直到 DBCC CHECKDB WITH DATA_PURITY 已在数据库中正确运行至少一次为止。 然后,DBCC CHECKDB 将默认检查列值完整性。 有关详细信息,请参阅已存档版本的 KB945770。范围:仅全局。 |
2592 | 若安装了适用于 Windows 的调试工具,在堆栈转储上启用符号解析。 例如,使用跟踪标志 3656 需要启用跟踪标志 2592。 警告:这是调试跟踪标志,不用于生产环境。 适用于:SQL Server 2019 (15.x) 及更高版本。 范围:全局和会话。 |
2610 | 使用 SQLDumper 和通过 DBCC STACKDUMP 启用内存转储压缩并更快地生成转储。 有关详细信息,请参阅使用 Sqldumper.exe 实用工具在 SQL Server 中生成转储文件。适用于:SQL Server 2022 (16.x) CU 8、SQL Server 2019 (15.x) CU 23 及更高版本。 范围:全局和会话。 |
2616 | 使堆栈签名功能能够使 Sqldumper.exe 每小时为每个唯一堆栈签名生成一个转储,从而避免当同一问题在一小时内频繁重复时出现潜在的转储泛滥问题。 启用此跟踪标志后,转储文件的格式将更改 SQLDump<xxxx>.mdmp 或 SQLDmpr<xxxx>.mdmp 更改为 SQLDmpr<xxxx>.P<xxxxx.xxxxxxxx>.T<xxxxxxxxxxxxxx>.{<xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx>}.dmp (例如, SQLDmpr0024.P26900.66D498FA.T20240117034050.{eec59a9e-d615-4ac4-a46a-f650fee23787}.dmp )。适用于: SQL Server 2022 (16.x) CU 12 及更高版本。 范围:仅全局。 |
3023 | 启用 CHECKSUM 选项作为 BACKUP 命令的默认选项。 注意:从 SQL Server 2014 (12.x) 开始,可通过设置 backup checksum default 配置选项来控制此行为。 有关详细信息,请参阅 备份校验和默认值 和 服务器配置选项。 范围:全局和会话。 |
3042 | 绕过默认的备份压缩预先分配算法,以便允许备份文件仅根据需要增长以达到其最终大小。 如果您需要仅分配压缩的备份所需的实际大小以便节约空间,则此跟踪标志将很有用。 使用此跟踪标志可能会导致轻微的性能损失(在备份操作期间损失可能会增加)。 有关预分配算法的详细信息,请参阅备份压缩(SQL Server)。 范围:仅全局。 |
3051 | 仅对 Azure 存储中的页 blob 启用“SQL Server 备份到 URL”日志记录。 日志记录写入特定错误日志文件。 有关详细信息,请参阅 SQL Server 备份到 URL 最佳实践和故障排除。 范围:仅全局。 |
3205 | 默认情况下,如果磁带机支持硬件压缩,则 DUMP 或 BACKUP 语句会使用该功能。 利用此跟踪标志,可以禁用磁带机的硬件压缩。 此选项在你需要与不支持压缩的其他站点或磁带驱动器交换磁带时很有用。 范围:全局或会话。 |
3226 | 默认情况下,每次成功的备份和还原操作都会在 SQL Server 错误日志和系统事件日志中添加一个条目。 如果非常频繁地创建日志备份,这些成功消息会迅速累积,从而产生一个巨大的错误日志,使查找其他消息变得非常困难。 使用此跟踪标志,可以取消备份和还原日志条目。 如果运行的是频繁的日志备份,并且任何脚本都依赖于这些条目,这非常有用。 范围:仅全局。 |
3427 | 在 SQL Server 2016 (13.x) 中,如果多个将数据插入临时表的连续事务占用的 CPU 比在 SQL Server 2014 (12.x) 中时更多,则启用修复来解决问题。 有关详细信息,请参阅 KB3216543。 适用于:SQL Server 2016 (13.x) Service Pack 1 CU 2 到 SQL Server 2016 (13.x) Service Pack 2 CU 2。 从 SQL Server 2016 (13.x) Service Pack 2 CU 3 和 SQL Server 2017 (14.x) 开始,此跟踪标志不再有效。 范围:仅全局。 |
3428 | 次要副本上的 Always On 重做线程有时会被 T-SQL 查询阻止,这可能会导致同步延迟。 此跟踪标志通过将锁定超时设置为 60 秒来终止此类阻塞查询。 有关重做线程延迟的详细信息,请参阅 Redo 线程因资源争用 而落后,并 排查 AlwaysOn 可读辅助副本上的 REDO 队列生成问题(数据延迟问题)。 警告: 请确保在生产环境中部署此选项之前对其进行测试和了解,因为查询可能会终止。 适用于: SQL Server 2019 (15.x) 范围:仅全局。 |
3459 | 禁用并行重做。 有关详细信息,请参阅 KB3200975、KB4101554 和可用性组次要副本重做模型和性能这篇博客文章。 适用于:SQL Server 2016 (13.x)、SQL Server 2017 (14.x) 及更高版本。 范围:仅全局。 |
3468 | 禁用 tempdb 上的间接检查点。适用于:SQL Server 2016 (13.x) Service Pack 1 CU 5、SQL Server 2017 (14.x) CU 1 及更高版本。 范围:仅全局。 |
3502 | 用于将检查点状态更改发送到错误日志。 适用于:SQL Server 2012 (11.x) 及更高版本。 范围:全局或会话。 |
3605 | 将跟踪消息重定向到 SQL Server 错误日志。 例如,使用跟踪标志 205 和 8721 需要启用跟踪标志 3605。 警告:这是调试跟踪标志,不应在生产环境中持续启用。 范围:全局或会话。 |
3608 | 禁止 SQL Server 自动启动和恢复除 master 数据库之外的任何数据库。 如果已启动要求使用 tempdb 的活动,则会恢复 model ,并创建 tempdb 。 在访问数据库时将启动并恢复其他数据库。 可能无法运行某些功能,如快照隔离和读提交快照。 用于 移动系统数据库 和 移动用户数据库。注意:请不要在正常操作中使用。 范围:仅全局。 |
3625 | 通过使用屏蔽某些错误消息'******' 的参数,将返回的信息量限制为不是 sysadmin 固定服务器角色成员的用户。 这可以帮助阻止披露敏感信息。范围:仅全局。 |
3656 | 若安装了适用于 Windows 的调试工具,在堆栈转储上启用符号解析。 警告:这是调试跟踪标志,不用于生产环境。 注意:从 SQL Server 2019 (15.x) 开始,必须与跟踪标志 3656 一起启用跟踪标志 2592 才能启用符号解析。 范围:全局和会话。 |
3880 | 禁用检查可恢复索引状态的计时器任务。 适用于:SQL Server 2017 (14.x) 及更高版本,适用于具有高性能工作负载的高端系统。 范围:全局或会话。 |
3924 | 启用使用 SPID =-2 自动删除孤立的 DTC 事务,这对于某些第三方事务监视器来说是一个问题。 有关详细信息,请参阅 KB4519668 和 KB4511816。 范围:仅全局。 |
3972 | 禁用并发的页可用空间 (PFS) 更新功能。 有关并发 PFS 更新的详细信息,请参阅智能性能。 有关此跟踪标志有用的问题,请参阅使用数据库快照恢复辅助可用性数据库期间无法生成计划程序转储:KB5007794。 范围:仅全局。 |
4022 | 在 SQL Server 启动时禁用存储过程的自动执行功能。 有关自动执行启动存储过程的详细信息,请参阅 sp_procoption。 范围:仅全局。 |
4043 | 修复了对 PolyBase 外部表应用安全策略以及在 SQL Server 2019 (15.x) 中使用行级安全性 (RLS) 时发生的错误。 错误消息类似于以下文本:“安全谓词只能添加到用户表和架构绑定视图”。有关详细信息,请参阅 KB4552159。 范围:全局或会话。 |
4136 | 禁用参数探查,除非使用 OPTION(RECOMPILE) 、WITH RECOMPILE 或 OPTIMIZE FOR <value> 。 有关详细信息,请参阅 KB980653。从 SQL Server 2016(13.x)开始,若要在数据库级别完成此操作,请参阅 ALTER DATABASE SCOPED CONFIGURATION 中的PARAMETER_SNIFFING选项。 若要在查询级别实现相同结果,请添加 OPTIMIZE FOR UNKNOWN 查询提示。 OPTIMIZE FOR UNKNOWN 提示不会禁用参数探查机制,但会有效地绕过它以实现相同的预期结果。 从 SQL Server 2016(13.x) Service Pack 1 开始,在查询级别完成此操作的第二个选项是添加 USE HINT 'DISABLE_PARAMETER_SNIFFING' 查询提示,而不是使用此跟踪标志。注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 范围:全局或会话。 |
4137 | 在 SQL Server 2012 (11.x) 和更早版本 (70) 的查询优化器基数估计 (CE) 模型下估计筛选器的 AND 谓词以说明部分相关性而不是独立性时,导致 SQL Server 使用最小选择性生成一个计划。 有关详细信息,请参阅 KB2658214。 从 SQL Server 2016 (13.x) Service Pack 1 开始,若要在查询级别完成此操作,请在使用 CE 70 时添加 USE HINT 'ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES' 查询提示,而不是使用此跟踪标志。注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 注意:此跟踪标志不适用于 CE 版本 120 或更高版本。 请改用跟踪标志 9471。 范围:全局、会话或查询 (QUERYTRACEON)。 |
4138 | 导致 SQL Server 生成一个计划,该计划不对包含 TOP、OPTION (FAST N)、IN 或 EXISTS 关键字的查询使用行目标调整。 有关详细信息,请参阅 KB2667211。 从 SQL Server 2016 (13.x) Service Pack 1 开始,若要在查询级别完成此操作,请添加 USE HINT 'DISABLE_OPTIMIZER_ROWGOAL' 查询提示,而不是使用此跟踪标志。注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 范围:全局、会话或查询 (QUERYTRACEON)。 |
4139 | 无论键列处于什么状态,均启用自动生成的快速统计信息(直方图修正)。 如果设置了跟踪标志 4139,则无论前导统计信息列处于什么状态(升序、降序或静止),都会在查询编译时调整用于估计基数的直方图。 有关详细信息,请参阅 KB2952101。 从 SQL Server 2016 (13.x) Service Pack 1 开始,若要在查询级别完成此操作,请添加 USE HINT 'ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS' 查询提示,而不是使用此跟踪标志。注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 注意:此跟踪标志不适用于 CE 版本 70。 请改用跟踪标志 2389 和 2390。 范围:全局、会话或查询 (QUERYTRACEON)。 |
4199 | 启用在 SQL Server 累积更新和 Service Pack 中发布的查询优化器 (QO) 修补程序。 默认情况下会在给定产品版本的最新数据库兼容性级别下启用对早期版本的 SQL Server 所做的 QO 更改,但不启用跟踪标志 4199。 有关详细信息,请参阅 KB974006。 来自所有以前的数据库兼容性级别的 QO 更改: - 如果启用了跟踪标志 4199,则还会启用来自以前所有数据库兼容性级别的查询优化器更改。 - 如果禁用或未设置跟踪标志 4199,则会从兼容性级别 130 开始启用查询优化器更改。 对于低于 130 的兼容性级别,将禁用查询优化器更改。 DE 版本后期 RTM 的 QO 更改: - 如果启用了跟踪标志 4199,则会为数据库引擎版本后期 RTM 启用查询优化器更改。 - 如果跟踪标志 4199 已禁用或设置,则会为数据库引擎版本后期 RTM 禁用查询优化器更改。 从 SQL Server 2016(13.x)开始,若要在数据库级别完成此操作,请参阅 ALTER DATABASE SCOPED CONFIGURATION 中的QUERY_OPTIMIZER_HOTFIXES选项。 从 SQL Server 2016 (13.x) Service Pack 1 开始,若要在查询级别完成此操作,请添加 USE HINT 'ENABLE_QUERY_OPTIMIZER_HOTFIXES' 查询提示,而不是使用此跟踪标志。重要提示:跟踪标志 4199 未启用处理错误结果或访问冲突错误的查询优化器修补程序。 这些修补程序被视为不可选,并且在安装更新包后默认启用。 范围:全局、会话或查询 (QUERYTRACEON)。 |
4610 | 将存储缓存条目的哈希表的大小增加 8 倍。 与跟踪标志 4618 一起使用时,TokenAndPermUserStore 缓存存储中的条目数增加到 8,192 个。 有关排查 TokenAndPermUserStore 缓存大小问题的详细信息,请参阅在 SQL Server 中,当 TokenAndPermUserStore 缓存大小增加时,查询需要更长的时间才能完成。 范围:仅全局。 |
4616 | 使应用程序角色可以看到服务器级元数据。 在 SQL Server 中,应用程序角色无法访问自身数据库以外的元数据,因为应用程序角色与服务器级别主体不相关联。 这是对早期版本的 SQL Server的行为的更改。 设置此全局标志将禁用新的限制,并允许应用程序角色访问服务器级元数据。 范围:仅全局。 |
4618 | 将 TokenAndPermUserStore 缓存存储中的条目数限制为 1,024 个。 与跟踪标志 4610 一起使用时,TokenAndPermUserStore 缓存存储中的条目数增加到 8,192 个。 有关排查 TokenAndPermUserStore 缓存大小问题的详细信息,请参阅在 SQL Server 中,当 TokenAndPermUserStore 缓存大小增加时,查询需要更长的时间才能完成。 范围:仅全局。 |
4621 | 将 TokenAndPermUserStore 缓存存储中的条目数限制为用户在注册表项中指定的数目。 有关详细信息,请参阅 访问检查缓存服务器配置选项。 范围:仅全局。 |
4631 | 禁用 SHA2_256/AES256 以哈希处理生成加密密钥的密码。 从 SQL Server 2017 (14.x) 开始,将使用 SHA2 而不是 SHA1。 这意味着,可能需要按照在两台服务器上创建相同的对称密钥中所述,执行额外的步骤来使 SQL Server 2017 (14.x) 安装解密由 SQL Server 2016 (13.x) 加密的项。 有关详细信息,请参阅 KB4053407。 适用于:SQL Server 2017 (14.x) 及更高版本。 范围:仅全局。 |
5004 | 暂停 TDE 加密扫描,并导致加密扫描工作线程退出而不执行任何操作。 数据库继续处于加密状态(正在加密)。 若要恢复重新加密扫描,请禁用跟踪标志 5004 并运行 ALTER DATABASE <database_name> SET ENCRYPTION ON。 范围:仅全局。 |
6408 | 启用估计的执行计划的可见性,以查看 PolyBase 下推计算的远程查询计划。 适用于:SQL Server 2019 (15.x) 及更高版本。 有关详细信息,请参阅如何判断是否发生了外部下推。 范围:全局、会话或查询 (QUERYTRACEON)。 |
6498 | 当有足够的可用内存时,允许多个大型查询编译访问大型网关。 此跟踪标志可用于保存控制下的传入查询的编译的内存使用情况,避免并发大型查询的编译等待。 它基于 80% 的 SQL Server 目标内存的值,它允许每 25 GB 内存进行一次大型查询编译。 有关详细信息,请参阅 KB3024815。 注意:从 SQL Server 2014 (12.x) Service Pack 2 和 SQL Server 2016 (13.x) 开始,此行为由数据库引擎控制,跟踪标志 6498 不再有效。 范围:仅全局。 |
6527 | 禁止在 CLR 集成中第一次发生内存不足异常时生成内存转储。 默认情况下,SQL Server 在 CLR 中第一次发生内存不足异常时会生成小内存转储。 该跟踪标志的行为如下所示: - 如果用作一个启动跟踪标志,则永远不生成内存转储。 但是,如果使用其他跟踪标志,可能会生成内存转储。 - 如果在正在运行的服务器上启用此跟踪标志,则从此时开始不会自动生成内存转储。 但是,如果已经由于 CLR 中的内存不足异常生成了内存转储,则此跟踪标志没有任何效果。 范围:仅全局。 |
6531 | 禁用具有空间数据类型的查询操作的抢先计划保护。 这可以减少 CPU 消耗,并提高某些空间活动的整体性能。 有关详细信息,请参阅 KB3005300。 注意: 仅当单个空间方法调用(每行和列)占用约 4 毫秒并导致频繁的非生成计划程序错误时,才使用此跟踪标志。 适用于: SQL Server 2012 (11.x) Service Pack 2 CU 4、SQL Server 2014 (12.x) CU 5 及更高版本。 范围:全局和会话。 |
6532 | 在 SQL Server 2012 (11.x) 和 SQL Server 2014 (12.x) 中,针对空间数据类型提高查询操作的性能。 根据配置、查询类型和对象的不同,性能提升程度将有所不同。 有关详细信息,请参阅 KB3107399。 注意:从 SQL Server 2016 (13.x) 开始,此行为由数据库引擎控制,跟踪标志 6532 不再有效。 范围:全局和会话。 |
6533 | 在 SQL Server 2012 (11.x) 和 SQL Server 2014 (12.x) 中,针对空间数据类型提高查询操作的性能。 根据配置、查询类型和对象的不同,性能提升程度将有所不同。 有关详细信息,请参阅 KB3107399。 注意:从 SQL Server 2016 (13.x) 开始,此行为由数据库引擎控制,跟踪标志 6533 不再有效。 范围:全局和会话。 |
6534 | 从 SQL Server 2012 (11.x) 开始,针对空间数据类型提高查询操作的性能。 根据配置、查询类型和对象的不同,性能提升程度将有所不同。 有关详细信息,请参阅 KB3107399。 范围:仅全局。 |
6545 | 启用 CLR 严格安全性。 有关详细信息,请参阅 KB4018930。 适用于:SQL Server 2012 (11.x) Service Pack 3 CU 10、SQL Server 2014 (12.x) Service Pack 2 CU 6、SQL Server 2016 (13.x) RTM CU 7、SQL Server 2016 (13.x) Service Pack 1 CU 4 及更高版本。 自 SQL Server 2017 (14.x) 起,默认启用此功能,并且跟踪标志 6545 无效。 范围:仅全局。 |
6559 | 启用更改默认 CLR 线程模型逻辑的修补程序。 有关详细信息,请参阅 KB4517771。 适用于:SQL Server 2016 (13.x) Service Pack 2 CU 10、SQL Server 2017 (14.x) CU 18、SQL Server 2019 (15.x) CU 1 和更高版本。 范围:仅全局。 |
7117 | 缓解在有多个嵌套插入时可能会遇到的断言失败。 如果为可能已中止事务的行设置了 PVS 位,则此跟踪标志允许持久性版本存储(PVS)更清洁线程继续。 此跟踪标志允许 PVS 清理器忽略该位并继续执行清理操作。 适用于:SQL Server 2022 (16.x) CU 9 及更高版本。 范围:仅全局。 |
7314 | 使用 OLE DB 提供程序将精度/确定位数未知的 NUMBER 值强制视为双精度值。 有关详细信息,请参阅 KB3051993。 范围:全局和会话。 |
7412 | 启用轻型查询执行统计信息分析基础结构。 有关详细信息,请参阅 KB3170113。 适用于:SQL Server 2016 (13.x) Service Pack 1 及更高版本。 从 SQL Server 2019 (15.x) 开始,此跟踪标志将不起作用,因为默认情况下启用轻量分析。 范围:仅全局。 |
7470 | 启用排序操作所需的内存授予的其他计算。 有关详细信息,请参阅 KB3088480。 适用于:SQL Server 2012 (11.x) Service Pack 2 CU 8、SQL Server 2014 (12.x) RTM CU 10、SQL Server 2014 (12.x) Service Pack 1 CU 3 及更高版本。 警告: 跟踪标志 7470 增加了对使用排序运算符的查询的内存要求,并可能会影响其他并发查询的内存可用性。 范围:全局、会话或查询 (QUERYTRACEON)。 |
7471 | 为单个表上的不同统计信息启用多个 UPDATE STATISTICS 并发运行。 有关详细信息,请参阅 KB3156157。 适用于:SQL Server 2014 (12.x) Service Pack 1 及更高版本。 范围:仅全局。 |
7745 | 强制查询存储在数据库关闭时不将数据刷新到磁盘。 注意:使用此跟踪标志可能会导致以前未刷新到磁盘的数据查询存储在关闭时丢失。 关闭 SQL Server 时,可以使用 SHUTDOWN WITH NOWAIT 命令强制立即关闭,而不是使用此跟踪标志。 范围:仅全局。 |
7752 | 启用查询存储的异步加载。 注意: 如果 SQL Server 遇到大量与查询存储同步加载(数据库恢复期间的默认行为)相关的 QDS_LOADDB 等待,则使用此跟踪标志。 注意:从 SQL Server 2019 (15.x) 开始,此行为由数据库引擎控制,跟踪标志 7752 不再有效。 范围:仅全局。 |
7806 | 在 SQL Server Express上启用专用管理员连接 (DAC)。 默认情况下,在 SQL Server Express 上不保留 DAC 资源。 有关详细信息,请参阅 数据库管理员的诊断连接。 范围:仅全局。 |
8011 | 为资源监视器禁用环形缓冲区。 可使用此环形缓冲区中的诊断信息来诊断内存不足的情况。 因此,如果使用此跟踪标志,可用于诊断 SQL Server 的性能和功能问题的信息将显著减少。 跟踪标志 8011 始终应用于整个服务器,且始终具有全局作用域。 可在启动时或在用户会话中启用跟踪标志 8011。 范围:仅全局。 |
8012 | 为计划程序禁用环形缓冲区。 每次发生以下事件之一时,SQL Server 就会在计划环形缓冲区中记录一个事件: - 计划程序将上下文切换到另一个工作线程 - 工作线程挂起 - 工作线程恢复 - 工作线程进入抢先模式或非抢先模式。 可使用此环形缓冲区中的诊断信息来分析计划问题。 例如,你可以使用此环形缓冲区中的信息对 SQL Server 停止响应时出现的问题进行故障排除。 跟踪标志 8012 禁止对计划程序事件进行记录。 只能在启动时启用跟踪标志 8012。 警告:使用此跟踪标志时,可供你诊断 SQL Server 的性能和功能问题的信息将显著减少。 范围:仅全局。 |
8015 | 禁用自动检测和 NUMA 设置。 有关详细信息,请参阅 KB2813214。 范围:仅全局。 |
8018 | 禁用异常环形缓冲区。 异常环形缓冲区会记录节点上引发的最后 256 个异常。 每条记录都包含有关错误的一些信息,并包含堆栈跟踪。 异常引发时,会将一条记录添加到环形缓冲区。 跟踪标志 8018 禁止创建环形缓冲区,且不记录异常信息。 跟踪标志 8019 在记录创建期间禁用堆栈收集。 警告:使用此跟踪标志时,可供你诊断 SQL Server 的性能和功能问题的信息将显著减少。 范围:仅全局。 |
8019 | 为异常环形缓冲区禁用堆栈集合。 如果已启用跟踪标志 8018,则跟踪标志 8019 将不起作用。 警告:使用此跟踪标志时,可供你诊断 SQL Server 的性能和功能问题的信息将显著减少。 范围:仅全局。 |
8020 | 禁用工作集监视。 当 SQL Server 接收到来自操作系统的全局内存状态信号时,会使用工作集的大小。 当 SQL Server 解释全局内存状态信号时,跟踪标志 8020 将不再考虑工作集内存的大小。 如果使用此跟踪标志不正确,则可能会发生大量分页,并且性能可能很差。 因此,在启用跟踪标志 8020 之前,请先联系 Microsoft 支持部门。 只能在启动时启用跟踪标志 8020。 范围:仅全局。 |
8032 | 将缓存限制参数还原为 SQL Server 2005 (9.x) 设置,此设置通常允许更大的缓存。 当频繁重复使用的缓存条目不适合缓存时,以及当“针对即席工作负荷进行优化”服务器配置选项未能解决与计划缓存相关的问题时,请使用此设置。 警告:如果大型缓存使其他内存使用者(如缓冲池)可用的内存减少,则跟踪标志 8032 可能导致性能较差。 范围:仅全局。 |
8048 | 将 NUMA 分区内存对象转换为 CPU 分区内存对象。 有关详细信息,请参阅 KB2809338。 注意:从 SQL Server 2014 (12.x) Service Pack 2 和 SQL Server 2016 (13.x) 开始,此行为是动态的,由数据库引擎控制。 范围:仅全局。 |
8075 | 在 64 位 SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x) 上收到内存页分配错误时,减少 VAS 片段。 有关详细信息,请参阅 KB3074434。 适用于:SQL Server 2012 (11.x)、SQL Server 2014 (12.x) RTM CU 10 和 SQL Server 2014 (12.x) Service Pack 1 CU 3。 从 SQL Server 2016 (13.x) 开始,此行为由数据库引擎控制,跟踪标志 8075 不再有效。 范围:仅全局。 |
8079 | 允许 SQL Server 2014 (12.x) Service Pack 2 询问硬件布局,并在报告每个 NUMA 节点 8 个或更多 CPU 的系统上自动配置 Soft-NUMA。 自动 Soft-NUMA 行为可感知同时进行多线程处理(SMT/逻辑处理器)。 通过提高侦听器数、缩放和网络与加密功能,其他节点的分区和创建会缩放后台处理。 适用于:SQL Server 2014 (12.x) Service Pack 2。 从 SQL Server 2016 (13.x) 开始,此行为由数据库引擎控制,跟踪标志 8079 不再有效。 范围:仅全局。 |
8086 | 禁用内存提交的 NUMA 局部检查。 适用于:SQL Server 2019 (15.x) 及更高版本。 范围:全局。 |
8089 | 在 SQL Server 2017 (14.x) CU 16 中,可以启用位图筛选来减小筛选后的内存转储的大小。 SQL Server 分配一个位图,用于跟踪要从筛选的转储中排除的内存页。 Sqldumper.exe 读取位图并筛选出页面,且无需读取其他任何内存管理程序元数据。 仅适用于:SQL Server 2017 (14.x) CU 16 到 CU 19。 从 SQL Server 2017 (14.x) CU 20 开始,将默认启用位图筛选。 跟踪标志 8089 将不再适用,如果启用会将其忽略。 可以通过跟踪标志 8095 禁用位图筛选。 有关详细信息,请参阅 KB4488943。 范围:仅全局。 |
8095 | 禁止对经过筛选的内存转储进行位图筛选。 SQL Server 分配一个位图,用于跟踪要从筛选的转储中排除的内存页。 Sqldumper.exe 读取位图并筛选出页面,且无需读取其他任何内存管理程序元数据。 适用于:默认启用了位图筛选的内部版本:SQL Server 2016 (13.x) CU 13 及更高版本、SQL Server 2017 (14.x) CU 20 及更高版本,以及 SQL Server 2019 (15.x)。 范围:仅全局。 |
8099 | 为运行 SQL Server 2019 (15.x) 的高端系统(为许多并发用户提供服务)启用旋转锁争用修补。 仅适用于:SQL Server 2019 (15.x) CU 2 和 CU 3。 从 SQL Server 2019 (15.x) CU 4 开始,默认情况下便会启用此行为。 有关旋转锁争用的详细信息,请参阅跟踪标志 8101 和 KB4538688。 适用于: SQL Server 2019 (15.x) 范围:仅全局。 |
8101 | 解决具有大量 CPU 和大量并发用户的新式硬件(如 Intel Skylake 处理器)的高 CPU 使用率问题。 若要诊断旋转锁争用,请参阅诊断并解决 SQL Server 上的旋转锁争用白皮书。 仅适用于:SQL Server 2019 (15.x),从 CU 8 开始,CU 14 和 CU 16 中引入了进一步的改进。 有关详细信息,请参阅 KB4538688。 适用于: SQL Server 2019 (15.x) 范围:仅全局。 |
8102 | 解决了由XVB_LIST旋转锁上的旋转锁争用引起的高 CPU 方案。 可以在具有大量较新一代处理器(CPU)的高端系统上观察到这一点。 可以将此跟踪标志与跟踪标志 8101 一起启用。 当跟踪标志 8101 更改旋转增量时,跟踪标志 8102 会阻碍旋转锁回退。 有关退避的详细信息,请参阅 诊断和解决 SQL Server 上的旋转锁争用。 适用范围:SQL Server 2019 (15.x)。 范围:仅全局。 |
8121 | 修复了 SQL Server 在使用“在内存中锁定页面”安全策略设置的内存模型下提交超过最大服务器内存的内存时出现的系统范围的内存不足问题。 此跟踪标志提供资源监视器系统线程所需的内存,以减少 SQL Server 内存消耗量。 有关详细信息,请参阅 KB5008996。 适用范围:SQL Server 2019 (15.x)。 对于 SQL Server 2022(16.x)及更高版本,此功能默认处于启用状态,并且此跟踪标志不起作用。 如果想要禁用此默认行为并还原到旧行为,可以使用跟踪标志 8125。 但是,在大多数情况下,不建议使用此选项。 范围:仅全局。 |
8142 | 该跟踪标志按 CPU 对特定的旋转锁保护列表进行分区,最多 64 个分区。 只能在遇到 SOS_BLOCKALLOCPARTIALLIST 旋转锁争用情况且 CPU 利用率增加的大内存计算机上使用。 另请参阅跟踪标志 8145。 有关详细信息,请参阅 KB5025808。适用于:SQL Server 2019 (15.x) CU 21 及更高版本。 范围:仅全局。 |
8145 | 将跟踪标志 8142 启用的分区修改为按软 NUMA 节点分区,而不是按 CPU 分区。 还必须启用跟踪标志 8142 才能使此操作生效。 有关详细信息,请参阅 KB5025808。 适用于:SQL Server 2019 (15.x) CU 21 及更高版本。 范围:仅全局。 |
8207 | 允许事务复制和 CDC 的 singleton 更新。 对订阅服务器的更新可以作为 DELETE 和 INSERT 对复制。 这可能不符合业务规则的要求,如激发 UPDATE 触发器。 使用跟踪标志 8207 时,对只影响一行的唯一列的更新(单一实例更新)将作为 UPDATE 而非作为 DELETE 或 INSERT 对进行复制。 如果该更新影响具有唯一约束的列或影响多个行,则仍将该更新作为 DELETE 或 INSERT 对进行复制。 有关详细信息,请参阅已存档版本的 KB302341。 范围:仅全局。 |
8239 | 默认情况下, sys.sp_flush_commit_table_on_demand 计算最小强化清理版本和安全清理版本,并继续从提交表删除数据。 设置跟踪标志 8239 时, safe_cleanup_version() 将忽略小于清理点的值,并在重新运行 sys.sp_flush_commit_table_on_demand 后运行清理。 使用此跟踪标志不正确可能会导致数据损坏。 有关详细信息,请参阅 排查更改跟踪自动清理问题。适用于: SQL Server 2022 (16.x) CU 3 及更高版本。 范围:仅全局。 |
8284 | 修复了手动清理问题,即表上的重复锁定升级会导致清理过期更改跟踪元数据出现争用和速度缓慢。 注意:此跟踪标志适用于 SQL Server 2019 (15.x) CU 21 及更高版本。 范围:仅全局。 |
8285 | 当在开启了快照隔离的数据库上启用更改跟踪时,将断言失败(表达式:m_versionStatus.IsVisible () )转换为异常,以防止在某些情况下出现转储问题。适用于:QL Server 2022 (16.x) CU 6、SQL Server 2019 (15.x) CU 21 及更高版本。 范围:仅全局。 |
8286 | 强制清理查询,以使用 FORCE ORDER 提示来改进性能。 可与 TF 8287 一起使用以使用 FORCESEEK 提示。 有关详细信息,请参阅 KB5022375。适用于:SQL Server 2019 (15.x) CU 19、SQL Server 2022 (16.x) CU 1 及更高版本。 范围:仅全局。 |
8287 | 强制清理查询,以使用 FORCESEEK 提示来改进性能。 可与 TF 8286 一起使用以使用 FORCE ORDER 提示。 有关详细信息,请参阅 KB5022375。适用于:SQL Server 2019 (15.x) CU 19、SQL Server 2022 (16.x) CU 1 及更高版本。 范围:仅全局。 |
8290 | 启用此跟踪标志后,更改跟踪 (CT) 自动清理进程将根据保持期将任何无效的清理版本重置为清理版本。 启用此跟踪标志后,必须让自动清理进程运行。 有关详细信息,请参阅 KB4538365。 适用于:SQL Server 2017 (14.x) CU 19、SQL Server 2019 (15.x) CU 4、SQL Server 2022 (16.x) 及更高版本。 范围:全局或会话。 |
8531 | 为运行 XA 分布式事务时可能会遇到的高 KTM_RECOVERY_MANAGER 等待时间的争用问题启用修复。适用于: SQL Server 2019 (15.x) CU 29、SQL Server 2022 (16.x) CU 16 及更高版本。 范围: 仅全局和启动。 |
8558 | 启用修复以确保你不会观察到边缘情况,即启用 RCSI 隔离级别后,即使 xa_commit 在短时间内返回成功,事务有时也无法看到使用 DTC 事务修改的表中的最新数据。 注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 适用于:SQL Server 2019 (15.x) CU 18、SQL Server 2022 (16.x) 及更高版本。 范围:仅全局。 |
8721 | 在执行自动更新统计信息时向错误日志报告。 有关详细信息,请参阅已存档版本的 KB195565。 注意:此跟踪标志需要启用跟踪标志 3605。 范围:仅全局。 |
8744 | 为嵌套循环运算符禁用预提取。 警告: 当 SQL Server 执行包含 Nested Loops 运算符的计划时,使用此跟踪标志不正确可能会导致其他物理读取。 范围:全局和会话。 |
8790 | 使 SQL Server 在执行 UPDATE 语句以更新表中的索引时使用宽查询计划。 当针对聚集索引列执行 UPDATE 时,SQL Server 不仅会更新聚集索引本身,而且还会更新所有非聚集索引,因为非聚集索引包含群集索引键。 若要优化性能并减少随机 I/O SQL Server,可以选择按顺序对内存中的所有非聚集索引数据进行排序,然后按顺序更新所有索引。 这称为宽计划(也称为按索引更新),可以使用此跟踪标志强制执行此计划 范围:全局、会话或查询 (QUERYTRACEON)。 |
8902 | 为具有高性能工作负载的高端系统禁用 IO 操作的锁定页。 适用于:SQL Server 2019 (15.x) 及更高版本。 范围:全局。 |
8904 | 通过禁用内联日志 IO 来修复次要副本上的并行重做失败问题,从而将许多辅助角色的争用可能性限制为后台 LogWriter 辅助角色的子集。 有关详细信息,请参阅 KB5004649 和 跟踪标志 8904 - 禁用内联数据库日志刷新。 仅适用于:SQL Server 2019 (15.x)(从 CU 12 开始)。 适用于: SQL Server 2019 (15.x) 范围:仅全局。 |
9024 | 将全局日志池内存对象转换为 NUMA 节点分区内存对象。 有关详细信息,请参阅 KB2809338。 注意:从 SQL Server 2012 (11.x) Service Pack 3 和 SQL Server 2014 (12.x) Service Pack 1 开始,此行为由数据库引擎控制,跟踪标志 9024 不再有效。 范围:仅全局。 |
9109 | 禁止启动查询通知功能。 有关详细信息,请参阅在数据库中使用查询通知时还原或恢复可能会失败或花费较长时间。 警告:请谨慎使用此跟踪标志。 此跟踪标志可用于一组有限的方案,主要用于排查或隔离问题。 范围:全局和会话。 |
9135 | 阻止使用索引视图。 要在查询级别完成此操作,请添加 USE HINT 'EXPAND VIEWS' 查询提示,而不是使用此跟踪标志。 有关详细信息,请参阅表提示 (Transact-SQL)。适用于:SQL Server 2019 (15.x) CU 23 及更高版本。 范围:仅全局。 |
9347 | 禁用 Sort 运算符的批处理模式。 SQL Server 2016 (13.x) 引入了新的批处理模式 Sort 运算符,可以提高许多分析查询的性能。 有关详细信息,请参阅 KB3172787。 范围:全局、会话或查询 (QUERYTRACEON)。 |
9348 | 允许使用查询优化器基数估计来确定是否应启动聚集列存储索引的 BULK INSERT。 如果要插入的估计行数小于 102,400,则数据库引擎不使用 BULK INSERT。 如果估计的行数大于 102,400,则启动 BULK INSERT。 有关详细信息,请参阅 KB2998301。 范围:全局、会话或查询 (QUERYTRACEON)。 |
9349 | 禁用 Top N Sort 运算符的批处理模式。 SQL Server 2016 (13.x) 引入了新的批处理模式 top sort 运算符,可以提高许多分析查询的性能。 范围:全局、会话或查询 (QUERYTRACEON)。 |
9358 | 禁用 Sort 运算符的批处理模式。 有关详细信息,请参阅 KB3171555。 注意:自 SQL Server 2017 (14.x) 起,默认启用此行为,并且此跟踪标志无效。 范围:全局、会话或查询 (QUERYTRACEON)。 |
9389 | 为批处理模式运算符启用额外动态内存授予。 如果查询未获取所需的所有内存,则会将数据溢出到 tempdb ,从而导致额外的 I/O 并可能影响查询性能。 如果启用了动态内存授予跟踪标志,批处理模式运算符可能会要求额外的内存,并避免溢出到 tempdb 是否有其他内存。 有关详细信息,请参阅内存管理体系结构指南中的“min memory per query 的影响”部分。范围:全局或会话。 |
9398 | 禁用自适应联接运算符,在扫描第一个输入后可延迟选择哈希联接或嵌套循环联接方法,如 SQL Server 2017 (14.x) 中引入的那样。 有关详细信息,请参阅 KB4099126。 注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 范围:全局、会话或查询 (QUERYTRACEON)。 |
9410 | 为使用哈希聚合运算符和溢出的查询启用非默认修复。 启用此跟踪标志将增加不同哈希操作的可用内存。 有关详细信息,请参阅 KB3167159。 注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 范围:全局、会话或查询 (QUERYTRACEON)。 |
9440 | 禁用 bug 2112485 和 bug 2636294 的修复。 使用旧基数估计 (CE) 模型时,bug 修复不适用。 当数据库使用默认 CE 模型时,当联接谓词包含表的主键(例如主键到外键联接)时,外部联接基数估计可能会高于联接中涉及的表基数。 应用上限来限制基数高估量,这就类似于此场景的旧版 CE 中存在的高估限制。 注意:此跟踪标志仅适用于兼容级别为 160 及以下的数据库。 适用于:SQL Server 2019 (15.x) CU 20、SQL Server 2022 (16.x) CU 9 及更高版本。 范围:全局、会话或查询 (QUERYTRACEON)。 |
9453 | 禁用批处理模式执行。 有关详细信息,请参阅 KB4016902。 注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 范围:全局、会话或查询 (QUERYTRACEON)。 |
9471 | 在 SQL Server 2014 (12.x) 及更高版本的查询优化器基数估计模型下,导致 SQL Server 使用最小选择性为单表筛选器生成一个计划。 从 SQL Server 2016 (13.x) Service Pack 1 开始,若要在查询级别完成此操作,请添加 USE HINT 'ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES' 查询提示,而不是使用此跟踪标志。注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 注意:此跟踪标志不适用于 CE 版本 70。 请改用跟踪标志 4137。 范围:全局、会话或查询 (QUERYTRACEON)。 |
9476 | 在 SQL Server 2014 (12.x) 及更高版本的查询优化器基数估计模型下,导致 SQL Server 使用简单包含假设而非默认的基本包含假设来生成计划。 有关详细信息,请参阅 新基数估算器中的 Join 包含假设会降低查询性能。 从 SQL Server 2016 (13.x) Service Pack 1 开始,若要在查询级别完成此操作,请添加 USE HINT 'ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS' 查询提示,而不是使用此跟踪标志。注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 范围:全局、会话或查询 (QUERYTRACEON)。 |
9481 | 将查询优化器基数估计 (CE) 模型设置为 SQL Server 2012 (11.x) 和更低版本(版本 70),而不考虑数据库兼容性级别。 有关详细信息,请参阅 查询提示。 从 SQL Server 2016(13.x)开始,若要在数据库级别完成此操作,请参阅 ALTER DATABASE SCOPED CONFIGURATION 中的LEGACY_CARDINALITY_ESTIMATION选项。 从 SQL Server 2016 (13.x) Service Pack 1 开始,若要在查询级别完成此操作,请添加 USE HINT 'FORCE_LEGACY_CARDINALITY_ESTIMATION' 查询提示,而不是使用此跟踪标志。范围:全局、会话或查询 (QUERYTRACEON)。 |
9485 | 禁用 DBCC SHOW_STATISTICS 的 SELECT 权限。 有关详细信息,请参阅 KB2683304。范围:仅全局。 |
9488 | 当使用 SQL Server 2012 (11.x) 及更高版本的查询优化器基数估计模型时,将表值函数的固定估计值设置为默认值 1(对应于 SQL Server 2008 R2 (10.50.x) 及更早版本的查询优化器基数估计模型下的默认值)。 范围:全局、会话或查询 (QUERYTRACEON)。 |
9495 | 在 INSERT...SELECT 操作的插入过程中禁用并行,它适用于用户表和临时表。 有关详细信息,请参阅 KB3180087。 范围:全局或会话。 |
9567 | 对自动种子设定过程中的 Always On 可用性组启用数据流压缩。 在自动种子设定过程中,压缩可大幅缩短传输时间,并且将增加处理器上的负载。 有关详细信息,请参阅 使用自动种子设定来初始化 AlwaysOn 可用性组 和 优化可用性组的压缩。 范围:全局或会话。 |
9571 | 禁用可用性组自动设定种子到默认数据库路径。 有关详细信息,请参阅 磁盘布局。 范围:全局或会话。 |
9576 | 对 SQL Server 2016 (13.x) Service Pack 1 CU 10、SQL Server 2016 (13.x) Service Pack 2 CU 2 和 SQL Server 2017 (14.x) CU 9 中引入的可用性组故障转移禁用增强型错误收集。 有关详细信息,请参阅 SQL Server 可用性组 - 增强的数据库级故障转移。 范围:仅全局。 |
9591 | 在 Always On 可用性组中禁用日志块压缩。 在 SQL Server 2012 (11.x) 和 SQL Server 2014 (12.x) 中,日志块压缩是用于同步副本和异步副本的默认行为。 在 SQL Server 2016 (13.x) 中,压缩仅用于异步副本。 范围:全局或会话。 |
9592 | 对同步可用性组启用日志流压缩。 默认情况下,对同步可用性组禁用此功能,因为压缩会增加延迟。 有关详细信息,请参阅 Tune compression for availability group(调整可用性组的压缩)。 范围:全局或会话。 |
9708 | 为扩展事件会话启用事件发布指标集合。 有关详细信息,请参阅 sys.dm_xe_session_events。 适用于:SQL Server 2022 (16.x) 及更高版本。 范围:仅全局。 |
9714 | 使 SQL Server 错误日志能够记录扩展事件(XEvents)会话的启动或停止。 适用于: SQL Server 2022 (16.x) CU15 及更高版本。 范围:仅全局。 |
9810 | 禁止内存中 OLTP 引擎回收线程本地存储 (TLS) 内存。 在 SQL Server 2019 (15.x) 及更早版本中,不回收 TLS 内存是默认的行为。 在 SQL Server 2022 (16.x) 中,引入了新的内存优化功能,不仅可以使内存中 OLTP 引擎回收 TLS 内存,还能减少可能出现的内存不足问题。 此跟踪标志还原为 SQL Server 2022 (16.x) 之前的行为。 适用于:SQL Server 2022 (16.x) 及更高版本。 范围:仅全局。 |
9929 | 将每个内存中检查点文件都缩减为 1 MB。 有关详细信息,请参阅 KB3147012。 范围:仅全局。 |
9939 | 在 SQL Server 2016 (13.x) 中,允许在引用内存优化表或表变量的 DML 操作中并行计划和并行扫描内存优化表和表变量,前提是它们不是 DML 操作的目标。 有关详细信息,请参阅 KB4013877。 注意:如果还显式启用了跟踪标志 4199,则不需要使用跟踪标志 9939。 范围:全局、会话或查询 (QUERYTRACEON)。 |
9944 | 当数据库具有大量内存优化表或内存优化表类型时,启用非默认修复,并可能观察到PREMPTIVE_OS_FINDFILE或PREEMPTIVE_OS_CREATEDIRECTORY等待类型时,数据库恢复速度缓慢。 有关详细信息,请参阅 KB4090789 和 KB4052338。 对于Linux 上的 SQL Server,此跟踪标志仅适用于 SQL Server 2022 (16.x) CU 13 及更高版本。 范围:仅全局。 |
9953 | 重复使用内存优化表使用的隐藏计划程序。 适用于:SQL Server 2019 (15.x) CU 20 及更高版本、SQL Server 2022 (16.x) CU 3 及更高版本。 范围:仅全局。 |
10054 | 禁用 SQL Server 查询优化器规则,该规则将 OR 谓词中的子查询解关联为外部联接。 适用于:SQL Server 2019 (15.x) 及更高版本。 注意:请确保在将此选项引入生产环境之前,先对其进行全面测试。 范围:全局、会话或查询 (QUERYTRACEON)。 |
10204 | 在列存储索引重组期间禁用合并/重新压缩。 在 SQL Server 2016(13.x)中,重新组织列存储索引时,有新功能可将任何小型压缩行组自动合并到较大的压缩行组中,并重新压缩具有大量已删除行的任何行组。 注意:跟踪标志 10204 不适用于对内存优化表创建的列存储索引。 范围:全局或会话。 |
10207 | 允许聚合列存储索引 (CCI) 扫描跳过损坏的段或元数据,从而允许从已损坏的 CCI 中检索数据。 有关详细信息,请参阅 KB3067257。 范围:全局或会话。 |
10316 | 允许对内部内存优化暂存时态表创建除默认索引之外的附加索引。 如果具有包含默认索引未涵盖的列的特定查询模式,则可以考虑添加其他索引。 注意: 内存优化表的经系统版本控制的时态表旨在提供较高的事务吞吐量。 创建其他索引可能会给更新或删除当前表中的行的 DML 操作带来开销。 如果使用附加索引,应力求在时态查询的性能和额外的 DML 开销之间找到适当的平衡点。 范围:全局或会话。 |
10460 | 使 SQL Server Stretch Database 功能在 Azure SQL 数据库超大规模服务层级内预配拉伸表。 适用于:SQL Server 2017 (14.x) CU 31、SQL Server 2019 (15.x) CU 18 和 SQL Server 2022 (16.x) 及更高版本。 从 SQL Server 2017 (14.x) CU 31、SQL Server 2019 (15.x) CU 18 和 SQL Server 2022 (16.x) 开始,Stretch Database 功能的默认行为将在 Azure SQL 数据库标准版服务层级 (S3) 内预配拉伸表。 范围:仅全局。 |
11023 | 对于未将采样率显式指定为 UPDATE STATISTICS 语句一部分的所有后续统计信息更新,禁止使用上一个持续采样率。 有关详细信息,请参阅 KB4039284。 范围:仅全局。 |
11024 | 当任何分区的修改计数超过本地阈值时,允许触发统计信息的自动更新。 有关详细信息,请参阅 KB4041811。 适用于:SQL Server 2016 (13.x) Service Pack 2、SQL Server 2017 (14.x) CU 3 及更高版本。 范围:仅全局。 |
11047 | 将由 query wait (s) 或 Resource Governor REQUEST_MEMORY_GRANT_TIMEOUT_SEC 配置设置的默认超时应用于列存储索引生成操作。 有关详细信息,请参阅 KB4480641。适用于:SQL Server 2016 (13.x) Service Pack 2 CU 5、SQL Server 2017 (14.x) CU 14 及更高版本。 范围:仅全局。 |
11064 | 通过优化 SELECT 和 INSERT 语句之间的内存分布,提高了将数据加载到列存储索引的操作的可伸缩性。 有关将数据加载到列存储索引中的详细信息,请参阅列存储索引 - 数据加载指南。适用于:SQL Server 2019 (15.x) 及更高版本。 范围:仅全局。 |
11068 | 使用针对列存储索引插入操作配置了最大并行度 (MAXDOP) 值的服务器、数据库或资源池。 有关替代并行度的详细信息,请参阅查询处理体系结构指南。 重要提示:只有同时启用跟踪标志 11064,此跟踪标志才有效。 重要提示: 优先选择更快的数据加载而不是维护列存储段的质量时,请使用此跟踪标志。 例如,如果将 1,048,577 行加载到列存储中时使用此跟踪标志,如果在并行模式下执行插入操作,可能会导致多个压缩行组。 如果不使用此跟踪标志,插入操作会生成一个压缩行组。 适用于:SQL Server 2019 (15.x) 及更高版本。 范围:仅全局。 |
11561 | 禁用复制Microsoft Entra 身份验证。 注意:此跟踪标志适用于 SQL Server 2022 (16.x) CU 6 及更高版本。 范围:全局或会话。 |
11631 | 仅当已从某个列存储索引行组中删除某个阈值的行数时,ALTER INDEX ... REORGANIZE 和 后台合并任务才会清理该行组中已删除的行。 默认阈值为最大行数限值的 10%(1 百万行),即 100,000 行。此跟踪标志将阈值更改为列存储行组中当前行总数的 10%。 例如,如果行组包含 20,000 行,则阈值是 2,000 行删除的行,达到该阈值时,才会对此行组执行清理操作。 有关详细信息,请参阅 KB5000895。 适用于:SQL Server 2019 (15.x) CU 9 及更高版本。 范围:仅全局。 |
11634 | 仅当已从某个列存储索引行组中删除某个阈值的行数时,ALTER INDEX ... REORGANIZE 和 后台合并任务才会清理该行组中已删除的行。 默认阈值为最大行数限值的 10%(1 百万行),即 100,000 行。此跟踪标志将阈值更改为列存储行组中当前行总数的 1%。 如果与跟踪标志 11631 一起启用,则它是行组中当前行数的 1%, 而不是 100 万行的 1%。 有关详细信息,请参阅 KB5000895。 适用于:SQL Server 2019 (15.x) CU 9 及更高版本。 范围:仅全局。 |
12310 | 增加每个可用性组入口允许的消息数量的流量控制限制。 这些限制是 SQL Server 2022(16.x)中的新默认值,因此跟踪标志在此版本中不起作用。 有关详细信息,请参阅流量控制入口。 适用于:SQL Server 2019 (15.x) CU9、SQL Server 2017 (14.x) CU 18、SQL Server 2016 (13.x) SP 1 CU 16 及更高版本。 范围:仅全局。 |
12324 | 解决了 Azure SQL 托管实例链接功能更改所带来的问题,当副本在不同的累积更新上运行时,可用性组无法同步。 有关详细信息,请参阅 KB5024276。 适用于:SQL Server 2019 (15.x) CU 20 及更高版本。 范围:仅全局。 |
12481 | 禁用审核记录 external_policy_permission_checked 字段中外部权限的日志记录审核信息。 有关详细信息,请参阅 KB5022375。适用于:SQL Server 2022 (16.x) CU 1 及更高版本。 范围:仅全局。 |
12502 | 禁用本地 SQL Server 实例的外部授权策略。 适用于:SQL Server 2022 (16.x) CU 5 及更高版本。 范围:仅全局。 |
12618 | 启用自动优化功能的自动计划更正 (APC) 模型,以便对同一计划执行多个连续的计划回归检查,从而可以累积更多统计信息供新模型评估。 有关详细信息,请参阅 KB5026717。 适用于:SQL Server 2022 (16.x) CU 4 及更高版本。 范围:仅全局。 |
12656 | 启用自动优化功能的自动计划更正 (APC) 模型,以使用基于时间的计划回归检查,该检查将在检测到计划更改的五分钟后发生,从而避免快速执行的查询让回归检查产生偏差。 这允许 APC 考虑可能运行时间较长的查询执行,或者由于计划更改而容易超时。 有关详细信息,请参阅 KB5026717。 适用于:SQL Server 2022 (16.x) CU 4 及更高版本。 范围:仅全局。 |
13116 | 禁用 bug 13685819 的修补程序。 如果在应用 SQL Server 2016 (13.x) Service Pack 2 CU 16 后遇到以下问题,则使用此跟踪标志:使用并行计划的 DML(插入/更新/删除)查询不能完成任何执行;以及遇到 HP_SPOOL_BARRIER 等待。 适用于:SQL Server 2016 (13.x) Service Pack 2 CU 16。 范围:仅全局。 |
13127 | 启用其他字符串模式匹配优化。 适用于:SQL Server 2019 (15.x) 及更高版本,适用于具有高性能工作负载的高端系统。 范围:全局或会话。 |
13156 | 对“存在大量标量表达式重新计算的 UDF 调用可能导致计划程序无法完成的错误”问题禁用修补程序。 此原始修复有时可能会导致性能回归。 有关详细信息,请参阅 KB4538581。 范围:仅全局。 |
15025 | 禁用新创建的虚拟日志文件 (VLF) 所需的 Azure 密钥保管库访问权限,这样就可以在不中断的情况下继续使用大量客户工作负载。 启用此跟踪标志后,SQL Server 使用可扩展密钥管理进行加密和密钥生成,并且不会在创建 VLF 期间联系 Azure 密钥保管库。 有关详细信息,请参阅 “修复:使用 EKM 进行加密和密钥生成的大量客户工作负荷的数据库辅助功能问题”。 适用于:SQL Server 2019 (15.x) CU 19、SQL Server 2022 (16.x) CU 1 及更高版本。 范围:仅全局。 |
15096 | 使用 AVX-512 指令集禁用总体计数 (popcnt) 操作。 适用于:SQL Server 2022 (16.x) 及更高版本。 范围:全局或会话。 |
15097 | 为 SQL Server 2022 (16.x) 及更高版本启用 AVX-512 支持。 重要提示:建议为以下 CPU 启用 AVX-512 支持: - Intel Ice Lake 及更高版本 - AMD EYPC Genoa 及更高版本 适用于:SQL Server 2022 (16.x) 及更高版本。 范围:全局或会话。 |
15212 | 禁用充当超时事件详细通知的 Service Broker 计时器消息。 受此跟踪标志影响的消息包括:Service Broker 对话清理序列中的 SSBDT: Dialog timer delete during registration 和 Service Broker 对话关闭序列中的 SSBDT: Dialog timer delete during dispatch 。 启用此跟踪标志后,将跳过这些非正式消息的打印输出。适用于:SQL Server 2022 (16.x) 及更高版本。 范围:仅全局。 |
15915 | 为从多个连接频繁调用时 sp_lock 可能会遇到的性能问题启用修复,这可能会导致内存泄漏。 在重启 SQL Server 服务之前,不会清理内存。适用于: SQL Server 2019 (15.x) CU 29 及更高版本。 范围:仅全局。 |
16301 | 跳过存储过程中的 sp_server_diagnostics 阻止 I/O 操作。 打开此跟踪标志后, sp_server_diagnostics 存储过程不会收集一些 I/O 统计信息,但它可以帮助 AlwaysOn 可用性组(AG)避免在 I/O 系统中出现长时间延迟时重启和故障转移。适用于: SQL Server 2022 (16.x) CU 12 及更高版本。 范围:仅全局。 |
相关内容
- 数据类型 (Transact-SQL)
- DBCC DBREPAIR (Transact-SQL)
- DBCC TRACEON (Transact-SQL)
- DBCC TRACESTATUS (Transact-SQL)
- DBCC INPUTBUFFER (Transact-SQL)
- DBCC OUTPUTBUFFER (Transact-SQL)
- EXECUTE (Transact-SQL)
- SELECT (Transact-SQL)
- SET NOCOUNT (Transact-SQL)
- 查询提示 (Transact-SQL)
- SQL Server 诊断检测到由于读取过时或写入丢失而导致的 I/O 未报告问题
- ALTER DATABASE SET 选项 (Transact-SQL)
- ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)