共用方式為


Azure SQL 資料庫的無伺服器計算階層

適用於:Azure SQL 資料庫

無伺服器是適用於 Azure SQL Database 中單一資料庫的計算層級,可以根據工作負載的需求自動調整計算運作,並依據每秒所使用的計算量計費。 無伺服器計算層也會在只有儲存體仍在計費的資料庫非使用中期間自動暫停資料庫,並在有活動傳回時自動繼續執行資料庫。 無伺服器計算層在一般用途服務層級和超大規模服務層級中提供。

注意

一般用途服務層級目前僅支援自動暫停和自動繼續。

概觀

計算自動調整範圍和自動暫停延遲是無伺服器計算層的重要參數。 這些參數的設定會形成資料庫的效能體驗和計算成本。

Diagram indicating when serverless billing would stop incurring compute charges due to inactivity.顯示無伺服器計費機制因未使用而停止產生計算費用的圖表。

效能設定

  • minimum vCoresmaximum vCores 均為可設定的參數,其定義資料庫可用計算容量的範圍。 記憶體和 IO 限制會與指定的虛擬核心範圍成比例。 
  • 自動暫停延遲是可設定的參數,其定義資料庫在自動暫停前必須處於非使用中的時間期間。 當下次登入或其他活動發生時,資料庫將自動恢復。 或者,您也可以停用自動暫停。

成本

無伺服器資料庫的成本總計為計算成本和儲存體成本的加總。 儲存體成本的決定方式與已佈建的計算層相同。

  • 當計算使用量介於所設定的下限和上限之間時,計算成本會以所使用的虛擬核心和記憶體為基礎。
  • 當計算使用量低於所設定的下限時,計算成本會以所設定的最小虛擬核心和最小記憶體為基礎。
  • 當資料庫暫停時,計算成本為零,而且只會產生儲存體成本。

如需更多成本詳細資料,請參閱計費。

情境

無伺服器的性價針對採用間歇性、無法預測使用模式的單一資料庫最佳化,這些資料庫可接受在閒置使用期間之後,計算準備有些延遲。 相反地,已佈建計算層的價格效能已針對平均使用量較高的單一資料庫或彈性集區中的多個資料庫進行最佳化,這些資料庫無法接受計算預備時間的任何延遲。

適合用於無伺服器計算的案例

  • 具有間歇性和無法預測使用模式的單一資料庫,期間有時處於不活動狀態,而且隨著時間推移,平均計算使用率較低。
  • 在預配置計算層中的單一資料庫經常進行重新調整,而客戶希望將計算重新調整的工作委派給服務。
  • 在 Azure SQL 資料庫中,沒有使用記錄的新單一資料庫在部署之前,很難或無法估計計算資源大小。

適合配置計算的應用場景

  • 具有更穩定、可預測使用模式的單一資料庫,且有一段時間內的平均計算使用率較高。
  • 無法容忍因更頻繁的記憶體修剪或從暫停狀態恢復延遲而導致效能妥協的資料庫。
  • 採用間歇性、無法預測使用模式的多個資料庫,其可合併成彈性集區以獲得更好的性價比最佳化。

比較運算範疇

下表摘要說明無伺服器計算層級與佈建計算層級之間的差異:

無伺服器計算 配置計算資源
資料庫使用模式 間歇性、無法預測的使用量,且一段時間內的平均計算使用率較低。 更穩定的使用模式,且一段時間內的平均計算使用率較高,或是多個使用彈性集區的資料庫。
效能管理投入量 較低 較高
計算調整 自動 手動
計算回應性 在非使用期間後降低 立即
計費細微度 每秒 每小時

購買模型和服務層級

下表說明無伺服器的支援,根據購買模型、服務層級和硬體分類:

類別 支援 不支援
購買模型 虛擬核心 DTU
服務層級 一般用途
超大規模資料庫
業務關鍵
硬體 標準系列 (Gen5) 所有其他硬體

自動擴展

調整回應能力

