MSSQL在单个数据库级别配置参数(ALTER DATABASE SCOPED CONFIGURATION)

0    165    1

Tags:

👉 本文共约18690个字,系统预计阅读时间或需71分钟。

目录

简介

此命令在单个数据库级别启用多个数据库配置设置。

重要

SQL Server或 Azure 服务的不同版本支持不同的 DATABASE SCOPED CONFIGURATION 选项。 本页介绍所有 DATABASE SCOPED CONFIGURATION 选项。 以下文本介绍了适用的版本。 确保使用你正在使用的服务版本中可用的语法。

Azure SQL 数据库、Azure SQL 托管实例和 SQL Server 中支持以下设置,如参数部分中每个设置的“适用范围”行所示:

  • 清除过程缓存。
  • 根据最适合特定工作负载的情况,将 MAXDOP 参数设置为主数据库的推荐值(1、2、…),并为报告查询使用的次要副本数据库设置不同的值。 有关如何选择 MAXDOP 的指导,请查看配置最大并行度服务器配置选项
  • 设置独立于数据库兼容级别的查询优化器基数估计模型。
  • 在数据库级别启用或禁用参数探查。
  • 在数据库级别启用或禁用查询优化修补程序。
  • 在数据库级别启用或禁用标识缓存。
  • 在第一次编译批处理时启用或禁用要存储在缓存中的已编译计划存根。
  • 启用或禁用对本机编译的 Transact-SQL 模块的执行统计信息收集。
  • 为支持 ONLINE = 语法的 DDL 语句启用或禁用默认联机选项。
  • 为支持 RESUMABLE = 语法的 DDL 语句启用或禁用默认可恢复选项。
  • 启用或禁用智能查询处理功能。
  • 启用或禁用加速计划强制实施。
  • 启用或禁用全局临时表的自动删除功能。
  • 启用或禁用轻型查询分析基础结构
  • 启用或禁用新的 String or binary data would be truncated 错误消息。
  • sys.dm_exec_query_plan_stats 中启用或禁用最后一个实际执行计划的收集。
  • 指定暂停的可恢复索引操作在被 数据库引擎 自动中止之前暂停的分钟数。
  • 允许或禁止等待低优先级的锁以完成异步统计信息更新。
  • 启用或禁用将账本摘要上传到 Azure Blob 存储。

此设置仅在 Azure Synapse Analytics 中可用。

  • 设置用户数据库的兼容性级别

语法

syntaxsql复制

重要

从 SQL Server 2019 (15.x) 开始,在 Azure SQL 数据库 和 Azure SQL 托管实例 中,某些选项名称已更改:

  • DISABLE_INTERLEAVED_EXECUTION_TVF 更改为 INTERLEAVED_EXECUTION_TVF
  • DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK 更改为 BATCH_MODE_MEMORY_GRANT_FEEDBACK
  • DISABLE_BATCH_MODE_ADAPTIVE_JOINS 更改为 BATCH_MODE_ADAPTIVE_JOINS

syntaxsql复制

参数

FOR SECONDARY

指定辅助数据库的设置(所有辅助数据库必须具有相同的值)。

CLEAR PROCEDURE_CACHE [plan_handle]

清除数据库的过程(计划)缓存,可同时对主要和辅助数据库执行此操作。

指定查询计划句柄,以从计划缓存中清除单个查询计划。

适用范围:从 SQL Server 2019 (15.x) 开始,在 Azure SQL 数据库和 Azure SQL 托管实例中,可以指定查询计划句柄。

MAXDOP = { | PRIMARY }

指定应用于该语句的默认最大并行度 (MAXDOP) 设置。 0 是默认值,表示将改用服务器配置。 数据库范围的 MAXDOP 会替代(除非设置为 0)通过 sp_configure 在服务器级别设置“max degree of parallelism”。 查询提示仍然可以替代数据库作用域内 MAXDOP,以调整需要不同设置的特定查询。 所有这些设置都受为工作负荷组设置的 MAXDOP 限制。

你可以使用 MAXDOP 选项来限制执行并行计划时所用的处理器数量。 SQL Server 考虑为查询、索引数据定义语言 (DDL) 操作、并行插入、联机更改列、并行统计信息集合以及静态的和由键集驱动的游标填充实施并行执行计划。

备注

将按任务设置最大并行度 (MAXDOP) 限制。 它不是按请求限制或按查询限制。 这意味着,在并行查询期间,单个请求可以生成多个任务,然后将它们分配给计划程序。 有关详细信息,请参阅线程和任务体系结构指南

要在实例级别设置此选项,请参阅配置 max degree of parallelism 服务器配置选项

备注

在 Azure SQL 数据库中,新的单一数据库和弹性池数据库的 MAXDOP 数据库范围的配置默认设置为 8。 可以为每个数据库配置 MAXDOP,如当前文章中所述。 有关最佳配置 MAXDOP 的建议,请参阅其他资源部分。

提示

要在查询级别完成此操作,请使用 MAXDOP 查询提示
要在服务器级别完成此操作,请使用“最大并行度 (MAXDOP)”服务器配置选项
要在工作负荷级别完成此操作,请使用 MAX_DOP Resource Governor 工作负荷组配置选项

PRIMARY

仅可为辅助数据库(该数据库位于主数据库上)设置,表示其配置是为主数据库设置的配置。 如果主数据库的配置更改,辅助数据库上的值也会相应地更改,不需要再显式设置辅助数据库值。 PRIMARY 是辅助数据库的默认设置。

LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY }

可用于独立于数据库兼容性级别将查询优化器基数估计模型设置为 SQL Server 2012 或更低版本。 默认值为 OFF,可根据数据库兼容性级别设置查询优化器基数估计模型。 将 LEGACY_CARDINALITY_ESTIMATION 设置为 ON 等效于启用跟踪标志 9481

提示

要在查询级别完成此操作,请添加 QUERYTRACEON 查询提示。 从 SQL Server 2016 (13.x) SP1 开始,要在查询级别完成此操作,请添加 USE HINT 查询提示,而不是使用跟踪标志。

PRIMARY

此值仅对辅助数据库(该数据库位于主数据库上)有效,指定所有辅助数据库上的查询优化器基数估计模型设置都是为主数据库设置的值。 如果主数据库上查询优化器基数估计模型的配置发生更改,则辅助数据上的值也会相应地更改。 PRIMARY 是辅助数据库的默认设置。

PARAMETER_SNIFFING = { ON | OFF | PRIMARY }

启用或禁用参数截取。 默认值为 ON。 将 PARAMETER_SNIFFING 设置为 OFF 等效于启用跟踪标志 4136

提示

要在查询级别完成此操作,请参阅 OPTIMIZE FOR UNKNOWN 查询提示。 从 SQL Server 2016 (13.x) SP1 开始,要在查询级别完成此操作,也可使用 USE HINT 查询提示

PRIMARY

此值仅对辅助数据库(该数据库位于主数据库上)有效,指定所有辅助数据库上此设置的值都是为主数据库设置的值。 如果主数据库上用于使用参数截取的配置更改,则辅助数据库上的值也会相应地更改,不需要再显式设置辅助数据库值。 PRIMARY 是辅助数据库的默认设置。

QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY }

启用或禁用查询优化修补程序,而无论数据库兼容性级别。 默认值为 OFF,可禁用在为特定版本 (post-RTM) 引入可用度最高的兼容性级别后发布的查询优化修补程序。 将此值设置为 ON 等效于启用跟踪标志 4199

适用范围:SQL Server(SQL Server 2016 (13.x) 及更高版本)、Azure SQL 数据库和 Azure SQL 托管实例

提示

要在查询级别完成此操作,请添加 QUERYTRACEON 查询提示。 从 SQL Server 2016 (13.x) SP1 开始,要在查询级别完成此操作,请添加 USE HINT 查询提示,而不是使用跟踪标志。

PRIMARY

此值仅对辅助数据库(该数据库位于主数据库上)有效,指定所有辅助数据库上此设置的值都是为主数据库设置的值。 如果主数据库的配置更改,辅助数据库上的值也会相应地更改,不需要再显式设置辅助数据库值。 PRIMARY 是辅助数据库的默认设置。

IDENTITY_CACHE = { ON | OFF }

适用范围:SQL Server(SQL Server 2017 (14.x) 及更高版本)、Azure SQL 数据库和 Azure SQL 托管实例

在数据库级别启用或禁用标识缓存。 默认值为 ON。 标识缓存用于提高具有标识列的表的 INSERT 性能。 为了避免服务器意外重启或故障转移到辅助服务器时出现标识列值的差值,请禁用 IDENTITY_CACHE 选项。 该选项与现有跟踪标志 272 类似,但前者可在数据库级别设置,而不只是可在服务器级别设置。

备注

仅可为 PRIMARY 设置此选项。 有关详细信息,请参阅标识列

INTERLEAVED_EXECUTION_TVF = { ON | OFF }

适用范围:SQL Server(SQL Server 2019 (15.x) 及更高版本)、Azure SQL 数据库和 Azure SQL 托管实例

允许用户在数据库或语句范围内启用或禁用多语句表值函数的交错执行,同时将数据库兼容性级别维持在 140 或更高。 默认值为 ON。 交错执行是 Azure SQL 数据库 中自适应查询处理的一个功能。 有关详细信息,请参阅智能查询处理

备注

对于数据库兼容性级别 130 或更低级别,此数据库范围配置无效。

仅在 SQL Server 2017 (14.x) 中,选项 INTERLEAVED_EXECUTION_TVF 具有旧名称 DISABLE_INTERLEAVED_EXECUTION_TVF。

BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }

适用范围:SQL Server(SQL Server 2019 (15.x) 及更高版本)、Azure SQL 数据库和 Azure SQL 托管实例

允许用户在数据库范围内启用或禁用批处理模式内存授予反馈,同时将数据库兼容级别维持在 140 或更高。 默认值为 ON。 SQL Server 2017 (14.x) 中引入的批处理模式内存授予反馈是智能查询处理功能套件的一部分。 有关详细信息,请参阅内存授予反馈

备注

对于数据库兼容性级别 130 或更低级别,此数据库范围配置无效。

BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF }

适用范围:SQL Server(SQL Server 2019 (15.x) 及更高版本)、Azure SQL 数据库和 Azure SQL 托管实例

允许用户在数据库范围内启用或禁用批处理模式自适应联接,同时将数据库兼容性级别维持在 140 或更高。 默认值为 ON。 批处理模式自适应联接是 SQL Server 2017 (14.x) 中推出的智能查询处理的一个功能。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
MSSQL在单个数据库级别配置参数(ALTER DATABASE SCOPED CONFIGURATION)后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部