以動態方式調整資料庫資源,並將停機時間降至最低 - Azure SQL 資料庫和 Azure SQL 受控執行個體
適用於: Azure SQL 資料庫 Azure SQL 受控執行個體
Azure SQL 資料庫和 Azure SQL 受控執行個體可讓您在最短停機時間內,以動態方式將更多資源新增至您的資料庫;不過,會有一段轉換期,在這段期間資料庫會短暫失去連線,但使用重試邏輯可降低風險。
概觀
當您的應用程式需求從幾個裝置和客戶擴充到數百萬個裝置和客戶時,Azure SQL Database 和 SQL 受控執行個體會在最短停機時間內即時調整。 可擴縮性是其中一種最重要的平台即服務 (PaaS) 特性,可讓您在需要時以動態方式將更多資源新增至服務。 Azure SQL Database 可讓您輕鬆地變更配置給您資料庫的資源 (CPU 電源、記憶體、IO 輸送量和儲存體)。
避免效能問題的原因可能是您無法使用索引編製或查詢重寫方法固定之應用程式的使用量增加。 新增更多資源,可讓您在資料庫達到目前資源限制且需要更強大功能來處理內送工作負載時快速回應。 Azure SQL Database 也可讓您相應減少不需要的資源,以降低成本。
您不需要擔心購買硬體以及變更基礎結構。 透過 Azure 入口網站,即可使用滑桿輕鬆地調整資料庫。
Azure SQL Database 提供以 DTU 為基礎的購買模型和以虛擬核心為基礎的購買模型,而 Azure SQL 受控執行個體只提供以虛擬核心為基礎的購買模型。
- 以 DTU 為基礎的購買模型提供在下列三個服務層級中混用的計算、記憶體和 I/O 資源,以支援各種資料庫工作負載 (輕量型到重量型):基本、標準和進階。 在各層內的效能層級分別提供這些資源的不同混用方式,而且您可以為其新增額外的儲存體資源。
- 以虛擬核心為基礎的購買模型可讓您選擇虛擬核心的數目、記憶體數量,以及儲存體的數量和速度。 此購買模型提供三種服務層級:一般用途、業務關鍵及超大規模資料庫。
您可以隨時變更資料庫、彈性集區或受控執行個體的服務層級、計算層和資源限制。 例如,您可以使用無伺服器計算層在單一資料庫上建置您的第一個應用程式,然後隨時以手動或程式設計方式將其服務層級變更為佈建計算層,以符合您的解決方案需求。
注意
以下是無法變更資料庫服務層級的例外狀況,值得您特別注意:
- 無法將使用僅適用於業務關鍵/進階服務層級之功能的資料庫,變更為使用一般用途/標準服務層級。 目前,唯一的這類功能是記憶體內部 OLTP。
- 原本在超大規模資料庫服務層級中建立的資料庫,無法移轉至其他服務層級。 如果您將 Azure SQL Database 內現有的資料庫移轉到超大規模資料庫服務層級,您可以在原本移轉至超大規模資料庫的 45 天內,將其反向移轉到一般用途服務層級。 如果您想要將資料庫移轉到另一個服務層級 (例如業務關鍵),請先反向移轉到一般用途服務層級,再執行進一步移轉。 深入了解如何從超大規模資料庫反向移轉。
您可以藉由變更服務目標或進行調整來調整配置給資料庫的資源,以符合工作負載需求。 這也可讓您在需要時,只支付所需資源的費用。 請參閱注意事項,以了解調整作業可能對應用程式造成的潛在影響。
Azure SQL Database 可讓您動態調整資料庫:
Azure SQL 受控執行個體也可讓您進行調整:
- SQL 受控執行個體使用虛擬核心模式,並可讓您定義配置給執行個體的 CPU 核心數上限和儲存空間上限。 受控執行個體內的所有資料庫都會共用配置給執行個體的資源。
提示
動態調整可讓客戶手動或以程式設計方式變更資源分派。 動態調整功能適用於所有 Azure SQL 資料庫和 Azure SQL 受控執行個體資源。
除了支援動態調整之外,Azure SQL 資料庫中的無伺服器層也支援自動調整。 無伺服器層中的資料庫會根據工作負載需求,自動在客戶指定的範圍內調整資源。 不需要客戶採取任何動作來調整資料庫。
擴大或縮小作業的影響
以上述任何變體起始擴大或縮小動作會重新啟動資料庫引擎處理序,並且會視需要將其移至不同的虛擬機器。 將資料庫引擎處理序移至新的虛擬機器是線上程序,您可以在這段期間繼續使用現有的 Azure SQL Database 服務。 目標資料庫引擎準備好處理查詢之後,系統會終止目前資料庫引擎的已開啟連線,並復原未認可的交易。 然後會對目標資料庫引擎建立新的連線。
注意
如果有長時間執行的交易 (例如資料匯入、資料處理作業、索引重建等) 正在執行,或者如果您在執行個體上有任何使用中的連線,則不建議您調整受控執行個體。 為了避免完成調整所花的時間會比平常更久,您應該先完成所有長時間執行的作業,再調整執行個體。
注意
當擴大/縮小程序完成時,預期會有短暫的連線中斷。 如果您已針對標準暫時性錯誤實作重試邏輯,您將不會注意到容錯移轉。
替代調整方法
調整資源是提升資料庫效能的最簡單有效方式,不需要變更資料庫或應用程式程式碼。 在某些情況下,即使是最高服務層級、計算大小和效能最佳化可能也無法以成功且具成本效益的方式來處理工作負載。 在該情況下,您有其他選項可調整資料庫:
- 讀取縮放是一項可讓您取得一個唯讀資料複本的功能,以便您在其中執行高需求的唯讀查詢 (例如報告)。 唯讀複本會處理您的唯讀工作負載,而不影響您主要資料庫上的資源使用狀況。
- 資料庫分區是一組技術,可讓您將資料分割成數個資料庫,並分別調整它們。
後續步驟
- 如需變更資料庫程式碼以改善資料庫效能的資訊,請參閱尋找和套用效能建議。
- 如需讓內建資料庫智慧最佳化資料庫的資訊,請參閱自動調整。
- 如需 Azure SQL Database 中讀取縮放的資訊,請參閱如何使用唯讀複本對唯讀查詢工作負載進行負載平衡。
- 如需資料庫分區的資訊,請參閱使用 Azure SQL Database 相應放大。
- 如需使用指令碼來監視和調整單一資料庫的範例,請參閱使用 PowerShell 來監視和調整單一 SQL 資料庫。