SQL Server 2016的数据库范围内的配置详解

SQL Server 2016真的让人眼前一亮。几天前微软就提供了RCO(候选发布版)版本的下载。我已经围观了一圈RCO版本,其中一个最拽的功能是数据库范围内的配置(Database Scoped Configuration),在今天的文章里我想谈谈它。补充几句:装好之后,居然发现没有SSMS,崩溃中,原来是在向导中就有独立的安装程序,好吧!

这配色,真是低调有内涵。

另外,如过你的电脑已经安装了就【Microsoft Visual Studio 2010 Shell(独立)Redistributable Package 】,卸载掉吧,好像会影响SSMS的安装。

启动画面。

登录界面。

数据库范围内的配置

我们知道,SQL Server有很多配置选项只能在SQL Server实例级别进行全局配置。例如MAXDOP选项(当你不使用资源调控器时)。另外微软提供我们大量不同的跟踪标记(Trace Flags)可以修改SQL Server的内部行为。微软现在最终宣布这些领域,SQL Server 2016会为我们提供现存的配置选项,在数据库级别就可以配置,而不使用特定的跟踪标记(Trace Flags)。

我们来详细看下它们。使用早期参数估计(Legacy Cardinality Estimation )选项,你可以控制SQL Server是否使用老的还是SQL Server 2014里引入的新的参数估计。这是个新的配置选项,以前可以通过2312和9481跟踪标记来实现。

MAXDOP选项就不用解释了!终于你可以在数据库级别控制MAXDOP!这真的太拽了!尤其对于Sharepoint。我来看看SharePoint的后续版本会不会支持数据库级别的MAXDOP...对了,我已经很期待在数据库级别1的MAXDOP的数据库,来回避可恶的CXPACKET等待。

参数探查(Parameter Sniffing)!微软称它为特色,我叫它为BUG,通常来说参数探查是个好事,因为查询优化器基于你首次提供的输入值来编译查询计划。这很棒,但缺点是生成的查询计划对提供输入参数敏感,且只对那些参数进行优化。如果你后来用不同的参数值重用缓存的查询计划,就会影响你的性能。

只用这个配置选项,现在你可以控制查询优化器是否使用参数探查。它可以用来替换4136跟踪标记。如果你禁用参数探查,当你使用OPTIMIZE FOR UNKNOWN查询提示时,SQL Server内部使用同样的行为——它不会给你优化的性能,但会给你一致的性能……

最后你有查询优化修补程序(Query Optimizer Fixes configuration option)。这个配置选项启用或停用一些特定的查询修补程序,它用来代替跟踪标记4199。

小结

我真的很喜欢数据库范围内的配置!尤其是MAXDOP选项。对于Sharepoint来说,它是个巨大的优势,如果我们只针对运行Sharepoint的特定数据库使用1的MAXDOP,剩下的一切会比配置实例的MAXDOP好很多。

对于这些新的配置选项,你觉得如何?喜欢它们么?请尽情留言。

(0)

