Condividi tramite


Procedure consigliate per FinOps per i database

Questo articolo descrive una raccolta di procedure FinOps comprovate per i servizi di database. Fornisce strategie per ottimizzare i costi, migliorare l'efficienza e usare query di Azure Resource Graph (ARG) per ottenere informazioni dettagliate sulle risorse del database. Seguendo queste procedure, è possibile assicurarsi che i servizi di database siano convenienti e allineati agli obiettivi finanziari dell'organizzazione.


Cosmos DB

Le sezioni seguenti forniscono query ARG per Cosmos DB. Queste query consentono di ottenere informazioni dettagliate sugli account Cosmos DB e assicurarsi che siano configurate con le unità richiesta appropriate.These querys help you gain insights into your Cosmos DB accounts and ensure they're configured with the appropriate Request Units (UR). Analizzando i modelli di utilizzo e visualizzando le raccomandazioni di Azure Advisor, è possibile ottimizzare le UR per ottimizzare l'efficienza dei costi.

Query: Confermare le unità richiesta di Cosmos DB

Questa query ARG analizza gli account Cosmos DB all'interno dell'ambiente Azure per assicurarsi che siano configurati con le UR appropriate.

Descrizione

Questa query identifica gli account Cosmos DB con raccomandazioni per ottimizzare le UR in base ai modelli di utilizzo. Illustra le raccomandazioni di Azure Advisor per regolare le UR per l'efficienza dei costi.

Categoria

Ottimizzazione

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: raccolte cosmos DB che potrebbero trarre vantaggio dal passaggio a un'altra modalità di velocità effettiva

Questa query ARG identifica le raccolte cosmos DB all'interno dell'ambiente Azure che potrebbero trarre vantaggio dal cambio della modalità di velocità effettiva, in base alle raccomandazioni di Azure Advisor.

Descrizione

Questa query illustra le raccolte di Cosmos DB che hanno raccomandazioni per passare alla modalità di velocità effettiva( ad esempio, da manuale a scalabilità automatica o viceversa) per ottimizzare le prestazioni e i costi. Usa le raccomandazioni di Azure Advisor per evidenziare i potenziali miglioramenti.

Categoria

Ottimizzazione

Vantaggi

  • Ottimizzazione dei costi: identifica le raccolte di Cosmos DB in grado di risparmiare sui costi passando a una modalità di velocità effettiva più appropriata in base ai modelli di utilizzo e alle raccomandazioni.
  • Gestione delle prestazioni: garantisce che le raccolte di Cosmos DB usino la modalità di velocità effettiva ottimale, migliorando le prestazioni ed evitando il provisioning eccessivo o il provisioning in corso.

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: Dettagli della modalità di backup di Cosmos DB

Questa query ARG analizza gli account Cosmos DB che usano i criteri di backup "Periodici" e non dispone di più percorsi di scrittura abilitati.

Categoria

Ottimizzazione

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

Database SQL

Le sezioni seguenti forniscono query ARG per le database SQL. Queste query consentono di identificare i database SQL che potrebbero essere inattivi, obsoleti, in fase di sviluppo o usati a scopo di test. Analizzando questi database, è possibile ottimizzare i costi e migliorare l'efficienza tramite la rimozione o il riutilizzo di risorse sottoutilizzate.

Query: inattiva del database SQL

Questa query ARG identifica i database SQL con nomi che indicano che potrebbero essere obsoleti, in fase di sviluppo o usati a scopo di test.

Categoria

Ottimizzazione

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: analisi dei pool elastici inutilizzati

Questa query ARG identifica i pool elastici potenzialmente inattive nell'ambiente SQL di Azure analizzando il numero di database associati a ogni pool elastico.

Categoria

Ottimizzazione

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

Stai cercando di più?

Ci mancava qualcosa? Vuoi vedere qualcosa aggiunto? Ci piacerebbe ascoltare eventuali domande, problemi o soluzioni che vorresti vedere qui. Creare un nuovo problema con i dettagli che si desidera visualizzare qui.


Risorse correlate:

Soluzioni correlate: