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.
Contenuto correlato
Risorse correlate:
Soluzioni correlate:
- Report di Power BI per FinOps Toolkit
- Hub FinOps
- Cartelle di lavoro di FinOps
- Motore di ottimizzazione