性能功能
我们首先来了解与 SQL Server 相比,Azure SQL 的一些性能功能。
由于 Azure SQL 数据库和 Azure SQL 托管实例基于 SQL Server 数据库引擎,因此 SQL Server 附带的大多数功能也适用于 Azure SQL。 在部署和配置 Azure SQL 时,应考虑一些会影响数据库性能的功能。 其中包括最大容量、索引、内存中 OLTP、分区、SQL Server 增强功能和智能性能功能。
内存、CPU 和 I/O 容量
为 Azure SQL 数据库或 SQL 托管实例选择适合的部署和服务层级对于性能来说可能十分重要。 在第二个模块中,你了解了 Azure SQL 的各种部署选项。 在部署时请考虑这些重要的最大容量:
- Azure SQL 数据库最多可支持 128 个 vCore、4 TB 内存和 4 TB 数据库大小。
- 超大规模部署选项最多支持 100 TB 的数据库大小。
- Azure SQL 托管实例最多可支持 80 个 vCore、400 GB 内存和 8 TB 数据库大小。
- vCore 的数目和服务层级还会影响其他资源容量,例如最大事务日志速率、IOPS、I/O 延迟和内存。
- Windows 作业对象用于支持特定资源限制(如内存)。 使用 sys.dm_os_job_object 可获得部署的真正容量。
索引
索引通常对于 SQL Server 和 Azure SQL 的查询性能来说至关重要。 下面是在索引和 Azure SQL 方面要考虑的要点:
- 所有索引类型(聚集和非聚集)在 Azure SQL 中都受支持。
- 完全支持联机和可恢复索引。 联机和可恢复索引对于实现最大可用性至关重要。
- 列存储索引几乎适用于所有服务层级。 请查看文档以了解所有异常。
内存中 OLTP
在线事务处理 (OLTP) 的重要特征因素是一个通过许多并发事务实时读取和写入数据的应用程序。 内存中 OLTP 是一种功能,它适用于对事务延迟敏感的应用程序(例如涉及大量正在修改数据的并发用户的应用程序)。 下面是与内存中 OLTP 和 Azure SQL 相关的要点:
- 内存优化表仅适用于业务关键层。
- 创建数据库时,会在 Azure SQL 数据库和 SQL 托管实例中预先创建内存优化文件组(即使是对于常规用途层)。
- 用于内存优化表的内存量是依赖于 vCore 的内存限制的百分比。
分区
使用 SQL Server 时,通常将分区用于行数很多的表,从而通过按表中的列细分数据来提高性能。 对于使用 Azure SQL 的分区,请考虑以下几点:
- Azure SQL 数据库和 SQL 托管实例支持分区。
- 在 SQL 托管实例上,你只能将文件组与分区一起使用。
最新的 SQL Server 性能增强功能
自 SQL Server 2019 起引入的许多性能功能在 Azure SQL 数据库和 Azure SQL 托管实例中也可用,例如智能查询处理 (IQP)。 但是,也存在一些例外。 例如,Azure SQL 目前尚未提供 tempdb
元数据优化功能。 有关 IQP 功能支持的明确列表,请查看智能查询处理功能。
智能性能
智能性能涵盖 Azure SQL 中的功能,包括智能查询处理、自动计划更正和自动优化(包括索引)。 你将在后面的单元中详细了解这些功能。