Bewährte Methoden für FinOps für Datenbanken
In diesem Artikel wird eine Sammlung bewährter FinOps-Praktiken für Datenbankdienste beschrieben. Es bietet Strategien zum Optimieren von Kosten, zur Verbesserung der Effizienz und zur Verwendung von Azure Resource Graph (ARG)-Abfragen, um Einblicke in Ihre Datenbankressourcen zu erhalten. Anhand dieser Methoden können Sie sicherstellen, dass Ihre Datenbankdienste kosteneffizient sind und den finanziellen Zielen Ihrer Organisation entsprechen.
Cosmos DB
In den folgenden Abschnitten werden ARG-Abfragen für Cosmos DB bereitgestellt. Diese Abfragen helfen Ihnen, Einblicke in Ihre Cosmos DB-Konten zu gewinnen und sicherzustellen, dass sie mit den entsprechenden Anforderungseinheiten (RUs) konfiguriert sind. Indem Sie Nutzungsmuster und Empfehlungen von Azure Advisor analysieren, können Sie RUs für die Kosteneffizienz optimieren.
Abfrage: Bestätigen von Cosmos DB-Anforderungseinheiten
Diese ARG-Abfrage analysiert Cosmos DB-Konten in Ihrer Azure-Umgebung, um sicherzustellen, dass sie mit den entsprechenden RUs konfiguriert sind.
Beschreibung
Diese Abfrage identifiziert Cosmos DB-Konten mit Empfehlungen zur Optimierung ihrer RUs basierend auf Verwendungsmustern. Es enthält Empfehlungen von Azure Advisor, um RUs für die Kosteneffizienz anzupassen.
Kategorie
Optimierung
Abfrage
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
Abfrage: Cosmos DB-Auflistungen, die von einem Wechsel zu einem anderen Durchsatzmodus profitieren würden
Diese ARG-Abfrage identifiziert Cosmos DB-Sammlungen in Ihrer Azure-Umgebung, die davon profitieren würden, ihren Durchsatzmodus basierend auf Azure Advisor-Empfehlungen zu wechseln.
Beschreibung
Diese Abfrage zeigt Cosmos DB-Auflistungen an, die Empfehlungen zum Wechseln des Durchsatzmodus haben (z. B. manuell in Autoskalen oder umgekehrt), um Leistung und Kosten zu optimieren. Es verwendet Azure Advisor-Empfehlungen, um potenzielle Verbesserungen hervorzuheben.
Kategorie
Optimierung
Vorteile
- Kostenoptimierung: Identifiziert Cosmos DB-Sammlungen, die Kosten sparen können, indem sie basierend auf Nutzungsmustern und Empfehlungen zu einem geeigneteren Durchsatzmodus wechseln.
- Leistungsverwaltung: Stellt sicher, dass Cosmos DB-Sammlungen den optimalen Durchsatzmodus verwenden, die Leistung verbessern und eine Überbereitstellung oder Unterbereitstellung vermeiden.
Abfrage
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
Abfrage: Details des Cosmos DB-Sicherungsmodus
Diese ARG-Abfrage analysiert Cosmos DB-Konten, die die Sicherungsrichtlinie "Periodisch" verwenden und nicht mehrere Schreibspeicherorte aktiviert haben.
Kategorie
Optimierung
Abfrage
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-Datenbanken
In den folgenden Abschnitten werden ARG-Abfragen für SQL-Datenbank s bereitgestellt. Diese Abfragen helfen Ihnen, SQL-Datenbanken zu identifizieren, die im Leerlauf, alt, in der Entwicklung oder zu Testzwecken verwendet werden können. Durch die Analyse dieser Datenbanken können Sie Kosten optimieren und die Effizienz verbessern, indem Sie nicht genutzte Ressourcen außer Betrieb setzen oder wiederverwenden.
Abfrage: SQL DB-Leerlauf
Diese ARG-Abfrage identifiziert SQL-Datenbanken mit Namen, die angeben, dass sie möglicherweise alt, in der Entwicklung oder zu Testzwecken verwendet werden.
Kategorie
Optimierung
Abfrage
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
Abfrage: Nicht verwendete Elastic Pools-Analyse
Diese ARG-Abfrage identifiziert potenziell im Leerlauf befindliche Elastic Pools in Ihrer Azure SQL-Umgebung, indem die Anzahl der Datenbanken analysiert wird, die jedem Elastic Pool zugeordnet sind.
Kategorie
Optimierung
Abfrage
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
Suchen Sie mehr?
Haben wir etwas verpasst? Möchten Sie etwas hinzufügen? Wir freuen uns, uns über Fragen, Probleme oder Lösungen zu informieren, die Hier behandelt werden sollen. Erstellen Sie ein neues Problem mit den Details, die Sie hier sehen möchten.
Zugehöriger Inhalt
Verwandte Ressourcen:
Verwandte Lösungen: