Aanbevolen procedures voor FinOps voor databases
In dit artikel vindt u een overzicht van een verzameling bewezen FinOps-procedures voor databaseservices. Het biedt strategieën voor het optimaliseren van kosten, het verbeteren van de efficiëntie en het gebruik van ARG-query's (Azure Resource Graph) om inzicht te krijgen in uw databaseresources. Door deze procedures te volgen, kunt u ervoor zorgen dat uw databaseservices rendabel zijn en zijn afgestemd op de financiële doelstellingen van uw organisatie.
Cosmos DB
De volgende secties bevatten ARG-query's voor Cosmos DB. Met deze query's krijgt u inzicht in uw Cosmos DB-accounts en zorgt u ervoor dat deze zijn geconfigureerd met de juiste aanvraageenheden (RU's). Door gebruikspatronen te analyseren en aanbevelingen van Azure Advisor op te doen, kunt u RU's optimaliseren voor kostenefficiëntie.
Query: Cosmos DB-aanvraageenheden bevestigen
Met deze ARG-query worden Cosmos DB-accounts in uw Azure-omgeving geanalyseerd om ervoor te zorgen dat deze zijn geconfigureerd met de juiste RU's.
Beschrijving
Deze query identificeert Cosmos DB-accounts met aanbevelingen voor het optimaliseren van hun RU's op basis van gebruikspatronen. Er worden aanbevelingen van Azure Advisor weergegeven om RU's aan te passen voor kostenefficiëntie.
Categorie
Optimalisatie
Query
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
Query: Cosmos DB-verzamelingen die baat hebben bij het overschakelen naar een andere doorvoermodus
Deze ARG-query identificeert Cosmos DB-verzamelingen in uw Azure-omgeving die kunnen profiteren van het veranderen van hun doorvoermodus, op basis van Azure Advisor-aanbevelingen.
Beschrijving
Met deze query worden Cosmos DB-verzamelingen weergegeven die aanbevelingen hebben om de doorvoermodus te wijzigen (bijvoorbeeld van handmatig naar automatisch schalen of omgekeerd) om de prestaties en kosten te optimaliseren. Er worden aanbevelingen van Azure Advisor gebruikt om mogelijke verbeteringen te markeren.
Categorie
Optimalisatie
Voordelen
- Kostenoptimalisatie: Identificeert Cosmos DB-verzamelingen die kosten kunnen besparen door over te schakelen naar een meer geschikte doorvoermodus op basis van gebruikspatronen en aanbevelingen.
- Prestatiebeheer: Zorgt ervoor dat Cosmos DB-verzamelingen de optimale doorvoermodus gebruiken, de prestaties verbeteren en overinrichting of onderinrichting voorkomen.
Query
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
Query: Details van de back-upmodus van Cosmos DB
Deze ARG-query analyseert Cosmos DB-accounts die gebruikmaken van het back-upbeleid 'Periodiek' en waarvoor geen meerdere schrijflocaties zijn ingeschakeld.
Categorie
Optimalisatie
Query
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
De volgende secties bevatten ARG-query's voor SQL-databases. Met deze query's kunt u SQL-databases identificeren die inactief, oud, in ontwikkeling zijn of worden gebruikt voor testdoeleinden. Door deze databases te analyseren, kunt u de kosten optimaliseren en de efficiëntie verbeteren door onderbenutte resources uit bedrijf te nemen of opnieuw te gebruiken.
Query: niet-actieve SQL-database
Deze ARG-query identificeert SQL-databases met namen die aangeven dat ze oud, in ontwikkeling zijn of worden gebruikt voor testdoeleinden.
Categorie
Optimalisatie
Query
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
Query: Analyse van ongebruikte elastische pools
Deze ARG-query identificeert mogelijk niet-actieve elastische pools in uw Azure SQL-omgeving door het aantal databases te analyseren dat is gekoppeld aan elke elastische pool.
Categorie
Optimalisatie
Query
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
Op zoek naar meer?
Hebben we iets gemist? Wilt u iets toevoegen? We horen graag over vragen, problemen of oplossingen die u hier wilt bekijken. Maak een nieuw probleem met de details die u hier wilt zien.
Gerelateerde inhoud
Gerelateerde resources:
Verwante oplossingen: