資料庫的 FinOps 最佳做法
本文概述資料庫服務經證實的 FinOps 做法集合。 它提供將成本優化、提高效率,以及使用 Azure Resource Graph (ARG) 查詢以深入瞭解資料庫資源的策略。 遵循這些做法,您可以確保資料庫服務符合成本效益,並符合您組織的財務目標。
Cosmos DB
下列各節提供 Cosmos DB 的 ARG 查詢。 這些查詢可協助您深入瞭解 Cosmos DB 帳戶,並確保它們已設定適當的要求單位 (RU)。 藉由分析 Azure Advisor 的使用模式和呈現建議,您可以將 RU 優化以達到成本效益。
查詢:確認 Cosmos DB 要求單位
此 ARG 查詢會分析 Azure 環境中的 Cosmos DB 帳戶,以確保其已使用適當的 RU 進行設定。
說明
此查詢會識別 Cosmos DB 帳戶,並建議根據使用模式優化其 RU。 其會顯示來自 Azure Advisor 的建議,以調整 RU 以符合成本效益。
類別
最佳化
查詢
advisorresources
| where type =~ 'microsoft.advisor/recommendations'
| where properties.impactedField == 'microsoft.documentdb/databaseaccounts'
and properties.recommendationTypeId == '8b993855-1b3f-4392-8860-6ed4f5afd8a7'
| order by id asc
| project
id, subscriptionId, resourceGroup,
CosmosDBAccountName = properties.extendedProperties.GlobalDatabaseAccountName,
DatabaseName = properties.extendedProperties.DatabaseName,
CollectionName = properties.extendedProperties.CollectionName,
EstimatedAnnualSavings = bin(toreal(properties.extendedProperties.annualSavingsAmount), 1),
SavingsCurrency = properties.extendedProperties.savingsCurrency
查詢:可受益於切換到另一個輸送量模式的 Cosmos DB 集合
此 ARG 查詢會識別 Azure 環境中可受益於根據 Azure Advisor 建議切換輸送量模式的 Cosmos DB 集合。
說明
此查詢會呈現 Cosmos DB 集合,這些集合具有切換其輸送量模式的建議(例如,從手動切換至自動調整,反之亦然),以優化效能和成本。 它會使用 Azure Advisor 建議來醒目提示潛在的改善。
類別
最佳化
福利
- 成本優化: 根據使用模式和建議切換至更適當的輸送量模式,識別可節省成本的 Cosmos DB 集合。
- 效能管理: 確保 Cosmos DB 集合使用最佳輸送量模式、增強效能並避免過度布建或布建不足。
查詢
advisorresources
| where type =~ 'microsoft.advisor/recommendations'
| where properties.impactedField == 'microsoft.documentdb/databaseaccounts'
and properties.recommendationTypeId in (
' cdf51428-a41b-4735-ba23-39f3b7cde20c',
' 6aa7a0df-192f-4dfa-bd61-f43db4843e7d'
)
| order by id asc
| project
id, subscriptionId, resourceGroup,
CosmosDBAccountName = properties.extendedProperties.GlobalDatabaseAccountName,
DatabaseName = properties.extendedProperties.DatabaseName,
CollectionName = properties.extendedProperties.CollectionName,
EstimatedAnnualSavings = bin(toreal(properties.extendedProperties.annualSavingsAmount), 1),
SavingsCurrency = properties.extendedProperties.savingsCurrency
查詢:Cosmos DB 備份模式詳細數據
此 ARG 查詢會分析使用「定期」備份原則且未啟用多個寫入位置的 Cosmos DB 帳戶。
類別
最佳化
查詢
resources
| where type == "microsoft.documentdb/databaseaccounts"
| where resourceGroup in ({ResourceGroup})
| where properties.backupPolicy.type == 'Periodic'
and tobool(properties.enableMultipleWriteLocations) == false
| extend BackupCopies = toreal(properties.backupPolicy.periodicModeProperties.backupRetentionIntervalInHours)
/ (toreal(properties.backupPolicy.periodicModeProperties.backupIntervalInMinutes) / real(60))
| where BackupCopies >= 10
or (BackupCopies > 2
and toint(properties.backupPolicy.periodicModeProperties.backupRetentionIntervalInHours) <= 168)
| order by id asc
| project id, CosmosDBAccountName=name, resourceGroup, subscriptionId, BackupCopies
SQL Databases
下列各節提供 SQL 資料庫 的ARG查詢。 這些查詢可協助您識別可能閑置、舊版、開發中或用於測試用途的 SQL 資料庫。 藉由分析這些資料庫,您可以將成本優化,並藉由解除委任或重新使用使用量過低的資源來提升效率。
查詢:SQL DB 閑置
此 ARG 查詢會使用名稱來識別 SQL 資料庫,指出它們可能是舊資料庫、開發中或用於測試用途。
類別
最佳化
查詢
resources
| where type == "microsoft.sql/servers/databases"
| where name contains "old" or name contains "Dev"or name contains "test"
| where resourceGroup in ({ResourceGroup})
| extend SQLDBName = name, Type = sku.name, Tier = sku.tier, Location = location
| order by id asc
| project id, SQLDBName, Type, Tier, resourceGroup, Location, subscriptionId
查詢:未使用的彈性集區分析
此 ARG 查詢會分析與每個彈性集區相關聯的資料庫數目,以識別 Azure SQL 環境中可能閒置的彈性集區。
類別
最佳化
查詢
resources
| where type == "microsoft.sql/servers/elasticpools"
| extend elasticPoolId = tolower(tostring(id))
| extend elasticPoolName = name
| extend elasticPoolRG = resourceGroup
| extend skuName = tostring(sku.name)
| extend skuTier = tostring(sku.tier)
| extend skuCapacity = tostring(sku.capacity)
| join kind=leftouter (
resources
| where type == "microsoft.sql/servers/databases"
| extend elasticPoolId = tolower(tostring(properties.elasticPoolId))
) on elasticPoolId
| summarize databaseCount = countif(isnotempty(elasticPoolId1)) by
elasticPoolId,
elasticPoolName,
serverResourceGroup = resourceGroup,
name,
skuName,
skuTier,
skuCapacity,
elasticPoolRG
| where databaseCount == 0
| project elasticPoolId,
elasticPoolName,
databaseCount,
elasticPoolRG,
skuName,
skuTier,
skuCapacity
正在尋找其他專案嗎?
我們錯過了什麼嗎? 您要看到新增的內容嗎? 我們很想聽聽任何您想要在這裡看到的問題、問題或解決方案。 使用您想要在這裡看到的詳細數據,建立新的問題 。
相關內容
相關資源:
相關解決方案: