在 PASS 2017 峰会期间,InfoQ 有机会参加了 Microsoft Azure SQL 数据库工程团队针对媒体的一次演讲活动。演讲聚焦于 Azure SQL 数据库中的一些新特性,这些特性设计用于为 DBA 和应用开发人员提供更便捷的数据库管理职能。Microsoft 将这些特性称为“内建智能”,而不是称为构建于 Azure SQL Server 平台上的操作。
演讲介绍了三类不同的特性,即性能管理智能、自适应查询处理和安全智能,每类特性针对的都是如何改进数据库操作的有效性。在本文中,我们将依次介绍每类特性,并对其中一些只是达到公共预览版但尚未达到一般可用版(GA)的特性做出特别指明。
性能管理智能(Performance Management Intelligence)
- 智能洞悉(Intelligent Insights);
- 自动优化(Automatic Tuning);
- 相关的服务层建议(Service Tier Advisor)。
Intelligent Insights 是 Azure SQL 用于监控破坏性事件查询操作的一种过程。一旦有查询表现出回退的迹象,它就会给出纠正问题的建议。演讲中给出了一个例子,即席查询 A 触发了资源限制,进而影响到现有查询 B 的性能。这时 Azure SQL 会给出建议,或者关闭该即席查询,或者增加 Azure 估价层以提供更多可用资源。注意,Intelligent Insights 目前是公共预览版。
在启用 Automatic Tuning 后,Azure SQL 就可以监控数据库性能。该特性会试图去创建缺失的索引,或者删除非在用的和重复的索引,以对性能进行改进。使用该特性无需更改应用层。
Service Tier Advisor(STA)是一种管理工具,它给出了应用工作负载的仪表盘,并对如何优化 Azure 在用的估价层给出建议。例如,就消耗的资源而言,某个数据库可能存在对资源付费过多的问题,STA 会建议使用具有更好性价比的低性能层。反之,如果另一个数据库可能存在缺少资源的问题,它可从定价更高的资源中获益。该工具使得管理人员可在达成业务需求的同时,更有效地使用数据库预算。
自适应查询(Adaptive Query)
自适应查询遵循“学习 - 自适应 - 验证”的基本原理。在查询优化中,使用了基数估计过程去智能决策查询运算的操作顺序和物理算法,以达成最优的查询性能。如果查询代价的估计值不准确,会产生很多消极行为,包括查询响应缓慢、资源的过量使用和吞吐量的降低。我们当然要避免这些问题,应基于基数估计对查询的执行类型做出正确决策。
安全智能(Security Intelligence)
鉴于存在各种数据泄露问题,网站黑客问题也很突出,因此保持数据库处于保护状态显然是至关重要的。此外,还应考虑到政府和专业机构出台的各项规定。数据库的安全性的确是不容忽视的。
漏洞评估(Vulnerability Assessment,VA)当前处于公开预览版。推出该特性意在帮助 DBA 监控并改进数据库的安全性。它在执行中会扫描可用的数据库,发现未得到保护的数据和不正确的配置,并给出达到合规报告要求的详细报告。更好的是,它不仅可用于本地部署的 SQL Server,而且可用于 Azure SQL 数据库,为它们的环境提供保护。
VA 使 DBA 从多个方面受益。首先,它扫描数据库以发现不安全的敏感数据(即 SSN),并对如何保护这些数据提出建议。其次,它提供了确保可应用各种最佳实践(例如防火墙、审计、加密等)的检查。第三,它追踪变更随时间的变化情况,以便在建立安全基线后可对变更情况进行监控,确保系统将来不会偏离设置。注意,VA 目前是公开预览版。
威胁检测(Threat Detection)在启用后,是一种永远在线运行的工具,它实时监控数据库中的 SQL 注入攻击、异常行为和安全漏洞。它一旦检测到问题,就会向 DBA 发出警报,使得 DBA 可采取修补措施。不同于 VA,它不是静态的,因此可以在威胁发生时就做出检测。
查看英文原文: Azure SQL Intelligences Aims to Help DBAs and Developers
评论