Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 Wechsel ihres Throughput-Modus haben, etwa von manuell zu Autoskala oder umgekehrt, mit dem Ziel, 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
Azure SQL-Datenbank ist eine vollständig verwaltete Plattform als Dienst (PaaS)-Datenbankmodul, die die meisten Datenbankverwaltungsfunktionen wie Upgrades, Patching, Sicherungen und Überwachung ohne Benutzereingriff verarbeitet. Mit elastic Pools können Sie Ressourcen zwischen mehreren Datenbanken teilen, um Die Kosten zu optimieren.
Verwandte Ressourcen:
- Azure SQL-Datenbank-Produktseite
- Preise für Azure SQL-Datenbank
- Azure SQL-Datenbank-Dokumentation
- Sql-Datenbank-Leistungsleitfaden
Abfrage: SQL DB im 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
Entfernen nicht verwendeter Elastischer Pools
Empfehlung: Entfernen Sie Elastic Pools ohne zugeordnete Datenbanken, um unnötige Kosten zu vermeiden.
Informationen zu nicht genutzten Elastischen Pools
MIT SQL Elastic Pools können mehrere Datenbanken einen gemeinsamen Ressourcenpool gemeinsam nutzen. Wenn ein Elastic Pool keine Datenbanken hat, entstehen weiterhin Gebühren basierend auf den konfigurierten eDTUs oder vCores. Das Entfernen leerer Elastic Pools beseitigt diese unnötigen Kosten.
Note
FinOps-Hubs können automatisch nicht verwendete Elastic Pools identifizieren. Erfahren Sie mehr.
Identifizieren nicht verwendeter Elastischer Pools
Verwenden Sie die folgende ARG-Abfrage, um Elastic Pools ohne zugeordnete Datenbanken zu identifizieren.
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
Feedback senden
Lassen Sie uns mit einer kurzen Bewertung wissen, wie wir abschneiden. Wir verwenden diese Rezensionen, um FinOps-Tools und -Ressourcen zu verbessern und zu erweitern.
Wenn Sie nach etwas Spezifischem suchen, wählen Sie eine vorhandene Idee aus, oder erstellen Sie eine neue Idee. Teilen Sie Ideen mit anderen, um mehr Stimmen zu erhalten. Wir konzentrieren uns auf Ideen mit den meisten Stimmen.
Zugehöriger Inhalt
Verwandte Ressourcen:
Verwandte Lösungen: