Delen via


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 resources:

Verwante oplossingen: