配置和维护性能

已完成

了解 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 设置为 OFFAUTOGROW_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 DATABASEALTER 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 性能的配置和维护选项,请在继续下一个单元之前完成以下知识检查。

知识检查

1.

可通过哪种方法为 Azure SQL 数据库配置 tempdb 的文件数?

2.

可通过哪种方法为 Azure SQL 数据库配置 I/O 性能?

3.

如何使用 Azure SQL 维护索引?