SQL Server 2014将踏板推向极致

SQL Server 2014是一个重要的发布,它有两个主题:云计算和速度——或者,更具体地说,Azure集成和内存内OLTP(在线事务处理)。说实话,比起云计算,我对它的速度特性更感兴趣,但我也明白有越来越多的用户正在朝这个方向发展基于云计算的业务,这些商店会发现云功能很有用。

对于所有的SQL Server的商店,我不认为我们已经看到了一个版本以来的SQL Server 2008 RTM这个显著。回过头来看,你可能还记得,SQL Server 2008中带来的变化数据捕捉,数据压缩,也是最重要的,PowerShell的。然后,SQL Server 2008 R2中给我们带来的PowerPivot插件自助式BI,用的StreamInsight和主数据服务一起。SQL Server 2012中给了我们可用性组,列存储索引和几个T-SQL增强。你可能SQL Server 2008作为数据仓库版本,SQL Server 2008 R2中的BI版本和SQL Server 2012归类为HA释放。

SQL Server 2014增强了许多这方面的功能,包括可用性组和columnstore索引,以及安全性(加密备份)等。本文的重点将放在云计算和性能特性上。

Azure上的数据库

SQL服务器2014有两种方式与Azure存储工作。首先,你可以将数据库备份到Azure的Blob存储。虽然这个功能(官方称为SQL Server备份到URL)在2012年推出时,它会在SQL Server 2014的SQL Server管理的备份到Windows Azure升压 - 或者干脆托管备份,因为它只与Azure的工作在这一点上。托管备份很好地命名,是因为它的字面管理您的备份你。SQL服务器会保留期和您的交易工作负载,计算出的最佳时机是采取备份,并且只为您代劳。您可以在实例级别或数据库级别设置它,所以你必须体面地控制哪些数据库被备份到云中。

虽然管理的备份可以帮助简化您的备份策略,尤其是对小商店没有一个专职的DBA,这里有几个注意事项。首先,你必须要小心,你在互联网上推动数据库的大小。一旦你到野外你在这个成功将在很大程度上取决于你的连接,并在任意数量的其他因素。您可能会看到间歇性的性能问题。

其次,你需要留意你的使用情况。如果你的数据库变得太大,或者如果有人在服务器上丢弃了一个大数据库,并且它被备份到云上,你可能会破坏你的服务协议,最终为存储支付比你预期多得多的钱。也就是说,对于较小的数据库,托管备份是在场外发送磁带的理想替代品。

备份并不是Azure在SQL Server中扮演的唯一角色。您还可以将Windows Azure VM定义为可用性组的辅助副本。对于需要可靠的HA解决方案但又没有第二个数据中心可依赖的企业来说,这是一个很好的选择。2020欧洲杯预赛SQL Server甚至为您提供了一个向导来帮助安装。这个特性有一些硬性的先决条件,比如在你的本地子网和Azure之间的站点到站点的VPN,所以在你赌上全部赌注之前,请确保你的基础设施团队能够实现它。

另外一个值得了解的Azure特性是Windows Azure中的SQL Server数据文件。名字越来越长了,不是吗?我更兴奋这个特性,它允许您创建一个本地数据库和存储Azure blob存储上的文件,因为它是如此开放的滥用(通过商店将竭尽全力运行巨大数据库的事务工作负载从云),但在某些情况下我能看到一些好处。

例如,当您在本地服务器上创建数据库时,通常将数据库文件存储在本地存储或SAN上。Windows Azure中的数据文件允许您将文件放在Azure存储中url可访问的位置。如果您最终要从一个服务器迁移到另一个服务器,这可能是有益的,因为您只需将数据库文件附加到新服务器—不涉及数据移动。这意味着您不必担心在出现故障后恢复数据库,或跨网络复制文件,或等待4个小时以使您的磁带现场返回。blob存储始终在那里。

对于一些商店,数据文件在Windows Azure中可能是他们的灾难恢复策略的关键部分。它是用于管理内部部署的SQL Server的各个方面真正的混合场景下,但实际数据驻留在云中。它也为您提供了高可用性,您不必管理。不幸的是,它也让你的数据库在退潮的怜悯和互联网的流量。故障排除数据库的性能是比较复杂的,因为你不知道是否有本地服务器,索引,查询,或互联网的问题做。我们必须现在连接在局域网多年数据库文件的能力,以及它已经气馁出于性能的考虑。我有一个很难相信,加入开放的Internet上的公式突然一个好主意。

满足对速度的需求

如今,即使是最小的在线创业公司也会立即进入全球市场,并发现自己被服务器请求淹没。说到性能,微软已经为这个版本准备了一些不错的功能来迎接挑战。

我们将与我所认为的是SQL服务器2014年,Hekaton的主打功能启动。它的内存优化表微软的味道:所有你需要做的就是定义一个表为内存优化,发动机将完成剩余的工作。不像其他的内存数据库解决方案,Hekaton使您能够以单独的表到内存中,而不是整个数据库。在此之前,一个更现实的业务场景太多,因为你通常只需要这种刺激的表了一把,并迫使整个数据库到内存中的几桌的缘故是没有很好的利用资源。

