配置和维护性能
了解 Azure SQL 的功能对于提供一致的性能十分重要。 也有必要了解在 Azure SQL 托管实例和 Azure SQL 数据库中配置的会影响性能的选项和限制。 这包括:
tempdb
数据库的主题- 配置数据库
- 配置文件和文件组
- 配置最大并行度
- 使用 Resource Governor
- 维护索引和统计信息
Tempdb
tempdb
系统数据库是应用程序使用的重要共享资源。 确保正确配置 tempdb
可能会影响你是否能够提供一致的性能。 对于 SQL Server 和 Azure SQL,你可按相同的方式使用 tempdb
。 但请注意,配置 tempdb
的功能有所不同,包括文件的放置、文件的数量和大小以及 tempdb
配置选项。
tempdb
的数据库文件始终自动存储在本地 SSD 驱动器上,因此 I/O 性能不该成为问题。
SQL Server 专业人员通常使用多个数据库文件划分 tempdb
表的分配。 对于 Azure SQL 数据库,按 vCore 的数目(最大值为 16)缩放文件数,例如 2 个 vCore 等于 4 个文件。 无法通过 T-SQL 对 tempdb
配置文件数,但是可通过更改部署选项对其进行配置。 tempdb
的最大大小按 vCore 数进行缩放。 SQL 托管实例提供 12 个文件,这与 vCore 无关。
数据库选项 MIXED_PAGE_ALLOCATION
设置为 OFF,AUTOGROW_ALL_FILES
设置为 ON。 无法对此进行配置,但与 SQL Server 一样,它们是建议的默认值。
SQL Server 2019 中引入的 tempdb
元数据优化功能(可以缓解严重的闩锁争用)目前在 Azure SQL 数据库或 Azure SQL 托管实例中不可用。
数据库配置
通常使用 T-SQL ALTER DATABASE 和 ALTER DATABASE SCOPED CONFIGURATION 语句配置数据库。 有许多针对性能的配置选项可用于 Azure SQL。 有关 SQL Server、Azure SQL 数据库与 Azure SQL 托管实例之间的差异,请参阅 ALTER DATABASE 和 ALTER DATABASE SCOPED CONFIGURATION 参考。
在性能方面,有一个选项无法更改,那就是数据库的恢复模式。 默认为完全恢复。 这可确保数据库符合 Azure 服务级别协议 (SLA)。 因此,不支持按最小方式记录批量操作。 tempdb
支持对批量操作按最小方式记录日志。
文件和文件组
SQL Server 专业人员通常使用文件和文件组,通过物理文件放置提高 I/O 性能。 Azure SQL 不允许用户将文件放在特定的磁盘系统上。 但是,Azure SQL 在速率、IOPS 和延迟方面保证资源具有很高的 I/O 性能。 这样,让用户不必考虑实际的文件放置可能有好处。
Azure SQL 数据库只有一个数据库文件(超大规模通常有多个文件),而且最大大小通过 Azure 接口进行配置。 没有用于创建更多文件的功能。
Azure SQL 托管实例支持添加数据库文件和配置大小,但不支持文件的物理放置。 可以使用 SQL 托管实例的文件数和文件大小来提高 I/O 性能。 此外,SQL 托管实例支持用户定义的文件组来实现可管理性。
MAXDOP 配置
最大并行度 (MAXDOP) 可能会影响单个查询的性能。 SQL Server 和 Azure SQL 按相同的方式处理 MAXDOP。 可使用以下方法在 Azure SQL 中配置 MAXDOP(与 SQL Server 类似):
- Azure SQL 支持 ALTER DATABASE SCOPED CONFIGURATION,它用于配置 MAXDOP。
- SQL 托管实例支持存储过程 sp_configure,它用于“最大并行度”。
- 完全支持 MAXDOP 查询提示。
- SQL 托管实例支持使用 Resource Governor 配置 MAXDOP。
Resource Governor
Resource Governor 是 SQL Server 中的一项功能,你可用它通过 I/O、CPU 和内存来控制工作负载的资源使用情况。 请注意,对于用户定义的工作负载组和池,SQL 托管实例支持 Resource Governor,但 Azure SQL 数据库不支持它。
索引维护
Azure SQL 的索引创建和维护与 SQL Server 完全相同。 例如,与 SQL Server 一样,完全支持创建、重新生成和重新组织索引。 这包括联机和可恢复索引。
统计信息维护
SQL Server 和 Azure SQL 按相同的方式处理统计信息。 这两者都可使用数据库的自动统计信息选项。
现在,你已了解一些用于 Azure SQL 性能的配置和维护选项,请在继续下一个单元之前完成以下知识检查。