無伺服器資料庫會在容量足夠的機器上執行,以滿足資源需求,而不會中斷要求的任何計算量,且在虛擬核心值上限所設定的限制內。 有時候,如果電腦無法在幾分鐘內滿足資源需求,負載平衡就會自動發生。 例如,如果資源需求為 4 個虛擬核心,但只有 2 個虛擬核心可供使用,則可能需要幾分鐘的時間來進行負載平衡,然後才能提供 4 個虛擬核心。 在負載平衡期間,資料庫會保持線上狀態,只有在作業結束時,會有一段短暫期間連線被中斷。

記憶體管理

在一般用途和超大規模資料庫服務層級中,無伺服器資料庫的記憶體回收會比已佈建的計算資料庫還要頻繁。 這種行為對於控制無伺服器的成本很重要,而且可能會影響效能。

快取回收

不同於已佈建的計算資料庫,當 CPU 或主動快取使用率很低時,就會從無伺服器資料庫回收 SQL 快取中的記憶體。

  • 當最近使用的主動快取項目總大小低於閾值一段時間時,系統就會認為快取使用率偏低。
  • 快取回收程序觸發時,目標快取大小會以累加方式縮減為其先前大小的一小部分,而且只有在使用量還是偏低時,才會繼續進行回收。
  • 當快取回收程序發生時,用於選取所要收回快取項目的原則,與記憶體壓力偏高時已佈建的計算資料庫所用的選取原則相同。
  • 快取大小永遠不會減到低於最小虛擬核心所定義的最小記憶體限制。

無論是在無伺服器還是已佈建的計算資料庫中,如果使用了所有可用記憶體,快取項目便可能遭到收回。

當 CPU 使用率偏低時,主動快取使用率可能會根據使用模式而維持很高,並防止記憶體回收。 此外,在進行記憶體回收之前,使用者活動停止後可能會有其他延遲,因為定期背景程序會回應先前的使用者活動。 例如,刪除作業和查詢存放區清除工作會產生標示為要刪除的幽靈記錄,但在幽靈清除程序執行之前,不會實際刪除。 鬼影清理可能會牽涉到將資料頁面讀入快取。

快取填充

SQL 記憶體快取會在從磁碟中擷取資料時隨之成長,而且方式和速度都與已佈建的資料庫相同。 資料庫忙碌時,如果有可用的記憶體,則快取可以不受限制地成長。

磁碟快取管理

在超大規模服務層級的無伺服器和已配置計算層中,每個計算副本都使用復原緩衝池擴展(RBPEX)快取,該快取將資料頁儲存在本地 SSD 上,以提升 IO 效能。 不過,在超大規模資料庫的無伺服器計算層中,每個計算複本的 RBPEX 快取都會自動成長和縮減,以回應增加和減少的工作負載需求。 RBPEX 快取可成長的大小上限是針對資料庫所設定記憶體上限的三倍。 如需了解無伺服器環境中之最大記憶體和 RBPEX 自動調整限制的詳細資料,請參閱無伺服器超大規模資源限制。

自動暫停與自動繼續

目前,一般用途層只支援無伺服器自動暫停和自動繼續。

自動暫停

如果下列條件在自動暫停延遲期間全部成立,就會觸發自動暫停:

  • 工作階段數 = 0
  • CPU = 0 適用於在使用者資源集區中執行的使用者工作負載

已提供視需要停用自動暫停的選項。

下列功能特性不支援自動暫停,但支援自動擴展。 如果使用下列任何一項功能,則必須停用自動暫停,而且不論資料庫閒置的持續時間,資料庫都將維持在線上狀態:

  • 異地複寫(主動式異地複寫和容錯移轉群組)。
  • 長期備份保留 (LTR)。
  • SQL 資料同步 中使用的同步資料庫。不同於同步資料庫,中樞及成員資料庫支援自動暫停。
  • 為包含無伺服器資料庫的邏輯伺服器建立的DNS別名。
  • Elastic Jobs,不支援已啟用自動暫停的無伺服器資料庫作為工作資料庫。 彈性工作所鎖定的無伺服器資料庫支援自動暫停。 工作連接將恢復資料庫。

在部署某些需要資料庫保持在線狀態的服務更新時,會暫時防止自動暫停功能。 在這種情況下,當服務更新完成後,就會再次允許自動暫停。

自動暫停疑難排解

如果啟用自動暫停,且未使用封鎖自動暫停的功能,但資料庫不會在延遲期間後自動暫停,則應用程式或使用者會話可能會防止自動暫停。

若要查看目前是否有任何應用程式或使用者工作階段連線到資料庫,請使用任何用戶端工具連線到資料庫,然後執行下列查詢:

SELECT session_id,
       host_name,
       program_name,
       client_interface_name,
       login_name,
       status,
       login_time,
       last_request_start_time,
       last_request_end_time
FROM sys.dm_exec_sessions AS s
INNER JOIN sys.dm_resource_governor_workload_groups AS wg
ON s.group_id = wg.group_id
WHERE s.session_id <> @@SPID
      AND
      (
          (
          wg.name like 'UserPrimaryGroup.DB%'
          AND
          TRY_CAST(RIGHT(wg.name, LEN(wg.name) - LEN('UserPrimaryGroup.DB') - 2) AS int) = DB_ID()
          )
      OR
      wg.name = 'DACGroup'
      );

提示

執行查詢之後,請務必中斷與資料庫的連線。 否則,查詢使用的開啟會話將阻止自動暫停。

  • 如果結果集不是空白的,則表示目前有工作階段阻礙自動暫停。
  • 如果結果集是空白的,則仍有可能工作階段已開啟,時間可能很短,在自動暫停延遲期間的某個時間點之前。 若要在延遲期間檢查活動,您可以使用 Azure SQL Database 和 Azure Synapse Analytics 的 稽核,並檢查相關期間的稽核數據。

重要

無伺服器資料庫不能如預期自動暫停的最常見原因,是存在已開啟的會話,不論使用者資源集區中是否同時使用 CPU。

自動繼續

如果下列任一條件在任何時候成立,就會觸發自動繼續:

功能 自動繼續觸發
驗證和授權 登入
威脅偵測 啟用/停用資料庫或伺服器層級的威脅偵測設定。
修改資料庫或伺服器層級的威脅偵測設定。
資料探索與分類 新增、修改、刪除或檢視敏感度標籤
稽核 檢視稽核記錄。
更新或檢視稽核原則。
資料遮罩 新增、修改、刪除或檢視資料遮罩處理規則
透明資料加密 檢視透明資料加密的狀態
弱點評估 手動起始的掃描和定期掃描(如果啟用)
查詢 (效能) 資料存放區 修改或檢視查詢存放區設定
效能建議 檢視或套用效能建議
自動微調 自動微調建議的應用和驗證,例如自動編製索引
資料庫複製 以複製的方式建立資料庫。
匯出至 BACPAC 檔案。
SQL 資料同步 根據可設定的排程執行或手動執行中樞與成員資料庫之間的同步化作業
修改特定資料庫中繼資料 新增資料庫標籤。
變更最大虛擬核心數、最小虛擬核心數或自動暫停延遲。
SQL Server Management Studio (SSMS) 使用 18.1 版之前的 SSMS 並針對伺服器中的任何資料庫開啟新的查詢視窗時,相同伺服器中任何自動暫停的資料庫會恢復運行。 如果使用 SSMS 18.1 版或更新版本,則不會發生此行為。

監視、管理或其他執行這些作業的解決方案會觸發自動恢復進程。 在部署某些服務更新時(這些更新需要資料庫保持在線),也會觸發自動恢復功能。

連線能力

如果無伺服器的資料庫已暫停,則第一個連線嘗試會繼續執行資料庫並傳回錯誤 (錯誤碼 40613),指出該資料庫無法使用。 恢復資料庫後,請重新嘗試登入以建立連接。 遵循 連線重試邏輯建議 的資料庫用戶端無需修改。 有關連線重試邏輯選項和建議的資訊,請參閱:

  • SqlClient 中的連線重試邏輯
  • SQL Database 中使用 Entity Framework Core 的連線重試邏輯
  • SQL 資料庫使用 Entity Framework 6 的重試邏輯
  • SQL Database 中使用 ADO.NET 的連接重試邏輯

延遲

無伺服器資料庫自動恢復和自動暫停的延遲時間通常為大約 1 分鐘自動恢復,而在延遲期間結束後 1 到 10 分鐘自動暫停。

客戶管理的透明資料加密 (BYOK)

金鑰刪除或撤銷

