本着一些以前的问题,他们问为什么比以前的版本更喜欢各种新版本的SQL Server,有哪些客观的技术或业务原因?一家公司可能考虑将SQL Server 2016升级到早期版本,甚至升级到更高版本(例如SQL Server 2014)?
(关于SQL Server 2012的问题与SQL Server 2008相比,还是这个问题?关于SQL Server 2012与SQL Server 2005的比较是这个问题的精神示例,针对这些问题的答案还扩展了一些开始使用SQL Server 2008或SQL Server 2005的公司的原因(
#1 楼
有很多理由考虑升级到SQL Server2016。在大多数情况下,这些原因因所使用的SQL Server版本而异。这并不是一个详尽的清单,但我会给出一些想到的理由。包括一个我们刚刚在2016年11月从SQL Server 2016 SP1发行版中学到的重要原因。希望看到我错过的扩展或功能的其他答案。重要原因:现在标准版中提供了许多功能
2016年11月16日,Microsoft宣布发布SQL Server 2016 Service Pack1。除此声明外,他们还宣布SQL Server的所有版本-Standard,Express(除企业版外,还包括Web。
对于开发和销售具有SQL Server后端软件的软件供应商来说,这应该是升级的非常有说服力的理由-现在可以使用许多功能了他们的客户,而不管其SQL Server的许可版本如何。对于必须保持审计或其他随时间推移已添加到产品中的安全性增强功能的行业中的公司来说,这也很引人注目。
我谦虚地认为,在使用SQL Server的17年中,这使得SQL Server 2016 SP1自从我开始在6.5版中使用SQL Server以来,这可能是最引人注目的升级。 (不要误会我的意思,2000、2005和2012年也有自己的时代优势!)
请看下面的列表,但它只是您现在可以在Standard中使用的某些功能的快速示例此版本具有以下功能:压缩,更改数据捕获,细粒度审核,行级安全性,始终加密,分区,数据库快照,内存中OLTP,列存储。
使用SQL Server 2016新功能的特殊原因
我试图将本节中的原因保留为仅在SQL Server 2016中引入的功能。我还仅在此答案中描述核心引擎增强功能,而不是报告,分析,数据集成等。
与安全性相关的
行级安全性-我希望许多客户能够在服务器上实现安全性逐行“用户x可以查看此行而不是该行的数据”。这些客户端中的许多客户端已经创建了功能和/或基于复杂视图的结构来完成此任务。在SQL Server 2016中,内置谓词和安全策略可在此处提供帮助。您可以在此处了解有关RLS的更多信息。
动态数据屏蔽-在纸上听起来不错,但我想知道它是否会比安全领域中的其他两项更改有用。基本上,您可以基于调用者的权限在查询时动态掩盖或混淆数据。要混淆的数据量是可编程的。例如,在Microsoft使用的示例中,您可以屏蔽除信用卡号的最后四位以外的所有数字,以便呼叫中心中的呼叫接受者可以验证这些最后四位。您可以在此处了解更多信息。
始终加密-也许您听说过有关透明数据加密的某些缺陷或担忧。也许您不想使用TDE,因为担心拥有SA访问权限的人一定可以根据需要解密。始终加密是作为一项功能发布的,该功能将解密/加密功能置于调用SQL Server的应用程序的手中。 SQL Server中的静态数据已加密。这种方法的结果是,前往SQL Server的飞行数据也被加密。您可以在此处阅读有关始终加密的更多信息。
HA / DR功能
这里有一些功能。一种是可以使用SQL Server Standard中的Always On可用性组-基本可用性组。这是必需的,因为不建议使用镜像,并且无法替换。功能限于副本数和同步方法。您可以在此处了解更多信息。
这不是对可用性组的唯一更改(顺便说一句,它是在SQL Server 2012中引入的)。还有其他一些更改(您可以在此处看到包含其他更改的链接的详尽列表):
支持组托管服务帐户。
支持分布式事务(有一些警告) 。
读取意图连接可以在只读副本之间实现负载平衡。
现在三个副本可以参与自动故障转移。
加密的数据库现在可以加入AlwaysOn可用性组。
性能改进-SQL Server 2016主题的一部分是“这只是更快”-这是Microsoft Marketing的自旋,但正在市场中得到证明。对可用性组性能进行了一些改进。
安装程序修复了一些常见错误
从SQL Server 2016开始的SQL Server安装程序修复了在配置TempDB时犯的一些常见错误。设置GUI现在可以指导您完成最佳实践配置。
查询存储
是SQL Server MVP和调谐器中的最爱。此功能是一种工具,可让您深入了解引擎如何执行查询。在跟踪由查询计划随时间变化引起的性能问题时特别有用。这可以是查看的工具,也可以是修复的工具。帮助简化一些性能调整概念。您可以在此处了解更多信息。
临时表
我经常需要问一个问题,例如“这样的日期数据看起来像是什么”。临时表是执行此操作的一种方法。肯定有一些仓储用例。在此处查看更多信息。
Columnstore的改进
对我来说还有三大改进。一种是可更新的非集群列存储索引。 SQL Server 2014为我们提供了可更新的群集,但是现在我们有了可更新的非群集。 SQL Server 2016还允许在内存中OLTP表上使用列存储索引。 SQL Server 2016现在具有将传统的B树非聚集索引放置在群集的列存储索引上的功能。
内存中OLTP的其他功能改进
内部不支持的一些功能现在可以使用In-Memory表或本机编译过程。一些附加功能(但请参阅本文,更多内容):UNIQUE约束,检查约束,DML中的OUTPUT子句,外部联接,选择列表中的子查询,SELECT DISTINCT,UNION / UNION ALL等。
常规性能改进
SQL Server 2014与每个版本一样,在几个关键领域对性能进行了一些改进。 SQL Server 2016在整个产品中进行了其他关键增强。这包括为许多客户消除因基数估算器更改而升级到SQL Server 2014时有时会遇到的某些痛苦。为了提高日常性能,对引擎进行了几次上下调整。微软的CSS团队一直在他们的博客上写博客。您可以只搜索“ SQL Server 2016,它运行得更快”。该系列的示例博客文章在这里。
我已经在升级过的客户中看到了这种情况,并希望越来越多地看到它。
一些缺点
显然存在缺点任何升级。可能是因为我这样做是为了以顾问为生,但我认为缺点都是难以置信的,因此,我只是考虑将它们“首先考虑成本”的注意事项并加以管理。
常规升级-常规升级意味着您要引入新功能。您需要能够对其进行测试。在SQL Server的版本之间,不赞成使用各种功能。这并不意味着它们会立即消失,而是意味着它们可以在将来的版本(通常是三个版本)中使用。例如,如果您来自以SQL Server 2000兼容模式运行的数据库,则不支持TEXT数据类型或使用
*=
或=*
语法在where子句中进行外部联接。说到兼容模式,它们也只返回三个版本。因此,如果您的数据库以80(SQL Server 2000)或90(SQL Server 2005)兼容模式运行,则它们无法像这样进入SQL Server 2016。因此,如果您一直在避免进行该测试并偷偷摸摸地进行兼容性级别测试,那么该考虑一下了。再次。那是简单的东西。有一些工具可以帮助捕获和测试数据以查看中断。有perfmon计数器可以帮助您查找不推荐使用的功能。
许可-这里有两件事:
基于核心-如果您习惯使用SQL Server 2012许可条款,那么CPU许可就是这样-CPU许可证。从SQL Server 2012开始,基于CPU的许可证一直基于核心。因此,那里有一个调整期。另外,新许可证的企业版(某些例外情况是在2012年首次推出时做出的)必须在核心级别上获得许可-企业没有服务器+ CAL。我在这里谈到的SP1允许非企业SKU中的企业功能。如果您需要超过128GB的RAM。如果需要高级扫描,可以提高性能。如果您需要32GB以上的RAM用于列存储或In-Memory,那么您正在寻找Enterprise。如果没有而且您不需要在线索引重建吗? Standard可能只适合您,而现在有了新可用的功能,现在可能更适合您。
软件保障(SA)-如果您不购买SA,则必须购买新的软件。因此,如果您正在运行SQL Server 2005,并且担心自己脱离主流支持,离扩展支持的末尾并不遥远,并且希望拥有现在可用的功能,则不能像Service Pack那样升级。如果您从未购买过SA,那么您的升级就是新购买的产品。没关系,这确实值得。但这是必须要花费的预算。
摘要
还有更多原因,例如JSON支持,R的引入等。但这只是我会选择的一些原因。考虑升级。同样,最重要的一项是能够在Standard甚至Express中使用许多以前仅企业版的功能。我已经在客户中看到了很多成功的故事,并且希望看到更多。
如果您使用的是SQL Server 2005或2008,则列表甚至更大。 AlwaysOn可用性组于2012年问世,SQL Server 2012中的列存储索引,SQL Server 2014中的内存中OLTP等。
更不用说如果您仍然使用SQL Server 2005或2008,那么您将失去主流支持。
评论
所有这些+真正的业务原因-最长的生命周期。仍在使用SQL2000的人无法升级Windows,旧的Windows未安装在新服务器上,所有这些问题都在逐一增加。对于业务-JSON等,它只是IT玩具...停止支持他们理解
–a_vlad
16-11-21在11:23