新的 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的间隙可以选择关闭。