效能功能
一開始,我們先查看 Azure SQL 相較於 SQL Server,有哪些效能功能。
由於 Azure SQL Database 和 Azure SQL 受控執行個體是以 SQL Server 資料庫引擎為基礎;因此,SQL Server 隨附的大部分功能也適用於 Azure SQL。 當部署和設定 Azure SQL 時,有些功能可能會對資料庫效能造成影響,您應加以考量。 這些功能包括容量上限、索引、記憶體內部 OLTP、分割區、SQL Server 增強功能,以及智慧型效能功能。
記憶體、CPU 和 I/O 容量
針對效能,為 Azure SQL Database 或 SQL 受控執行個體選擇正確的部署和服務層級相當重要。 在第二個課程模組中,您已了解 Azure SQL 的各種部署選項。 在您的部署過程中,請考量下列重要的容量上限:
- Azure SQL Database 最多可支援 128 個虛擬核心、4 TB 記憶體和 4 TB 資料庫大小。
- 超大規模資料庫部署選項最多可支援 100 TB 的資料庫大小。
- Azure SQL 受控執行個體最多可支援 80 個虛擬核心、400 GB 記憶體,以及 8 TB 的資料庫大小。
- 虛擬核心數和服務層級也會影響其他資源容量,例如交易記錄速率上限、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 Database 和 SQL 受控執行個體中,已最佳化記憶體的 FILEGROUP 會在建立資料庫時預先建立 (即使是一般用途層也是一樣)。
- 記憶體最佳化資料表的記憶體數量是虛擬核心相依記憶體限制的百分比。
資料分割
使用 SQL Server,您通常會針對包含大量資料列的資料表使用分割區,以透過根據資料表中的資料行細分資料來改善效能。 請針對 Azure SQL 的分割區考慮下列幾點:
- Azure SQL Database 和 SQL 受控執行個體皆支援分割區。
- 您只能搭配 SQL 受控執行個體上的分割區使用檔案群組。
最近的 SQL Server 效能增強功能
許多自 SQL Server 2019 推出的效能功能 (例如智慧型查詢處理 (IQP)) 也可以在 Azure SQL Database 與 Azure SQL 受控執行個體中使用。 但有一些例外狀況。 例如,tempdb
中繼資料最佳化就尚未在 Azure SQL 中開放使用。 如需 IQP 功能支援的明確清單,請參閱智慧型查詢處理功能。
智慧效能
智慧效能涵蓋的 Azure SQL 功能包括智慧型查詢處理、自動計劃修正和自動調整 (包括索引)。 您會在稍後的單元中深入了解這些功能。