有哪些客观原因会首选SQL Server 2016而不是早期版本?


29

自从SQL Server 2005或2008年以来,由于Microsoft更加频繁地进行SQL Server版本升级,因此许多公司发现很难确定何时必须进行升级!而升级是“不错的选择”

本着一些以前的问题的精神,他们问为什么比以前的版本更喜欢各种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开始的公司)

Answers:


36

有很多理由考虑升级到SQL Server2016。在大多数情况下,这些原因因所使用的SQL Server版本而异。这并不是一个详尽的清单,但我会给出一些想到的理由。包括我们刚刚从2016年11月发布的SQL Server 2016 SP1中学到的一个非常重要的原因。我们期待看到其他有关扩展或功能我错过的答案。

主要原因:标准版现在提供了许多功能

2016年11月16日,Microsoft宣布发布了SQL Server 2016 Service Pack1。除此声明外,他们还宣布,以前为Enterprise Edition客户保留的许多功能将在SQL Server的所有版本中提供-Standard,Express(with少数例外),除了Enterprise Edition之外的Web。

对于开发和销售具有SQL Server后端软件的软件供应商来说,这应该成为升级的一个非常有说服力的理由–现在,无论客户的SQL Server许可版本如何,许多功能都可以供其客户使用。对于必须保持审计或随着时间的推移已添加到产品中的其他安全性增强功能的行业中的公司,这也很有吸引力。

以我的拙见,在使用SQL Server的17年中,这使SQL Server 2016 SP1成为自我从6.5版开始使用SQL Server以来最引人注目的升级。(不要误会我的意思,2000年,2005年和2012年也有自己的时代优势!)

请看下面的列表,但是作为您现在可以在Standard Edition中使用的某些功能的快速示例,您具有以下功能:压缩,更改数据捕获,细粒度审核,行级安全性,始终加密,分区,数据库快照,内存中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中引入的)。还有其他一些更改(您可以在此处看到包含其他更改链接的详尽列表):

  1. 支持组托管服务帐户。
  2. 支持分布式事务(有一些警告)。
  3. 可以在只读副本之间平衡读意图连接。
  4. 现在,三个副本可以参与自动故障转移。
  5. 加密的数据库现在可以参与“始终在线”可用性组。
  6. 性能改进-这是SQL Server 2016主题的一部分,“它只是更快”-这是Microsoft Marketing的一环,但在市场上得到了证明。可用性组性能进行了一些改进。

安装程序修复了一些常见的错误

从SQL Server 2016开始的SQL Server安装程序修复了配置TempDB时犯的一些常见错误。设置GUI现在会指导您完成最佳实践配置。

查询存储

SQL Server MVP和调谐器中的最爱。此功能是一种工具,可让您深入了解引擎如何执行查询。在跟踪由查询计划随时间变化引起的性能问题时特别有用。这可以是查看的工具,也可以是修复的工具。帮助简化一些性能调整概念。您可以在此处阅读更多有关此内容的信息

时间表

我经常看到有必要提出这样的问题:“截至目前为止,这些数据看起来是什么样的”。临时表是执行此操作的一种方法。肯定有一些仓储用例。在这里查看更多。

列存储改进

这对我来说是三大改进。一种是可更新的非聚集列存储索引。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的版本之间,不建议使用各种功能。这并不意味着它们会立即消失,而是意味着它们可以在将来的版本(通常是三个版本)中使用。例如文本数据类型,或做外连接与在where子句中*==*如果您来自以SQL Server 2000兼容模式运行的数据库,则不支持语法。说到兼容模式,它们也只返回三个版本。因此,如果您的数据库以80(SQL Server 2000)或90(SQL Server 2005)兼容模式运行,则它们不能像这样进入SQL Server 2016。因此,如果您一直在避免进行该测试并偷偷摸摸地进行兼容性级别测试,那么该考虑一下了。

再次。那是简单的东西。有一些工具可以帮助捕获和测试数据以查看中断。有perfmon计数器可以帮助查找已过时的功能。

许可 -这里有两件事:

  1. 基于核心-如果您习惯使用SQL Server 2012许可条款,则CPU许可就是CPU许可。从SQL Server 2012开始,基于CPU的许可证一直基于核心。因此,那里有一个调整期。也是企业的(2012年,当第一个推出了作了一些例外)新许可证必须在核心级别获得许可-企业无需服务器+ CAL。我所说的关于SP1的一线曙光就是我所说的,SP1允许非企业SKU中的企业功能。如果您需要超过128GB的RAM。如果需要高级扫描,可以提高性能。如果您需要32GB以上的RAM用于列存储或In-Memory,那么您正在寻找Enterprise。如果没有 而且您不需要在线索引重建吗?标准版可能只适合您,而现在有了这些新提供的功能,它可能更适合您。
  2. 软件保障(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,那么您将失去主流支持。


2
所有这些+真正的业务原因-最长的生命周期。仍在使用SQL2000的人无法升级Windows,旧的Windows未安装在新服务器上,所有这些问题都在逐一增加。对于业务
-JSON
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.