SQL Server 2016新特性:数据库级别配置

时间:2021-11-21 09:07:08
新的  ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL) 用来配置数据库级别配置。
这个语句可以配置每个数据库的配置:
  • 清理过程cache
  • 设置MAXDOP参数,可以配置primary和secondary
  • 设置查询优化器的评估模式
  • 启动和关闭数据库级别的参数嗅探
  • 启动和关闭数据库级别的查询优化补丁
  • 启动和关闭数据库级别的identity cache

语法:
ALTER DATABASE SCOPED CONFIGURATION 
{       
     {  [ FOR SECONDARY] SET <set_options>  }   
| CLEAR PROCEDURE_CACHE 
| SET < set_options >
[;]   
< set_options > ::=   
    MAXDOP = { <value> | PRIMARY}   
    | LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY}   
    | PARAMETER_SNIFFING = { ON | OFF | PRIMARY}   
    | QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY}
    | IDENTITY_CACHE = { ON | OFF }
}
参数:
FOR SECONDARY
指定设置secondary的数据库
MAXDOP = { <value> | PRIMARY}
设置MAXDOP,默认为0,如果设置了再数据库执行的时候会覆盖sp_configure中的配置,如果有查询提示,查询提示会覆盖这个配置。
PRIMARY的意思是,如果在secondary上设置了primary,那么secondary会集成primary上的设置。
LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY}
可以让你设置查询优化器评估模式,如果为OFF会根据兼容级别使用查询优化器评估模式,如果为ON使用老的查询优化器的评估模式。
PRIMARY和上面的一样
PARAMETER_SNIFFING = { ON | OFF | PRIMARY}
启动和关闭参数嗅探
QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY}
启动和关闭查询优化补丁,和数据库兼容级别无关。默认是OFF,关闭查询优化补丁,关于补丁具体看 Microsoft Support article.
CLEAR PROCEDURE_CACHE
清理过程计划可以在primary,secondary中执行。
IDENTITY_CACHE = { ON | OFF }
启动和关闭数据库级别的identity cache。默认是on,identity cache用来提高insert在identity中的性能。为了避免identity的间隙可以选择关闭。