写点什么

使用内存技术提升 Azure SQL 数据库的性能

  • 2017-02-06
  • 本文字数:1385 字

    阅读完需:约 5 分钟

2016 年年末,Microsoft发布了Azure SQL 数据库内存技术通用版。该内存处理技术仅能在Azure Premium 数据库层使用,它提升了联机事务处理(OLTP)以及混合事务分析处理场景中聚集列存储索引和非聚集列存储索引的性能。

Azure SQL 数据库与 SQL Server 数据库使用了同样的内存技术。之前,Microsoft 首先分别在 SQL Server 2012 和 SQL Server 2014 的列存储索引及联机事务处理中引入了内存能力。

Microsoft 声称通过内存技术联机事务处理的性能最高可以提升 30%,分析工作负载最高可以快 100x ,非常适合于寻找以下内存用例的组织:

得益于内存技术所带来的更加有效的查询和事务处理,组织不需要修改服务层就能获得一定的伸缩空间;除此之外,内存技术还能帮助组织降低成本。通常情况下,组织不需要升级数据库的定价层就能实现性能提升。在某些情况下,甚至降低定价层依然可以实现性能提升。

Microsoft 认为在 Azure SQL 数据库中使用内存技术有以下好处

  • 内存联机事务处理可提升吞吐量并降低事务处理的延迟。
  • 聚集列存储索引可减少存储占用(高达 10 倍)并提升报告和分析查询的性能。将其与数据集市中的事实数据表结合使用,可在数据库中容纳更多数据并提升性能。将其与操作数据库中的历史数据结合使用,可存档并查询高达 10 倍的额外数据。
  • 用于混合事务分析处理 (HTAP) 的非聚集列存储索引可以让用户直接查询操作数据库以获取实时的业务见解,无需运行昂贵的抽取、转换、加载(ETL)过程,无需等待数据仓库填充。通过非聚集列存储索引可以对联机事务处理数据库执行快速地分析查询,同时减少对运行负载的影响。
  • 用户还可以将内存联机事务处理和列存储索引结合到一起使用。可以使用具有列存储索引的内存优化表,以便于快速地对相同数据执行事务处理并运行分析查询。

在最近的一个Data Exposed 演讲中,来自于Microsoft 的高级技术布道者Scott Klein 和高级项目经理Jos de Bruijn 展示了一个使用Azure SQL 数据库内存处理的范例。他们构建了一个可以模拟物联网设备遥测输入的应用程序。在该示例中,他们模拟了一个100 万电表同时向数据库发送用电信息的场景,示例开始的时候Azure SQL 数据库并没有启用内存对象,结果CPU 和Log IO 承受了非常大的压力,CPU 占用率徘徊在89% 左右,Log IO 占用率达到了86%。在启用了内存对象优化之后,CPU 占用率降到了10.47%,Log IO 占用率降到了34%。

图片源: (屏幕截图) https://channel9.msdn.com/Shows/Data-Exposed/In-Memory-OTLP-in-Azure-SQL-DB

在遇到性能压力的时候,开发者可能会想提升 Azure SQL 数据库的吞吐量单位(DTU)。现在,面对性能挑战的时候,人们的答案可能是优化而不是扩展。Quorum Business Solutions 公司的解决方案架构师 Mark Freydl 解释道

我们针对石油和天然气的物联网平台全年必须保持 7*24 小时运行,因此性能可扩展是非常关键的。Azure SQL 数据库为少数关键操作所提供的内存联机事务处理表和本地编译的存储过程可立即将总体 DTU 消耗降低 70%。

除了物联网遥测示例之外,Microsoft 还提到了一些其他的可使用内存处理的场景,包括金融交易、游戏、ASP.NET 会话管理、Tempdb 替代以及避免无效的抽取转换加载操作。

图片源: (屏幕截图) https://channel9.msdn.com/Shows/Data-Exposed/In-Memory-OTLP-in-Azure-SQL-DB

查看英文原文 Improving Azure SQL Database Performance Using In-Memory Technologies

2017-02-06 18:001318
用户头像

发布了 321 篇内容, 共 112.9 次阅读, 收获喜欢 17 次。

关注

评论

发布
暂无评论
发现更多内容

《从0到1学习Flink》—— Flink JobManager 高可用性配置

zhisheng

大数据 flink 流计算

《从0到1学习Flink》—— 你上传的 jar 包藏到哪里去了?

zhisheng

大数据 flink 流计算

如果你想做汽车开发,请先看看这篇。

水滴

自动驾驶 软件开发 开发

《从0到1学习Flink》—— Flink 项目如何运行?

zhisheng

大数据 flink 流计算

【迁移】撸论文系列之——Bigtable

罗琦

论文阅读 bigtable

Deno会在短期内取代Node吗?

葡萄城技术团队

node.js SpreadJS deno

聊一聊采访外籍人员时需要注意的几点事项

李冬梅

态度 体验 感悟

【迁移】读完了GFS论文之后的感悟

罗琦

大数据 GFS 论文阅读

《从0到1学习Flink》—— Flink 读取 Kafka 数据批量写入到 MySQL

zhisheng

大数据 flink 流计算

《从0到1学习Flink》—— Flink 写入数据到 Kafka

zhisheng

大数据 flink 流计算

《从0到1学习Flink》—— Flink 读取 Kafka 数据写入到 RabbitMQ

zhisheng

大数据 flink 流计算

Jenkins 插件开发之旅:两天内从 idea 到发布(上篇)

donghui

DevOps jenkins jenkins-plugin

《从0到1学习Flink》—— 如何自定义 Data Sink ?

zhisheng

大数据 flink 流计算

《从0到1学习Flink》—— 介绍Flink中的Stream Windows

zhisheng

大数据 flink 流计算

勇攀监控高峰-EMonitor之根因分析

乒乓狂魔

监控 全链路监控 故障定位 根因分析 AIOPS

你不知道的JSON.stringify(上)

前端黑板报

Java json

重学 Java 设计模式:实战工厂方法模式

小傅哥

设计模式 小傅哥 重构 架构设计 工厂模式

Neo4j执行计划

脚动两轮男之漂流小王子

《从0到1学习Flink》—— Flink parallelism 和 Slot 介绍

zhisheng

大数据 flink 流计算

Flink 从0到1学习—— Flink 不可以连续 Split(分流)?

zhisheng

大数据 flink 流计算

Flink 从0到1学习—— 分享四本 Flink 国外的书和二十多篇 Paper 论文

zhisheng

大数据 flink 流计算

Jenkins 插件开发之旅:两天内从 idea 到发布(下篇)

donghui

DevOps jenkins jenkins-plugin

《从0到1学习Flink》—— 如何自定义 Data Source ?

zhisheng

大数据 flink 流计算

《从0到1学习Flink》—— Flink Data transformation(转换)

zhisheng

大数据 flink 流计算

那个业务大拿死在了这个地方

小眼睛聊技术

Java 学习 高效工作 程序员 个人成长

《从0到1学习Flink》—— Flink 中几种 Time 详解

zhisheng

大数据 flink 流计算

游戏夜读 | 数据整理的难题?

game1night

2020年4月云主机性能评测报告

博睿数据

云计算 百度云 ucloud 性能测试 公有云

招联金融助力经济复苏 致力成为“智慧生活的消费金融专家”

极客编

《从0到1学习Flink》—— Flink 写入数据到 ElasticSearch

zhisheng

大数据 flink 流计算

Flink 从0到1学习 —— 如何使用 Side Output 来分流?

zhisheng

大数据 flink 流计算

使用内存技术提升Azure SQL数据库的性能_Azure_Kent Weare_InfoQ精选文章