天天看点

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

这个语句可以配置每个数据库的配置:

清理过程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}

CLEAR PROCEDURE_CACHE

清理过程计划可以在primary,secondary中执行。

IDENTITY_CACHE = { ON | OFF }

启动和关闭数据库级别的identity cache。默认是on,identity cache用来提高insert在identity中的性能。为了避免identity的间隙可以选择关闭。