相关推荐

  • SQL Server 2016正式版安装配置过程图文详解

    本文针对SQL 2016 正式版安装过程进行梳理总结,帮助大家顺利安装SQL 2016,具体内容如下 1.点击全新安装 2.接着就是下一步,下一步... 3.选择你要安装的功能 [可以利用PolyBase,使用标准TSQL查询hadoop数据,但这里我不需要装] 4.设置排序规则 5.设置登录用户 6.临时数据库配置[SQL Server 2016:可以根据逻辑CPU数量来调整tempdb的数据文件数量] 7.数据库安装完成后,点击安装管理工具 8.管理工具要从官网去下载[https://msd

  • SQL Server 2016 无域群集配置 AlwaysON 可用性组图文教程

    windows server 2016 与 sql server 2016 都可用允许不许要加入AD ,管理方面省了挺多操作,也不用担心域控出现问题影响各服务器了. 本测试版本: window server 2016 datacenter + sql server 2016 ctp IP规划: 主机名 IP 说明 ad 192.168.2.2 域服务器(kk.com)windows xp Server131 192.168.2.131 节点 Server132 192.168.2.132 节点

  • SQL Server 2016 配置 SA 登录教程

    tips:在win10中查找SQL Server 2016配置管理器,用来开启SQL Server网络配置,启用实例TCP/IP协议和Name PiPe. Windows 10: 要打开 SQL Server 配置管理器,请在"起始页"中键入 SQLServerManager13.msc(适用于 SQL Server 2016). 对于早期版本的 SQL Server ,请将 13 替换为较小的数字. 单击"SQLServerManager13.msc"可打开配置管

  • SQL Server2016正式版安装配置方法图文教程

    安装SQL Server2016正式版 今天终于有时间安装SQL Server2016正式版,下载那个安装包都用了一个星期 安装包可以从这里下载:http://www.itellyou.cn/ https://msdn.microsoft.com/zh-cn/subscriptions/downloads/hh442898.aspx 安装环境 hyper-v虚拟机 Windows2012R2数据中心版 打开安装包可以看到现在SQL 引擎功能和SSMS已经独立分开安装了 只支持64位 功能选择里多

  • Sql Server2016 正式版安装程序图解教程

    好不容易有个周末,不能闲着,趁着这个时间安装sql server2016正式版,下载那个安装包都用了一个星期 安装包可以从这里下载:http://www.itellyou.cn/ https://msdn.microsoft.com/zh-cn/subscriptions/downloads/hh442898.aspx 安装环境 hyper-v虚拟机 Windows2012R2数据中心版 打开安装包可以看到现在SQL 引擎功能和SSMS已经独立分开安装了 只支持64位 功能选择里多出来的R Se

  • SQL Server 2016 查询存储性能优化小结

    作为一个DBA,排除SQL Server问题是我们的职责之一,每个月都有很多人给我们带来各种不能解释却要解决的性能问题. 我就多次听到,以前的SQL Server的性能问题都还好且在正常范围内,但现在一切已经改变,SQL Server开始糟糕, 疯狂的事情不能解释.在这个情况下我介入,分析下整个SQL Server的安装,最后用一些神奇的调查方法找出性能问题的根源. 但很多时候问题的根源是一样的:所谓的计划回归(Plan Regression),即特定查询的执行计划已经改变.昨天SQL Serv

  • SQL Server 2016的数据库范围内的配置详解

    SQL Server 2016真的让人眼前一亮.几天前微软就提供了RCO(候选发布版)版本的下载.我已经围观了一圈RCO版本,其中一个最拽的功能是数据库范围内的配置(Database Scoped Configuration),在今天的文章里我想谈谈它.补充几句:装好之后,居然发现没有SSMS,崩溃中,原来是在向导中就有独立的安装程序,好吧! 这配色,真是低调有内涵. 另外,如过你的电脑已经安装了就[Microsoft Visual Studio 2010 Shell(独立)Redistribu

  • SQL Server中通用数据库角色权限的处理详解

    前言 安全性是所有数据库管理系统的一个重要特征.理解安全性问题是理解数据库管理系统安全性机制的前提. 最近和同事在做数据库权限清理的事情,主要是删除一些账号:取消一些账号的较大的权限等,例如,有一些有db_owner权限,我们取消账号的数据库角色db_owner,授予最低要求的相关权限.但是这种工作完全是一个体力活,而且是吃力不讨好,而且推进很慢.另外,为了管理方便和细化,我们又在常用的数据库角色外,新增了6个通用的数据库角色. 如下截图所示. 另外,为了减少授权工作量和一些重复的体力活,我们创

  • SQL Server使用脚本实现自动备份的思路详解

    因服务器安装的SQL Server版本不支持自动定时备份,需自行实现,大概思路为: 创建备份数据库的脚本 创建批处理脚本执行步骤一中的脚本 创建Windows定时任务执行步骤二中的脚本 1. 创建SQL脚本 新建db_backup.sql文件,填入以下内容. -- 定义需要备份的数据库 DECLARE @backupDatabase VARCHAR(20) = 'DB_NAME' -- 定义数据库备份文件存放的基础路径 DECLARE @backupBasePath VARCHAR(MAX) =

  • SQL Server 树形表非循环递归查询的实例详解

    很多人可能想要查询整个树形表关联的内容都会通过循环递归来查...事实上在微软在SQL2005或以上版本就能用别的语法进行查询,下面是示例. --通过子节点查询父节点 WITH TREE AS( SELECT * FROM Areas WHERE id = 6 -- 要查询的子 id UNION ALL SELECT Areas.* FROM Areas, TREE WHERE TREE.PId = Areas.Id ) SELECT Area FROM TREE --通过父节点查询子节点 WIT

  • SQL SERVER 2012新增函数之逻辑函数CHOOSE详解

    SQL SERVER 2012中新增了CHOOSE,该函数可以从值列表返回指定索引处的项. 例如: select CHOOSE(3,'A','B','C','D') as R1 /* R1 ---- C */ CHOOSE并不能这么用,例如有个字符串'A,B,C,D',我们并不能用choose得到其中的某个值: select choose(2,'A,B,C,D') /* null */ CHOOSE的主要功能和CASE WHEN类似,例如数据库中有字段Sex:1表示男,2表示女. if obje

  • SQL Server CROSS APPLY和OUTER APPLY的应用详解

    SQL Server数据库操作中,在2005以上的版本新增加了一个APPLY表运算符的功能.新增的APPLY表运算符把右表表达式应用到左表表达式中的每一行.它不像JOIN那样先计算那个表表达式都可以,APPLY必选先逻辑地计算左表达式.这种计算输入的逻辑顺序允许吧右表达式关联到左表表达式. APPLY有两种形式,一个是OUTER APPLY,一个是CROSS APPLY,区别在于指定OUTER,意味着结果集中将包含使右表表达式为空的左表表达式中的行,而指定CROSS,则相反,结果集中不包含使右表

  • SQL Server 2008 R2:error 26 开启远程连接详解

    在学习ASP.NET 过程用到新建数据集并远程连接sql server 2008 数据库,出现下面的错误: <--在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.    未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接.     (provider: SQL Network Interfaces, error: 26 - 定位指定的服务器/实例时出错)--> 因为sql server 2008默认是不允许远程连接的,sa帐

  • SQL Server如何通过创建临时表遍历更新数据详解

    前言: 前段时间新项目上线为了赶进度很多模块的功能都没有经过详细的测试导致了生成环境中的数据和实际数据对不上,因此需要自己手写一个数据库脚本来更新下之前的数据.(线上数据库用是SQL Server2012)关于数据统计汇总的问题肯定会用到遍历统计汇总,那么问题来了数据库中如何遍历呢?好像并没有for和foreach这种类型的功能呀,不过关于数据库遍历最常见的方法当然是大家经常会想到的游标啦,但是这次我并没有使用游标,而是通过创建临时表的方式来更新遍历数据的. 为什么不使用游标,而使用创建临时表?

  • SQL Server中row_number函数的常见用法示例详解

    一.SQL Server Row_number函数简介 ROW_NUMBER()是一个Window函数,它为结果集的分区中的每一行分配一个连续的整数. 行号以每个分区中第一行的行号开头. 以下是ROW_NUMBER()函数的语法实例: select *,row_number() over(partition by column1 order by column2) as n from tablename 在上面语法中: PARTITION BY子句将结果集划分为分区. ROW_NUMBER()函

  • SQL Server实现自动循环归档分区数据脚本详解

    概述 大家应该都知道在很多业务场景下我们需要对一些记录量比较大的表进行分区,同时为了保证性能需要将一些旧的数据进行归档.在分区表很多的情况下如果每一次归档都需要人工干预的话工程量是比较大的而且也容易发生纰漏.接下来分享一个自己编写的自动归档分区数据的脚本,原理是分区表和归档表使用相同的分区方案,循环利用当前的文件组,话不多说了,来一起看看详细的介绍吧. 一.创建测试数据 ----01创建文件组 USE [master] GO ALTER DATABASE [chenmh] ADD FILEGRO

随机推荐