如果使用客戶管理的透明資料加密 (BYOK),而且無伺服器的資料庫在金鑰刪除或撤銷發生時自動暫停,則資料庫會保持在自動暫停狀態。 在這種情況下,資料庫在重啟後大約 10 分鐘內會變得無法存取。 一旦資料庫變成無法存取,復原程序就與已佈建的計算資料庫相同。 如果在發生金鑰刪除或撤銷時,無伺服器資料庫在線上,則資料庫也會在大約 10 分鐘內變成無法存取,其方式與已佈建的計算資料庫相同。

金鑰輪替

如果使用 客戶管理的透明數據加密 (BYOK),且已啟用無伺服器自動暫停功能,則每當輪替密鑰時,資料庫就會自動繼續。 當滿足自動暫停條件時,資料庫就會自動暫停。

建立新的無伺服器資料庫

建立新資料庫或將現有資料庫移到無伺服器計算層級,遵循與在佈建計算層級中建立新資料庫相同的模式,其中包含下列兩個步驟:

  1. 指定服務目標。 服務目標可指定服務層級、硬體設定和最大虛擬核心數。 如需服務目標選項,請參閱Serverless資源限制。

  2. 您可以選擇指定最小虛擬核心數和自動暫停延遲,以變更其預設值。 下表顯示這些參數的可用值。

    參數 價值選擇 預設值
    最低 vCore 取決於已設定的最大虛擬核心數 - 詳見資源限制。 0.5 個虛擬核心
    自動暫停延遲時間 最小值:15 分鐘
    最大值:10,080 分鐘(七天)
    增量:1 分鐘
    停用自動暫停:-1
    60 Minuten

下列範例會在無伺服器計算層中建立新的資料庫。

使用 Azure 入口網站

請參閱 Quickstart: 在 Azure 入口網站上使用 Azure SQL Database 建立單一資料庫。

使用 PowerShell

  • 一般用途
  • 超大規模

使用下列 PowerShell 範例,以建立新的無伺服器一般用途資料庫:

New-AzSqlDatabase -ResourceGroupName $resourceGroupName -ServerName $serverName -DatabaseName $databaseName `
  -Edition GeneralPurpose -ComputeModel Serverless -ComputeGeneration Gen5 `
  -MinVcore 0.5 -MaxVcore 2 -AutoPauseDelayInMinutes 720

使用 Azure CLI

使用下列 Azure CLI 範例,以建立新的一般用途無伺服器資料庫:

az sql db create -g $resourceGroupName -s $serverName -n $databaseName `
  -e GeneralPurpose --compute-model Serverless -f Gen5 `
  --min-capacity 0.5 -c 2 --auto-pause-delay 720

使用 Transact-SQL (T-SQL)

使用 T-SQL 建立新的無伺服器資料庫時,會套用最低虛擬核心數和自動暫停延遲的預設值。 其值稍後可以從 Azure 入口網站或透過 API 來變更,包括 PowerShell、Azure CLI 和 REST。

如需詳細資訊,請參閱建立資料庫

使用下列 T-SQL 範例,以建立新的一般用途無伺服器資料庫:

