适用于:SQL Server 2025(17.x)预览版
Azure SQL 数据库
Microsoft Fabric 中的 SQL 数据库
注释
在 SQL Server 2022 中引入了用于可读辅助服务器的查询存储,而用于可读辅助服务器的持久统计信息功能使用了该查询存储已经建立的基础设施。 SQL Server 2025 中的查询存储功能在可读的辅助副本上默认是打开的,而在 SQL Server 2022 中,它是关闭的,需要跟踪标志 12606
进行启用。 SQL Server 2025 及更高版本需要跟踪标志12606
not
,如果使用,将导致查询存储关闭可读辅助数据库功能。
背景
在可读的次要副本上,当启用 自动创建统计信息 选项时,也可以自动创建统计信息,但这些统计信息是临时的,在重启实例时消失。 当只读数据库或只读快照的统计信息缺失或过时时,数据库引擎会在其中 tempdb
创建和维护临时统计信息。 当数据库引擎创建临时统计信息时,统计信息名称将追加后缀_readonly_database_statistic以区分临时统计信息与永久统计信息。 后缀 _readonly_database_statistic
保留为 SQL Server 生成的统计信息。 采用此方法的原因是解决针对可能要求主副本上不存在的不同统计信息的可读次要副本执行的工作负荷。
添加可读辅助副本的查询存储后,辅助副本有一个通信通道回到主副本,该通道当前用于将查询存储数据(查询、计划、执行统计信息等)发送到主副本,以将其保存在数据库中,并使其可用于查询。
类似的机制用于将统计信息发送回主副本,并随后发送回所有次要副本。 在存储于 tempdb
其中的任何次要副本上创建的临时统计信息将发送到主副本并保存在主副本上,这使得它们可由所有可读次要副本使用。
支持目录视图
为了支持比较辅助和主要数据库之间的统计信息创建/更新,并帮助了解创建统计信息的位置,已将三个新列添加到 sys.stats
目录视图中:
列名称 | 数据类型 | DESCRIPTION |
---|---|---|
replica_role_id |
tinyint | 标识此副本的副本集编号。 1 = 主数据库,2 = 次级数据库,3 = 地理复制转发器,4 = 地理 HA 次级数据库 |
replica_role_desc |
nvarchar(60) | 主要、辅助、异地复制转发器、异地 HA 辅助数据库 |
replica_name |
sysname | 可用性组中的副本实例名称。 将 NULL 用于主要副本 |