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里引入的新的参数估计。这是个新的配置选项,以前可以通过来实现。
maxdop选项就不用解释了!终于你可以在数据库级别控制maxdop!这真的太拽了!尤其对于sharepoint。我来看看sharepoint的后续版本会不会支持数据库级别的maxdop...对了,我已经很期待在数据库级别1的maxdop的数据库,来回避可恶的cxpacket等待。
参数探查(parameter sniffing)!微软称它为特色,我叫它为bug,通常来说参数探查是个好事,因为查询优化器基于你首次提供的输入值来编译查询计划。这很棒,但缺点是生成的查询计划对提供输入参数敏感,且只对那些参数进行优化。如果你后来用不同的参数值重用缓存的查询计划,就会影响你的性能。
只用这个配置选项,现在你可以控制查询优化器是否使用参数探查。它可以用来替换。如果你禁用参数探查,当你使用optimize for unknown查询提示时,sql server内部使用同样的行为——它不会给你
最后你有查询优化修补程序(query optimizer fixes configuration option)。这个配置选项启用或停用一些特定的查询修补程序,它用来代替跟踪标记4199。
小结
我真的很喜欢数据库范围内的配置!尤其是maxdop选项。对于sharepoint来说,它是个巨大的优势,如果我们只针对运行sharepoint的特定数据库使用1的maxdop,剩下的一切会比配置实例的maxdop好很多。
对于这些新的配置选项,你觉得如何?喜欢它们么?请尽情留言。
上一篇: SQL Server查看未释放游标的方法
下一篇: SQL语句性能优化(续)