CREATE DATABASE testdb
( EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_S_Gen5_1' ) ;

在計算層級或服務層級之間移動資料庫

資料庫可以在布建的計算層級與無伺服器計算層級之間移動。

無伺服器資料庫也可以從一般用途服務層級移至超大規模資料庫服務層級。 檢閱管理超大規模資料庫以了解更多資訊。

如果是在計算層級之間移動資料庫,請在使用 PowerShell 和 Azure CLI 時,將 計算模型 參數指定為 ServerlessProvisioned,或者在使用 T-SQL 時,指定 SERVICE_OBJECTIVE。 檢閱資源限制以識別適當的服務目標。

下列範例中會將現有的資料庫從布建的計算層級移至無伺服器計算層級。

使用 PowerShell

  • 一般用途
  • 超大規模

使用下列 PowerShell 範例,將已佈建的計算一般用途資料庫移至無伺服器計算層:

Set-AzSqlDatabase -ResourceGroupName $resourceGroupName -ServerName $serverName -DatabaseName $databaseName `
  -Edition GeneralPurpose -ComputeModel Serverless -ComputeGeneration Gen5 `
  -MinVcore 1 -MaxVcore 4 -AutoPauseDelayInMinutes 1440

使用 Azure CLI

  • 一般用途
  • 超大規模

使用下列 Azure CLI 範例,將已佈建的計算一般用途資料庫移至無伺服器計算層:

az sql db update -g $resourceGroupName -s $serverName -n $databaseName `
  --edition GeneralPurpose --compute-model Serverless --family Gen5 `
  --min-capacity 1 --capacity 4 --auto-pause-delay 1440

使用 Transact-SQL (T-SQL)

使用 T-SQL 在計算層級之間移動資料庫時,會套用最低虛擬核心數和自動暫停延遲的預設值。 這些值隨後可以在 Azure 入口網站或透過 PowerShell、Azure CLI 和 REST 等 API 變更。 如需詳細資訊,請參閱 ALTER DATABASE。

  • 一般用途
  • 超大規模

使用下列 T-SQL 範例,將已佈建的計算一般用途資料庫移至無伺服器計算層:

ALTER DATABASE testdb 
MODIFY ( SERVICE_OBJECTIVE = 'GP_S_Gen5_1') ;

修改無伺服器設定

使用 PowerShell

使用 Set-AzSqlDatabase 修改最大或最小虛擬核心,以及自動暫停延遲。 使用 MaxVcoreMinVcoreAutoPauseDelayInMinutes 引數。 超大規模資料庫層目前不支援無伺服器自動暫停,因此自動暫停延遲引數只適用於一般用途層。

使用 Azure CLI

使用 az sql db update 以修改最大或最小虛擬核心,以及自動暫停延遲。 使用 capacitymin-capacityauto-pause-delay 引數。 超大規模資料庫層目前不支援無伺服器自動暫停,因此自動暫停延遲引數只適用於一般用途層。

監視器

使用和計費的資源

無伺服器資料庫的資源包含應用程式套件、SQL 執行個體和使用者資源集區實體。

應用程式套件

不論資料庫是在無伺服器或佈建計算層級中,應用程式套件都是資料庫的最外層資源管理界限。 應用程式套件包含 SQL 執行個體和外部服務 (例如全文檢索搜尋),其可一起界定 SQL Database 中資料庫所用的所有使用者和系統資源。 SQL 執行個體通常會支配整個應用程式套件的整體資源使用率。

使用者資源集區

不論資料庫是在無伺服器或佈建計算層級中,使用者資源集區都是資料庫的內層資源管理界限。 使用者資源集區可界定 DDL 查詢 (例如,CREATE 和 ALTER) 和 DML 查詢 (例如,INSERT、UPDATE、DELETE、MERGE 和 SELECT) 所產生使用者工作負載的 CPU 和 IO 範圍。 這些查詢通常代表應用程式套件內很大的使用率比例。

計量

下表包含用於監控無伺服器資料庫(包括任何異地複本)之應用程式套件及使用者資源集區資源使用情況的計量指標:

實體 計量 描述 單位
應用程式套件 應用程式 CPU 百分比 應用程式所使用的虛擬核心百分比,相對於應用程式所允許的最大虛擬核心數。 針對無伺服器超大規模資料庫,會針對所有主要複本、具名複本和異地複本公開此計量。 百分比
應用程式套件 應用程式CPU計費 在報告期間內就應用程式計算資源而計費的金額。 在這段期間所支付的金額為此計量與虛擬核心單價的乘積。

彙總每秒使用的 CPU 與記憶體上限,即可判斷此計量的值。 如果使用的數量小於依照最小虛擬核心數與最小記憶體所設定的最小佈建數量,就會收取最小佈建數量的費用。 為了比較 CPU 與記憶體以供計費用途,記憶體會依每個虛擬核心 3 GB 重新調整記憶體量,藉此規範成虛擬核心單位。 針對無伺服器超大規模資料庫,會針對主要複本和任何具名複本公開此計量。
虛擬核心秒數
應用程式套件 app_CPU_計費_HA_副本 僅適用於無伺服器超大規模資料庫。 在報告期間,針對 HA 複本的所有應用程式所計費的計算總和。 此總和的範圍限於屬於主要複本的 HA 複本或屬於指定具名複本的 HA 複本。 在跨 HA 複本計算總和前,個別 HA 複本的計算費用會以與主要複本或命名複本相同的方法決定。 針對無伺服器超大規模資料庫,會針對所有主要複本、具名複本和異地複本公開此計量。 在報告期間所支付的金額為此計量與虛擬核心單價的乘積。 虛擬核心秒數
應用程式套件 應用程式記憶體百分比 (app_memory_percent) 應用程式所使用的記憶體百分比,相對於應用程式所允許的最大記憶體。 針對無伺服器超大規模資料庫,會針對所有主要複本、具名複本和異地複本公開此計量。 百分比
使用者資源池 CPU使用率 使用者工作負載所使用的虛擬核心百分比,相對於使用者工作負載所允許的最大虛擬核心數。 百分比
使用者資源集區 數據_I/O_百分比 使用者工作負載所使用的資料 IOPS 百分比,相對於使用者工作負載所允許的最大資料 IOPS。 百分比
使用者資源集區 日誌_IO_百分比 使用者工作負載所使用的記錄 MB/s 百分比,相對於使用者工作負載所允許的最大記錄 MB/s。 百分比
使用者資源集區 勞工百分比 使用者工作負載所使用的工作者百分比,相對於使用者工作負載所允許的最大工作者數。 百分比
使用者資源集區 會話百分比 相對於為使用者工作負載所允許的最大會話數量,使用者工作負載所使用的會話百分比。 百分比

暫停與繼續狀態

如果已啟用自動暫停的無伺服器資料庫,報告的狀態包含下列值:

狀態 描述
線上 資料庫為上線狀態。
暫停中 資料庫正從上線切換到暫停。
已暫停 資料庫已暫停。
繼續中 資料庫正在從暫停狀態轉換為上線狀態。

使用 Azure 入口網站

在 Azure 入口網站,資料庫狀態顯示於資料庫的概觀頁面,及其伺服器的概觀頁面。 此外,在 Azure 入口網站的活動記錄中,可以查看與無伺服器資料庫相關的暫停和恢復事件歷程記錄。

使用 PowerShell

請使用下列 PowerShell 範例檢視目前的資料庫狀態:

Get-AzSqlDatabase -ResourceGroupName $resourcegroupname -ServerName $servername -DatabaseName $databasename `
  | Select -ExpandProperty "Status"

使用 Azure CLI

請使用下列 Azure CLI 範例檢視目前的資料庫狀態:

az sql db show --name $databasename --resource-group $resourcegroupname --server $servername --query 'status' -o json

資源限制

如需資源限制,請參閱無伺服器計算層。

計費

針對無伺服器資料庫所計費的計算數量是每秒使用的最大 CPU 和記憶體。 如果使用的 CPU 和使用的記憶體數量小於每個資源的最小已佈建數量,則會收取已佈建數量的費用。 為了將 CPU 與記憶體進行計費比較,記憶體會被重新調整成 vCore 單位,方法是將每 GB 依照每 vCore 3 GB 的比例進行縮放。

  • 計費資源:CPU 和記憶體
  • 計費金額:虛擬核心單價 * 最大值 (最小虛擬核心數, 使用的虛擬核心, 最小記憶體 GB * 1/3, 使用的記憶體 GB * 1/3)
  • 帳單週期:每秒

虛擬核心的單價是每秒每個虛擬核心的成本。

如需指定區域中的特定單位價格,請參閱 Azure SQL Database 定價頁面。

下列指標會顯示一般用途資料庫或超大規模主要或具名複本在無伺服器計費中所使用的運算量:

  • 指標: app_cpu_billed (虛擬核心秒數)
  • 定義:最大值 (最小虛擬核心數, 使用的虛擬核心, 最小記憶體 GB * 1/3, 使用的記憶體 GB * 1/3)
  • 報告頻率:每分鐘報告,基於每秒的測量值在 1 分鐘內彙總。

提供的下列計量顯示無伺服器架構中屬於主要複本或任何命名複本的超大規模 HA 複本所計費的運算量:

  • 指標:app_cpu_billed_HA_replicas (虛擬核心秒數)
  • 定義:對於屬於其父資源的任何 HA 複本,計算其最大值的總和 (在虛擬核心數下限、已使用的虛擬核心數、記憶體下限 GB * 1/3、已使用的記憶體 GB * 1/3 中取最大值)。
  • 父代資源和計量端點:主要複本和任何具名複本都會個別公開此計量,以測量針對任何相關聯 HA 複本所計費的計算。
  • 報告頻率:每分鐘報告,根據每秒的測量數據在 1 分鐘內彙總。

最小運算費用

如果無伺服器資料庫已暫停,則計算帳單為零。 如果無伺服器型資料庫未進行暫停,則最小計算資源費用不低於以下的虛擬核心數量:以最大值(最小虛擬核心,最小記憶體 GB * 1/3)為基礎計算。

範例:

  • 假設一般用途層中的無伺服器資料庫未暫停,並且已設定最多 8 個虛擬核心和最少 1 個虛擬核心對應至 3.0 GB 最小記憶體。 然後,最小計算帳單是以最大值 (1 個虛擬核心, 3.0 GB * 1 個虛擬核心/3 GB) = 1 個虛擬核心為基礎。
  • 假設一般用途層中的無伺服器資料庫未暫停,並且已設定最多 4 個虛擬核心和最少 0.5 個虛擬核心對應至 2.1 GB 最小記憶體。 然後,最小計算帳單是以最大值 (0.5 個虛擬核心, 2.1 GB * 1 個虛擬核心/3 GB) = 0.7 個虛擬核心為基礎。
  • 假設超大規模資料庫層中的無伺服器資料庫具有含一個 HA 複本的主要複本,以及一個沒有 HA 複本的具名複本。 假設每個複本都已設定最多 8 個虛擬核心和最小 1 個虛擬核心對應至 3 GB 的最小記憶體。 則主要複本、HA 複本和具名複本的最小計算帳單將根據最大值(1 個虛擬核心,3 GB * 1 個虛擬核心 / 3 GB)= 1 個虛擬核心來計算。

無伺服器的 Azure SQL 資料庫定價計算器可用於根據所設定的最大和最小虛擬核心數,確定可配置的最小記憶體。 通常情況下,如果所設定的最小虛擬核心大於 0.5 個虛擬核心,則最小計算帳單與所配置的最小記憶體無關,並只會根據所設定的最小虛擬核心數來計算。

案例範例

  • 一般用途
  • 超大規模

請考慮使用一般用途層中已設定最少 1 個虛擬核心和最多 4 個虛擬核心的無伺服器資料庫。 此設定對應到大約 3 GB 的最小記憶體和 12 GB 的最大記憶體。 假設自動暫停延遲設定為 6 小時,且資料庫工作負載在 24 小時期間的前 2 小時內為使用中,其他時間則為非使用中。

在此情況下,前 8 個小時會針對資料庫的計算和儲存體計費。 即便資料庫在第二小時之後變為非使用中狀態,但在接下來的6小時內,仍會根據資料庫在線時所佈建的最低計算資源進行計費。 而在資料庫暫停時,24 小時期間的剩餘時間就只會針對儲存體來計費。

更精確地說,此範例中的計算費用算法如下:

時間間隔 每秒使用的虛擬核心數 每秒使用的 GB 數 計費的計算維度 時間間隔內已計費的虛擬核心秒數
0:00-1:00 4 9 使用的虛擬核心數 4 個虛擬核心 * 3,600 秒 = 14,400 個虛擬核心秒
1:00-2:00 1 12 使用的記憶體 12 GB * 1/3 * 3,600 秒 = 14,400 虛擬核心秒
2:00-8:00 0 0 已佈建的最小記憶體 3 GB * 1/3 * 21,600 秒 = 21,600 虛擬核心秒
8:00-24:00 0 0 暫停時不會計算費用 0 虛擬核心秒數
過去 24 小時內計費的虛擬核心秒數總計 50,400 虛擬核心秒數

假設計算單價為 $0.000145/虛擬核心/秒。 然後,在這 24 小時期間計算的費用是計算單價與虛擬核心秒數相乘的結果:$0.000145/虛擬核心/秒 * 50,400 虛擬核心秒 ~ $7.31。

Azure Hybrid Benefit 和預訂

Azure Hybrid Benefit (AHB) 和 Azure 保留折扣不適用於無伺服器計算層。

可用區域

如需區域可用性,請參閱 Azure SQL Database 各區域的無伺服器可用性