Hekaton通过优化算法、乐观并发性、消除物理锁和锁存,以及将表存储在内存中的组合实现了turbo boost。如果您的存储过程只针对内存优化表,那么您可以将它们转换为Hekaton过程以获得更高的速度。这会将它们编译成本地C代码,从而优化它们的效率。

对于可以转换的对象类型有一定的限制,因此在完全使用这种解决方案之前,您应该仔细阅读并测试您的代码。举个简单的例子,优化的存储过程不能包含游标、子查询,甚至不能包含cte(公共表表达式)。这些只是长长的列表中的几个例子,所以你需要做功课;还需要数据库和表。鉴于这是一个全新的特性,我希望这些限制会随着时间的推移而逐渐减少。

我们这里说的速度是多少?它是否足以使转换变得有价值?我见过一些非常令人印象深刻的演示,微软的网站号称性能提高了10到30倍。当然,确切的速度取决于许多因素,但从我在演示和我自己的测试中所看到的,这些都是现实的数字。实际情况是,如果您有一个高度事务性的OLTP场景,并且它满足Hekaton的需求,那么您将坠入爱河。

SQL Server 2012中引入的列存储索引显着仓库的性能。我亲自看到了几分钟与传统的指数与另外一列存储索引减少到秒级次的查询。问题是,列存储索引是不可更新。为了加载数据到表中,您必须首先删除索引,并随后重新创建它们。SQL服务器2014已经通过使列存储索引更新解决了这个问题 - 不错的工作,微软。

我总是告诉我的年轻dba,解决瓶颈只有两种方法:要么减少工作负载,要么增加吞吐量。前面的特性处理吞吐量,下面两个特性处理工作负载。

资源调控终于获得了物理I / O控制。磁盘是经常任何给定系统上的瓶颈,因为它是用移动机械部件的一个组成部分。很多时候,磁盘得到过度劳累,因为一些流氓查询吸干多余吨I / O对磁盘的。事实上,我见过的查询拉动数十亿数十亿时的IOPS放倒仓库。现在你终于可以把查询到自己的资源池,并限制他们允许的I / O每单位体积的量。这意味着没有更多离谱的查询占用了所有您宝贵的磁盘资源。减少磁盘系统上的I / O量可能对整体性能产生巨大的影响。

采取一个快捷方式

下一个特性称为延迟持久性,它实际上不会加速数据库,但从最终用户的角度来看,它使数据库看起来更快。让我们通过一个典型的事务(简化的)来说明这一点。

假设最终用户更新了一条记录。首先将更新写入内存中的日志,然后将日志条目写入磁盘。将日志条目写入磁盘后,应用程序被告知事务已经完成,用户可以继续工作。对数据库的实际更新将在稍后的某个时候在幕后进行。现在,通过延迟持久性,应用程序被告知事务在日志写到磁盘之前已经完成。这意味着最终用户不必等待事务对慢得多的磁盘介质进行硬化,然后才能继续工作。我曾见过许多日志成为瓶颈的系统,延迟的持久性无疑可以帮助解决这个问题。

但正如我所说的,延迟耐久性根本不会减少工作负载。过去可以做的事情现在还在做。数据库引擎只是比以前更早地将控制权释放给客户机,因此最终用户可以更快地返回工作。这个特性也是可配置的——您可以在数据库级别、事务级别,甚至在原子块级别(对于整个存储过程)控制它。不过,在考虑这个特性时要小心。如果您的系统在这些事务硬化到磁盘之前出现故障,那么您将失去它们。这就是持久性的含义:事务是可恢复的。如果您延迟事务的持久性以获得更好的客户端响应时间,请注意可能会丢失一些数据。

最后,SQL Server 2014带来了两项安全增强。当然,我们现在有了备份加密,这是在第三方备份产品的棺材上又钉了一颗钉子。最后一根钉子将是对象级恢复。还有两个新的服务器级权限——连接任何用户数据库并选择所有用户安全性——允许您比以往任何时候都更容易管理安全性。原因是您可以为所有当前和将来的数据库分配一次这些权限。随着数据库的来来去去,您不再需要一直分配这些权限。

SQL Server 2014是一个很好的混合了新特性和对现有特性的增强的可靠版本。虽然我个人对云计算的特性并不感兴趣,但我对微软在OLTP上所做的工作感到非常兴奋,这个故事肯定会变得更好。Hekaton在这个版本中是全新的,所以您可以预期,在随后的版本中,一些限制将开始消失。

我还没有提到所有的新功能。对于一些好的实用读物,我建议查找缓冲池的扩展,增量数据,管理在线操作的锁优先级。所有这些都可能对系统性能产生重大影响。然而,还值得注意的是,集成服务、报表服务和复制在这个版本中根本没有得到任何增强,虽然有一些微小的T-SQL增强,但不会改变dba或开发人员的工作方式。

尽管如此,SQL Server 2014还是提供了许多提高性能的方法,以及利用Azure云进行备份和高可用性的几种方法。解决这些问题的SQL Server商店应该仔细研究一下这个版本。

这篇文章,“SQL Server 2014把踏板推到极限”最初是由由信息世界

加入对网络世界的社足球竞猜app软件区脸谱网LinkedIn对最重要的话题发表评论。
相关:

版权©2014足球竞彩网下载

IT薪资调查:结果在