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

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

时间: 2024-10-07 07:15:37

SQL Server 2016新特性:数据库级别配置的相关文章

SQL Server -&gt;&gt; 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表)

原文:SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表) 作为SQL Server 2016(CTP3.x)的另一个新特性,Temporal Table(历史表)记录了表历史上任何时间点所有的数据改动.Temporal Table其实早在ANSI SQL 2011就提出了,而SAP HANA, DB2和Oracle早已在它们的产品中加入/实现了这一特性.所以说微软其实是落后了几个竞争对手.既然在CTP3.0中加入了,相信

SQL Server 2016新特性:DROP IF EXISTS

原文:SQL Server 2016新特性:DROP IF EXISTS ?? 在我们写T-SQL要删除某个对象(表.存储过程等)时,一般会习惯先用IF语句判断该对象是否存在,然后DROP,比如: 旧版本: IF OBJECT_ID('dbo.PERSON','U') IS NOT NULL DROP TABLE PERSON IF EXISTS (SELECT * FROM sys.objects where name = 'PERSON') DROP TABLE PERSON SQL Ser

SQL Server -&gt;&gt; SQL Server 2016新特性之 --- Query Store

前言 SQL Server 2016引入新的查询语句性能监控.调试和优化工具/功能 -- Query Store.以前我们发现一条查询语句性能突然下降,我们要去找出问题的所在往往需要通过调用一些DMV(比如sys.dm_exec_query_stats, sys.dm_exec_sql_text和sys.dm_exec_query_plan)来获取查询计划的一些信息,比如XML格式的执行计划,查询语句的代码,执行了多少次以及一些资源和时间的的使用消耗情况.然后根据这些信息来判断这条语句是否存在性

SQL Server -&gt;&gt; SQL Server 2016新特性之 -- Dynamic Data Masking

Dynamic Data Masking是为了防止敏感数据暴露给未经授权的用户,以一种最小开销和维护成本的形式.Dynamic Data Masking用于表的字段,相当于盖住字段数据的一部分.比如一些像邮件或者工资这样敏感的数据,涉及PII的,我们可以运用这个功能.运用这个功能的步骤,首先先定义一组人(database role)可以拥有看数据的权限,然后GRANT UNMASK权限给这个角色组.微软提供了4种类型的masking给我们选择:default,email,random和custo

SQL Server 2016新特性:Live Query Statistics

SSMS可以提供可以查看正在执行的计划.live query plan可以查看一个查询的执行过程,从一个查询计划操作到另外一个查询计划操作.live query plan提供了整体的查询运行进度和操作级别的执行统计信息,比如产生的行数,执行的时间,操作进度等等.因为这些数据是实时的,不需要等待查询完成,这些统计信息对调试查询性能问题很有用.这个特性从SQL Server 2016开始,但是在2014上也可以运行了. Remark 到SQL Server 2016,有2个方法开启Statistic

SQL Server 2016新特性:In-Memory OLTP

存储格式修改 在2014,2016中修改了内存优化表的存储格式,新的格式是序列的并且the database is restarted once during database recovery. ALTER TABLE日志优化,并且可以并发运行 当你在内存优化表执行ALTER TABLE,只有元数据的修改会被写入日志.这样减少了大量的日志.并且很多ALTER TABLE是并行的,这样可以减少语句运行的时间 但是如果包含LOB,就不能并行运行 统计信息 优化表的统计信息可以自动更新.另外可以通过

SQL Server 2016新特性:列存储索引新特性

行存储表可以有一个可更新的列存储索引,之前非聚集的列存储索引是只读的. 非聚集的列存储索引支持筛选条件. 在内存优化表中可以有一个列存储索引,可以在创建表的时候创建,也可以在之后的alter table语句上创建.之前内存优化表不支持列存储索引. 聚集的列存储索引可以有多个非聚集行存储索引,之前列存储索引不支持非聚集索引. 支持在聚集列存储索引上加入主键和外键约束,约束使用btree索引. 列聚集索引有一个压缩延迟选项,让事务复合收到的影响最小. 兼容级别为120,130的数据库性能: 列存储索

SQL Server 2016新特性:Temporal Table

什么是系统版本的Temporal Table 系统版本的Temporal Table是可以保存历史修改数据并且可以简单的指定时间分析的用户表. 这个Temporal Table就是系统版本的Temporal Table因为每行的有效期由系统托管的. 每个Temporal Table有2个显示定义的列,类型是datetime2.这些用来表示有效期.这个列用来标记这个行是不是在期间内可用. 除了上面的period列,l临时表也包含了引用到其他表,系统使用这个表来保存行修改删除前的行版本.这个附加表可

谈谈我的微软特约稿:《SQL Server 2014 新特性:IO资源调控》

原文:谈谈我的微软特约稿:<SQL Server 2014 新特性:IO资源调控> 一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 篡写经历(Experience) 特约稿正文(Content-body) 第一部分:生活中资源调控器: 第二部分:SQL Server中资源调控器: 第三部分:SQL Server资源调控器运用场景—CPU: 第四部分:SQL Server资源调控器运用场景—IO: 第五部分:总结: 第六部分:作者简介: