Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Den här artikeln beskriver en samling beprövade FinOps-metoder för databastjänster. Den innehåller strategier för att optimera kostnader, förbättra effektiviteten och använda Azure Resource Graph-frågor (ARG) för att få insikter om dina databasresurser. Genom att följa dessa metoder kan du se till att dina databastjänster är kostnadseffektiva och anpassade till organisationens ekonomiska mål.
Cosmos DB
Följande avsnitt innehåller ARG-frågor för Cosmos DB. De här frågorna hjälper dig att få insikter om dina Cosmos DB-konton och se till att de är konfigurerade med lämpliga enheter för programbegäran (RU:er). Genom att analysera användningsmönster och visa rekommendationer från Azure Advisor kan du optimera RU:er för kostnadseffektivitet.
Fråga: Bekräfta Cosmos DB-begärans enheter
Den här ARG-frågan analyserar Cosmos DB-konton i din Azure-miljö för att säkerställa att de har konfigurerats med lämpliga RU:er.
Beskrivning
Den här frågan identifierar Cosmos DB-konton med rekommendationer för att optimera sina RU:er baserat på användningsmönster. Den innehåller rekommendationer från Azure Advisor för att justera RU:er för kostnadseffektivitet.
Kategori
Optimering
Fråga
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
Fråga: Cosmos DB-samlingar som skulle ha nytta av att växla till ett annat dataflödesläge
Den här ARG-frågan identifierar Cosmos DB-samlingar i din Azure-miljö som skulle ha nytta av att byta dataflödesläge baserat på Azure Advisor-rekommendationer.
Beskrivning
Den här frågan visar Cosmos DB-samlingar som har rekommendationer för att växla genomströmningsläge (till exempel från manuell till automatisk skalning eller vice versa) för att optimera prestanda och kostnad. Den använder Azure Advisor-rekommendationer för att belysa potentiella förbättringar.
Kategori
Optimering
Fördelar
- Kostnadsoptimering: Identifierar Cosmos DB-samlingar som kan spara kostnader genom att växla till ett lämpligare dataflödesläge baserat på användningsmönster och rekommendationer.
- Prestandahantering: Säkerställer att Cosmos DB-samlingar använder det optimala dataflödesläget, förbättrar prestandan och undviker överetablering eller underetablering.
Fråga
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
Fråga: Information om Cosmos DB-säkerhetskopieringsläge
Den här ARG-frågan analyserar Cosmos DB-konton som använder principen för periodisk säkerhetskopiering och som inte har flera skrivplatser aktiverade.
Kategori
Optimering
Fråga
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-databaser
Följande avsnitt innehåller ARG-frågor för SQL-databaser. De här frågorna hjälper dig att identifiera SQL-databaser som kan vara inaktiva, gamla, under utveckling eller används i testsyfte. Genom att analysera dessa databaser kan du optimera kostnaderna och förbättra effektiviteten genom att inaktivera eller återanvända underutnytttagna resurser.
Fråga: SQL DB inaktiv
Den här ARG-frågan identifierar SQL-databaser med namn som anger att de kan vara gamla, under utveckling eller används i testsyfte.
Kategori
Optimering
Fråga
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
Fråga: Analys av oanvända elastiska pooler
Den här ARG-frågan identifierar potentiellt inaktiva elastiska pooler i din Azure SQL-miljö genom att analysera antalet databaser som är associerade med varje elastisk pool.
Kategori
Optimering
Fråga
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
Lämna feedback
Låt oss veta hur det går med en snabb granskning. Vi använder dessa granskningar för att förbättra och utöka FinOps-verktyg och -resurser.
Om du letar efter något specifikt kan du rösta på en befintlig eller skapa en ny idé. Dela idéer med andra för att få fler röster. Vi fokuserar på idéer med flest röster.
Relaterat innehåll
Relaterade resurser:
Relaterade lösningar: