Modelli di acquisto e risorse del database SQL di Azure | Microsoft DocsAzure SQL Database purchasing models and resources

I server logici nel database SQL di Azure offre due modelli di acquisto per le risorse di calcolo, archiviazione e I/O basati rispettivamente su DTU e su vCore (anteprima).Logical servers in Azure SQL Database offers two purchasing models for compute, storage, and IO resources: a DTU-based purchasing model and a vCore-based purchasing model (preview).

Nota

Le istanze gestite nel database SQL di Azure offrono solo il modello di acquisto basato sui vCore.Managed Instances in Azure SQL Database only offer the vCore-based purchasing model.

La tabella e il grafico seguenti mettono a confronto questi due modelli.The following table and chart compare and contrast these two purchasing models.

Importante

Per informazioni sul modello di acquisto basato su vCore (anteprima), vedere Modello di acquisto basato su vCore.For vCore-based purchasing model (preview), see vCore-based purchasing model

Modello di acquistoPurchasing model DescrizioneDescription Ideale perBest for
Modello basato su DTUDTU-based model Questo modello è basato su una misura combinata di risorse di calcolo, archiviazione e I/O.This model is based on a bundled measure of compute, storage, and IO resources. I livelli di prestazioni per i database singoli sono espressi in unità di transazione di database (DTU), quelli per i pool elastici sono espressi in unità di transazione di database elastico (eDTU).Performance levels are expressed in terms of Database Transaction Units (DTUs) for single databases and elastic Database Transaction Units (eDTUs) for elastic pools. Per altre informazioni su DTU ed eDTU, vedere Unità di transazione di database (DTU) e unità di transazione di database elastico (eDTU).For more on DTUs and eDTUs, see What are DTUs and eDTUs? Ideale per i clienti che desiderano opzioni di risorse semplici e preconfigurate.Best for customers who want simple, pre-configured resource options.
Modello basato su vCorevCore-based model Questo modello consente di ridimensionare in modo indipendente le risorse di calcolo e archiviazione.This model allows you to independently scale compute and storage resources. Offre inoltre la possibilità di usare il Vantaggio Azure Hybrid per SQL Server per ottenere un risparmio sui costi.It also allows you to use Azure Hybrid Benefit for SQL Server to gain cost savings. Ideale per i clienti che danno valore alla trasparenza, al controllo e alla flessibilità.Best for customers who value flexibility, control, and transparency.

modello di prezzi

Modello di acquisto basato su vCore (anteprima)vCore-based purchasing model (preview)

Un vCore, o memoria centrale virtuale, rappresenta la CPU logica offerta con la possibilità di scegliere tra generazioni di hardware.A virtual core represents the logical CPU offered with an option to choose between generations of hardware. Il modello di acquisto basato su vCore (anteprima) offre flessibilità, controllo, trasparenza nell'utilizzo individuale delle risorse e un metodo diretto per convertire i requisiti dei carichi di lavoro locali nel cloud.The vCore-based purchasing model (preview) gives your flexibility, control, transparency of individual resource consumption and a straightforward way to translate on-premises workload requirements to the cloud. Questo modello consente di ridimensionare le risorse di calcolo, memoria e archiviazione in base ai requisiti dei carichi di lavoro.This model allows you to scale compute, memory, and storage based upon their workload needs. Nel modello di acquisto basato su vCore (anteprima) i clienti possono scegliere tra livelli di servizio Utilizzo generico e business critical (anteprima) sia per database singoli sia per pool elastici.In the vCore-based purchasing model (preview), customers can choose between General Purpose and Business critical service tiers (preview) for both single databases and elastic pools.

Il modello di acquisto basato su vCore (anteprima) consente di ridimensionare le risorse di calcolo e archiviazione in modo indipendente, soddisfare le esigenze di prestazioni locali e ottimizzare i costi.The vCore-based purchasing model (preview) enables you to independently scale compute and storage resources, match on-premises performance, and optimize price. Se il database o il pool elastico utilizza più di 300 DTU, la conversione a vCore può consentire di ridurre i costi.If your database or elastic pool consumes more than 300 DTU conversion to vCore may reduce your cost. È possibile eseguire questa conversione usando l'API preferita o il portale di Azure, senza tempi di inattività.You can convert using your API of choice or using the Azure portal, with no downtime. La conversione non è tuttavia obbligatoria.However, conversion is not required. Se il modello di acquisto basato su DTU soddisfa i requisiti aziendali e di prestazioni, è consigliabile continuare a usarlo.If the DTU purchasing model meets your performance and business requirements, you should continue using it. Se si decide di eseguire la conversione dal modello basato su DTU a quello basato su vCore, selezionare il livello di prestazioni usando la regola empirica seguente: è necessario almeno 1 vCore nel livello per utilizzo generico per ogni 100 DTU nel livello Standard; per ogni 125 DTU nel livello Premium è necessario almeno 1 vCore nel livello business critical.If you decide to convert from the DTU-model to vCore-model, you should select the performance level using the following rule of thumb: each 100 DTU in Standard tier requires at least 1 vCore in General Purpose tier; each 125 DTU in Premium tier requires at least 1 vCore in Business Critical tier.

Nel modello di acquisto basato su vCore (anteprima) i clienti pagano per le risorse seguenti:In the vCore-based purchasing model (preview), customers pay for:

  • Calcolo (livello di servizio + numero di vCore + generazione di hardware)*Compute (service tier + number of vCores + generation of hardware)*
  • Tipo e quantità di risorse di archiviazione per dati e logType and amount of data and log storage
  • Numero di operazioni di I/ONumber of IOs
  • Risorse di archiviazione per i backup (RA-GRS)Backup storage (RA-GRS)

* Nell'anteprima pubblica iniziale, le CPU logiche Generazione 4 si basano sui processori Intel E5-2673 v3 (Haswell) a 2,4 GHz.* In the initial public preview, the Gen 4 Logical CPUs are based on Intel E5-2673 v3 (Haswell) 2.4-GHz processors.

** Durante l'anteprima, 7 giorni di backup e operazioni di I/O sono gratuite.** During preview, 7 days of backups and IOs are free.

Importante

I costi delle risorse di calcolo, I/O e archiviazione di dati e log vengono addebitati per database singolo o pool elastico.Compute, IOs, data and log storage are charged per database or elastic pool. Il costo delle risorse di archiviazione per i backup viene addebitato per ogni database.Backups storage is charged per each database. Per informazioni dettagliate sull'addebito dei costi di Istanza gestita, vedere la sezione relativa all'istanza gestita di database SQL di Azure.For details of Managed Instance charges, refer to Azure SQL Database Managed Instance. Limitazioni regionali: Il modello di acquisto basato sui vCore (anteprima) non è disponibile nelle seguenti regioni: Europa occidentale, Francia centrale, Regno Unito meridionale, Regno Unito occidentale e Australia sud-orientale.Region limitations: The vCore-based purchasing model (preview) is not yet available in the following regions: West Europe, France Central, UK South, UK West and Australia Southeast.

modello di acquisto basato su DTUDTU-based purchasing model

La DTU (Database Throughput Unit) rappresenta una misura combinata di CPU, memoria e operazioni di lettura e scrittura.The Database Throughput Unit (DTU) represents a blended measure of CPU, memory, reads, and writes. Il modello di acquisto basato su DTU offre un set di bundle preconfigurati di risorse di calcolo e archiviazione per diversi livelli di prestazioni dell'applicazione.The DTU-based purchasing model offers a set of preconfigured bundles of compute resources and included storage to drive different levels of application performance. I clienti che preferiscono la semplicità di un bundle preconfigurato, pagando un importo fisso mensile, possono considerare il modello basato su DTU come più adatto alle proprie esigenze.Customers who prefer the simplicity of a preconfigured bundle and fixed payments each month, may find the DTU-based model more suitable for their needs. In questo modello i clienti possono scegliere tra livelli di servizio Basic, Standard e Premium sia per database singoli sia per pool elastici.In the DTU-based purchasing model, customers can choose between Basic, Standard, and Premium service tiers for both single databases and elastic pools.

Cosa sono le unità di transazione di database (DTU)?What are Database Transaction Units (DTUs)?

Per un singolo database SQL di Azure a un livello di prestazioni specifico all'interno di un livello di servizio, Microsoft garantisce un certo livello di risorse per il database (a prescindere da qualsiasi altro database nel cloud di Azure), fornendo così un livello di prestazioni prevedibile.For a single Azure SQL database at a specific performance level within a service tier, Microsoft guarantees a certain level of resources for that database (independent of any other database in the Azure cloud), providing a predictable level of performance. La quantità di risorse viene calcolata come numero di unità di transazione di database o DTU ed è una misura combinata delle risorse di calcolo, archiviazione e I/O.The amount of resources is calculated as a number of Database Transaction Units or DTUs and is a bundled measure of compute, storage, and IO resources. Il rapporto tra queste risorse è stato originariamente stabilito da un carico di lavoro di benchmark OLTP progettato per essere rappresentativo dei carichi di lavoro OLTP reali.The ratio amongst these resources was originally determined by an OLTP benchmark workload, designed to be typical of real-world OLTP workloads. Quando il carico di lavoro supera la quantità di una di queste risorse, la velocità effettiva viene limitata, generando timeout e prestazioni più lente.When your workload exceeds the amount of any of these resources, your throughput is throttled - resulting in slower performance and timeouts. Le risorse usate dal carico di lavoro non incidono sulle risorse disponibili per gli altri database SQL nel cloud di Azure e le risorse usate dagli altri carichi di lavoro non incidono sulle risorse disponibili per il database SQL.The resources used by your workload do not impact the resources available to other SQL databases in the Azure cloud, and the resources used by other workloads do not impact the resources available to your SQL database.

rettangolo di selezione

Le DTU sono particolarmente utili per comprendere la quantità relativa di risorse tra i database SQL di Azure a diversi livelli di prestazioni e livelli di servizio.DTUs are most useful for understanding the relative amount of resources between Azure SQL Databases at different performance levels and service tiers. Ad esempio, raddoppiare le DTU aumentando il livello di prestazioni di un database equivale a raddoppiare il set di risorse disponibili per quel database.For example, doubling the DTUs by increasing the performance level of a database equates to doubling the set of resources available to that database. Ad esempio, un database Premium P11 con 1750 DTU fornisce 350 volte più potenza di calcolo DTU di un database Basic con 5 DTU.For example, a Premium P11 database with 1750 DTUs provides 350x more DTU compute power than a Basic database with 5 DTUs.

Per ottenere maggiori dettagli sul consumo di risorse (DTU) del carico di lavoro, usare Query Performance Insight del database SQL di Azure per:To gain deeper insight into the resource (DTU) consumption of your workload, use Azure SQL Database Query Performance Insight to:

  • Identificare le query principali a livello di CPU/durata/conteggio delle esecuzioni, che possono essere potenzialmente ottimizzate per migliorare le prestazioni.Identify the top queries by CPU/Duration/Execution count that can potentially be tuned for improved performance. Una query con uso intensivo dell'I/O, ad esempio, può trarre vantaggio dall'uso di tecniche di ottimizzazione in memoria per usare in modo più efficiente la memoria disponibile per un livello di servizio e di prestazioni specifico.For example, an IO intensive query might benefit from the use of in-memory optimization techniques to make better use of the available memory at a certain service tier and performance level.
  • Eseguire il drill-down dei dettagli di una query, visualizzarne il testo e la cronologia di utilizzo delle risorse.Drill down into the details of a query, view its text and history of resource utilization.
  • Accedere alle raccomandazioni relative all'ottimizzazione delle prestazioni che descrivono le azioni eseguite da Advisor per database SQL.Access performance tuning recommendations that show actions performed by SQL Database Advisor.

È possibile modificare i livelli di servizio delle DTU in qualsiasi momento con tempi di inattività minimi per l'applicazione, in genere meno di 4 secondi.You can change DTU service tiers at any time with minimal downtime to your application (generally averaging under four seconds). Per molte aziende e app, la possibilità di creare database e connettere o disconnettere prestazioni su richiesta è sufficiente, specialmente se i modelli d'uso sono relativamente prevedibili.For many businesses and apps, being able to create databases and dial performance up or down on demand is enough, especially if usage patterns are relatively predictable. Ma se si dispone di modelli di utilizzo imprevedibili, può risultare difficile gestire i costi e il modello aziendale.But if you have unpredictable usage patterns, it can make it hard to manage costs and your business model. Per questo scenario usare un pool elastico con un determinato numero di eDTU condivise tra più database nel pool.For this scenario, you use an elastic pool with a certain number of eDTUs that are shared among multiple databases in the pool.

Introduzione al database SQL: DTU di database singolo in base al livello

Cosa sono le unità di transazione di database elastico (eDTU)?What are elastic Database Transaction Units (eDTUs)?

Anziché fornire un set di risorse (DTU) dedicato che potrebbe non essere sempre necessario per un database SQL sempre disponibile, è possibile inserire i database in un pool elastico in un server di database SQL che condivide un pool di risorse tra tali database.Rather than provide a dedicated set of resources (DTUs) that may not always be needed for a SQL Database that is always available, you can place databases into an elastic pool on a SQL Database server that shares a pool of resources among those databases. Le risorse condivise in un pool elastico sono misurate dalle unità di transazione di database elastiche o eDTU.The shared resources in an elastic pool are measured by elastic Database Transaction Units or eDTUs. I pool elastici offrono una soluzione semplice e conveniente per gestire gli obiettivi di prestazioni per più database con modelli di utilizzo estremamente mutevoli e imprevedibili.Elastic pools provide a simple cost effective solution to manage the performance goals for multiple databases having widely varying and unpredictable usage patterns. Un pool elastico garantisce che le risorse non possano essere utilizzate da un solo database nel pool, assicurando allo stesso tempo che per ogni database del pool sia sempre disponibile una quantità minima di risorse necessaria.An elastic pool guarantees resources cannot be consumed by one database in the pool, while ensuring each database in the pool always has a minimum amount of necessary resources available.

Introduzione al database SQL: eDTU in base al livello

A un pool viene assegnato un numero definito di eDTU per un prezzo prestabilito.A pool is given a set number of eDTUs for a set price. All'interno del pool elastico, i singoli database sono sufficientemente flessibili da assicurare la scalabilità automatica nell'ambito di limiti configurati.Within the elastic pool, individual databases are given the flexibility to auto-scale within the configured boundaries. Un database con un carico di lavoro più importante utilizzerà più eDTU per soddisfare la domanda.A database under heavier load will consume more eDTUs to meet demand. I database con carichi più leggeri utilizzeranno meno eDTU.Databases under lighter loads will consume less eDTUs. I database senza alcun carico di lavoro non utilizzeranno eDTU.Databases with no load will consume no eDTUs. Effettuando il provisioning delle risorse per l'intero pool e non per i singoli database, le attività di gestione si semplificano e si ha a disposizione un budget prevedibile per il pool.By provisioning resources for the entire pool, rather than per database, management tasks are simplified, providing a predictable budget for the pool.

È possibile aggiungere altre eDTU a un pool esistente senza causare tempi di inattività del database o effetti negativi sui database nel pool.Additional eDTUs can be added to an existing pool with no database downtime and with no impact on the databases in the pool. Analogamente, se le eDTU aggiuntive non sono più necessarie, è possibile rimuoverle da un pool esistente in qualsiasi momento.Similarly, if extra eDTUs are no longer needed, they can be removed from an existing pool at any point in time. È possibile aggiungere o sottrarre database al pool oppure limitare la quantità di eDTU che un database può usare in condizioni di carico elevato per riservare eDTU per altri database.You can add or subtract databases to the pool or limit the amount of eDTUs a database can use under heavy load to reserve eDTUs for other databases. Se si prevede un sottoutilizzo di risorse per un database, il database può essere rimosso dal pool e configurato come database singolo con una quantità prevedibile di risorse necessarie.If a database is predictably under-utilizing resources, you can move it out of the pool and configure it as a single database with a predictable amount of required resources.

Come si determina il numero di DTU necessarie per il carico di lavoro?How can I determine the number of DTUs needed by my workload?

Se si intende eseguire la migrazione di un carico di lavoro locale o di un carico di lavoro di macchine virtuali di SQL Server a un database SQL di Azure, è possibile usare lo strumento di calcolo DTU per simulare il numero di DTU necessarie.If you are looking to migrate an existing on-premises or SQL Server virtual machine workload to Azure SQL Database, you can use the DTU Calculator to approximate the number of DTUs needed. Per un carico di lavoro esistente del database SQL di Azure, è possibile usare Informazioni dettagliate prestazioni query del database SQL per comprendere il consumo di risorse di database (DTU) e ottenere dati più approfonditi per l'ottimizzazione del carico di lavoro.For an existing Azure SQL Database workload, you can use SQL Database Query Performance Insight to understand your database resource consumption (DTUs) to gain deeper insight for optimizing your workload. È anche possibile usare la DMV sys.dm_db_ resource_stats per visualizzare il consumo di risorse per l'ultima ora.You can also use the sys.dm_db_ resource_stats DMV to view resource consumption for the last hour. In alternativa, la vista del catalogo sys.resource_stats visualizza il consumo di risorse per gli ultimi 14 giorni, ma a una fedeltà inferiore di medie di cinque minuti.Alternatively, the catalog view sys.resource_stats displays resource consumption for the last 14 days, but at a lower fidelity of five-minute averages.

Come è possibile sapere se un pool elastico di risorse può essere utile?How do I know if I could benefit from an elastic pool of resources?

I pool sono adatti per un numero elevato di database con modelli di utilizzo specifici.Pools are suited for a large number of databases with specific utilization patterns. Per un determinato database, questo modello è caratterizzato da un utilizzo medio ridotto con picchi di utilizzo relativamente poco frequenti.For a given database, this pattern is characterized by a low utilization average with relatively infrequent utilization spikes. Database SQL valuta automaticamente la cronologia d’utilizzo delle risorse dei database in un server di database SQL esistente e consiglia una configurazione appropriata del pool nel portale di Azure.SQL Database automatically evaluates the historical resource usage of databases in an existing SQL Database server and recommends the appropriate pool configuration in the Azure portal. Per altre informazioni, vedere Quando usare un pool elasticoFor more information, see when should an elastic pool be used?

Cosa succede se si raggiunge il numero massimo di DTU?What happens when I hit my maximum DTUs?

I livelli di prestazioni vengono calibrati e gestiti per offrire le risorse necessarie per eseguire il carico di lavoro del database fino ai limiti massimi consentiti per il livello di servizio/livello di prestazioni selezionato.Performance levels are calibrated and governed to provide the resources needed to run your database workload up to the maximum allowed for your selected service tier/performance level. Se il carico di lavoro raggiunge uno dei limiti di CPU/I/O dati/I/O log, si continuerà a ricevere il livello massimo di risorse consentito, ma probabilmente si sperimenteranno anche latenze di query più elevate.If your workload is hitting one of the CPU/Data IO/Log IO limits, you will continue to receive the maximum level of resources allowable, but you will also likely experience increased query latencies. Con questi limiti non si verificheranno errori, ma solo un rallentamento nel carico di lavoro, a meno che il rallentamento non diventi così grave da provocare il timeout delle query. Se si raggiunge il limite massimo di richieste o di sessioni utente simultanee (thread di lavoro), verranno visualizzati errori espliciti.These limits do not result in any errors, but rather a slowdown in the workload, unless the slowdown becomes so severe that queries start timing out. If you reach the maximum allowed concurrent user sessions/requests (worker threads), you will see explicit errors. Vedere Limiti delle risorse del database SQL di Azure per informazioni sui limiti delle risorse non correlati a CPU, memoria, I/O dei dati o I/O del log delle transazioni.See Azure SQL Database resource limits for information on resource limits not related to CPU, memory, data IO, or transaction log IO.

Correlazione tra i risultati e le prestazioni del database nel mondo realeCorrelating benchmark results to real world database performance

È importante comprendere che tutti i benchmark, ha una funzione esclusivamente rappresentativa e indicativa.It is important to understand that all benchmarks are representative and indicative only. Le frequenze di transazioni raggiunte con l'applicazione benchmark non saranno uguali a quelle che è possibile ottenere con altre applicazioni.The transaction rates achieved with the benchmark application will not be the same as those that might be achieved with other applications. Il benchmark include una raccolta di diversi tipi di transazioni eseguiti a fronte di uno schema contenente una gamma di tabelle e tipi di dati.The benchmark comprises a collection of different transaction types run against a schema containing a range of tables and data types. Anche se il benchmark esegue le stesse operazioni di base comuni a tutti i carichi di lavoro OLTP, non rappresenta una specifica classe di database o applicazione.While the benchmark exercises the same basic operations that are common to all OLTP workloads, it does not represent any specific class of database or application. L'obiettivo del benchmark è fornire un'indicazione ragionevole delle prestazioni relative di un database previste in caso di riduzione o aumento dei livelli di prestazioni.The goal of the benchmark is to provide a reasonable guide to the relative performance of a database that might be expected when scaling up or down between performance levels. Nella realtà i database hanno dimensioni e complessità diverse, gestiscono combinazioni diverse di carichi di lavoro e rispondono in modi diversi.In reality, databases are of different sizes and complexity, encounter different mixes of workloads, and will respond in different ways. Ad esempio, un'applicazione con un utilizzo elevato di I/O può raggiungere le soglie di I/O prima, così come un'applicazione con un utilizzo elevato di CPU può raggiungere i limiti di CPU in tempi più brevi.For example, an IO-intensive application may hit IO thresholds sooner, or a CPU-intensive application may hit CPU limits sooner. Non vi sono garanzie che la scalabilità di un determinato database corrisponda a quella del benchmark in caso di aumento del carico.There is no guarantee that any particular database will scale in the same way as the benchmark under increasing load.

Il benchmark e la relativa metodologia sono descritti con maggiori dettagli più avanti.The benchmark and its methodology are described in more detail below.

Riepilogo del benchmarkBenchmark summary

Il benchmark ASDB misura le prestazioni di una combinazione di operazioni di database di base che si verificano con maggiore frequenza con carichi di lavoro di elaborazione di transazioni online (OLTP).ASDB measures the performance of a mix of basic database operations which occur most frequently in online transaction processing (OLTP) workloads. Benché il benchmark sia stato progettato tenendo conto del cloud computing, lo schema del database, il popolamento di dati e le transazioni sono stati progettati in modo da rappresentare a grandi linee gli elementi di base usati con maggiore frequenza con carichi di lavoro OLTP.Although the benchmark is designed with cloud computing in mind, the database schema, data population, and transactions have been designed to be broadly representative of the basic elements most commonly used in OLTP workloads.

SCHEMASchema

Lo schema è progettato in modo da prevedere una varietà e una complessità sufficienti per supportare una vasta gamma di operazioni.The schema is designed to have enough variety and complexity to support a broad range of operations. Il benchmark viene eseguito a fronte di un database costituito da sei tabelle.The benchmark runs against a database comprised of six tables. Le tabelle rientrano in tre categorie, ovvero a dimensione fissa, ridimensionabili ed espandibili.The tables fall into three categories: fixed-size, scaling, and growing. Sono presenti due tabelle a dimensione fissa, tre tabelle ridimensionabili e una tabella espandibile.There are two fixed-size tables; three scaling tables; and one growing table. Le tabelle a dimensione fissa includono un numero costante di righe.Fixed-size tables have a constant number of rows. Le tabelle ridimensionabili prevedono una cardinalità proporzionale alle prestazioni del database che però non cambia durante l'esecuzione del benchmark.Scaling tables have a cardinality that is proportional to database performance, but doesn’t change during the benchmark. La tabella espandibile ha le dimensioni di una tabella ridimensionabile con carico iniziale, ma successivamente la cardinalità cambia nel corso dell'esecuzione del benchmark con l'inserimento e l'eliminazione di righe.The growing table is sized like a scaling table on initial load, but then the cardinality changes in the course of running the benchmark as rows are inserted and deleted.

Lo schema include una combinazione di tipi di dati, tra cui valori integer, valori numerici, caratteri e valori di data/ora.The schema includes a mix of data types, including integer, numeric, character, and date/time. Sono incluse chiavi primarie e secondarie, ma non chiavi esterne e non esistono pertanto vincoli di integrità referenziale tra le tabelle.The schema includes primary and secondary keys, but not any foreign keys - that is, there are no referential integrity constraints between tables.

Un programma di generazione di dati genera i dati per il database iniziale.A data generation program generates the data for the initial database. I dati integer e numeric vengono generati con diverse strategie.Integer and numeric data is generated with various strategies. In alcuni casi, i valori vengono distribuiti in modo casuale su un intervallo.In some cases, values are distributed randomly over a range. In altri casi, un insieme di valori viene permutato in modo casuale per garantire che venga mantenuta una distribuzione specifica.In other cases, a set of values is randomly permuted to ensure that a specific distribution is maintained. I campi di testo vengono generati da un elenco ponderato di parole per produrre dati realistici.Text fields are generated from a weighted list of words to produce realistic looking data.

Le dimensioni del database si basano su un "fattore di scala"The database is sized based on a “scale factor.” (SF), che determina la cardinalità delle tabelle ridimensionabili ed espandibili.The scale factor (abbreviated as SF) determines the cardinality of the scaling and growing tables. Come descritto più avanti nella sezione Utenti e velocità, la dimensione del database, il numero di utenti e le prestazioni massime vengono tutti adattati in proporzione.As described below in the section Users and Pacing, the database size, number of users, and maximum performance all scale in proportion to each other.

TransazioniTransactions

Il carico di lavoro è costituito da nove tipi di transazioni, come illustrato nella tabella riportata di seguito.The workload consists of nine transaction types, as shown in the table below. Ogni transazione è progettata per evidenziare un insieme specifico di caratteristiche di sistema nel motore di database e nell'hardware del sistema, con un contrasto elevato rispetto alle altre transazioni.Each transaction is designed to highlight a particular set of system characteristics in the database engine and system hardware, with high contrast from the other transactions. Questo approccio consente di valutare l'impatto dei diversi componenti sulle prestazioni globali.This approach makes it easier to assess the impact of different components to overall performance. La transazione "Operazioni lettura intense" ad esempio produce un numero significativo di operazioni di lettura dal disco.For example, the transaction “Read Heavy” produces a significant number of read operations from disk.

Tipo di transazioneTransaction Type DESCRIZIONEDescription
Operazioni lettura leggereRead Lite SELECT, in memoria, sola letturaSELECT; in-memory; read-only
Operazioni lettura medieRead Medium SELECT, principalmente in memoria, sola letturaSELECT; mostly in-memory; read-only
Operazioni lettura intenseRead Heavy SELECT, principalmente non in memoria, sola letturaSELECT; mostly not in-memory; read-only
Operazioni aggiornamento leggereUpdate Lite UPDATE, in memoria, lettura/scritturaUPDATE; in-memory; read-write
Operazioni aggiornamento intenseUpdate Heavy UPDATE, principalmente non in memoria, lettura/scritturaUPDATE; mostly not in-memory; read-write
Operazioni inserimento leggereInsert Lite INSERT, in memoria, lettura/scritturaINSERT; in-memory; read-write
Operazioni inserimento intenseInsert Heavy INSERT, principalmente non in memoria, lettura/scritturaINSERT; mostly not in-memory; read-write
DeleteDelete DELETE, combinazione in memoria e non in memoria, lettura/scritturaDELETE; mix of in-memory and not in-memory; read-write
Operazioni CPU intenseCPU Heavy SELECT, in memoria, carico CPU relativamente pesante, sola letturaSELECT; in-memory; relatively heavy CPU load; read-only

Combinazione di carichi di lavoroWorkload mix

Le transazioni vengono selezionate casualmente da una distribuzione ponderata con la seguente combinazione globale.Transactions are selected at random from a weighted distribution with the following overall mix. La combinazione globale presenta un rapporto di lettura/scrittura di circa 2:1.The overall mix has a read/write ratio of approximately 2:1.

Tipo di transazioneTransaction Type % di combinazione% of Mix
Operazioni lettura leggereRead Lite 3535
Operazioni lettura medieRead Medium 2020
Operazioni lettura intenseRead Heavy 55
Operazioni aggiornamento leggereUpdate Lite 2020
Operazioni aggiornamento intenseUpdate Heavy 33
Operazioni inserimento leggereInsert Lite 33
Operazioni inserimento intenseInsert Heavy 22
DeleteDelete 22
Operazioni CPU intenseCPU Heavy 1010

Utenti e velocitàUsers and pacing

Il carico di lavoro del benchmark si basa su uno strumento che invia transazioni attraverso un insieme di connessioni per simulare il comportamento di numerosi utenti simultanei.The benchmark workload is driven from a tool that submits transactions across a set of connections to simulate the behavior of a number of concurrent users. Benché tutte le connessioni e transazioni siano generate da un computer, per semplicità vengono indicate come "utenti".Although all of the connections and transactions are machine generated, for simplicity we refer to these connections as “users.” Sebbene ogni utente agisca in modo indipendente da tutti gli altri, tutti gli utenti eseguono lo stesso ciclo di passaggi illustrato di seguito:Although each user operates independently of all other users, all users perform the same cycle of steps shown below:

  1. Stabilire una connessione di database.Establish a database connection.
  2. Ripetere le seguenti operazioni fino al segnale di uscita:Repeat until signaled to exit:
    • Selezionare una transazione in modo casuale (da una distribuzione ponderata).Select a transaction at random (from a weighted distribution).
    • Eseguire la transazione selezionata e misurare il tempo di risposta.Perform the selected transaction and measure the response time.
    • Attendere un ritardo velocità.Wait for a pacing delay.
  3. Chiudere la connessione di database.Close the database connection.
  4. Uscire.Exit.

Il ritardo velocità (passaggio 2c) viene selezionato in modo casuale, ma con una distribuzione che presenta una media di 1,0 secondi.The pacing delay (in step 2c) is selected at random, but with a distribution that has an average of 1.0 second. Pertanto, ogni utente in media può generare al massimo una transazione al secondo.Thus each user can, on average, generate at most one transaction per second.

Regole di ridimensionamentoScaling rules

Il numero di utenti è determinato dalle dimensioni del database (in unità di fattore di conversione).The number of users is determined by the database size (in scale-factor units). Esiste un utente per ogni unità di fattore di scala.There is one user for every five scale-factor units. A causa del ritardo velocità, un utente in media può generare al massimo una transazione al secondo.Because of the pacing delay, one user can generate at most one transaction per second, on average.

Ad esempio, un database con fattore di scala pari a 500 (SF=500) avrà 100 utenti e potrà raggiungere una frequenza massima di 100 TPS.For example, a scale-factor of 500 (SF=500) database will have 100 users and can achieve a maximum rate of 100 TPS. Per ottenere un valore TPS più elevato, sono necessari più utenti e un database di dimensioni maggiori.To drive a higher TPS rate requires more users and a larger database.

La tabella seguente illustra il numero di utenti effettivamente supportati per ogni livello di servizio e ogni livello di prestazioni.The table below shows the number of users actually sustained for each service tier and performance level.

Livello di servizio (livello di prestazioni)Service Tier (Performance Level) UtentiUsers Dimensioni databaseDatabase Size
BasicBasic 55 720 MB720 MB
Standard (S0)Standard (S0) 1010 1 GB1 GB
Standard (S1)Standard (S1) 2020 2,1 GB2.1 GB
Standard (S2)Standard (S2) 5050 7,1 GB7.1 GB
Premium (P1)Premium (P1) 100100 14 GB14 GB
Premium (P2)Premium (P2) 200200 28 GB28 GB
Premium (P6)Premium (P6) 800800 114 GB114 GB

Durata della misurazioneMeasurement duration

Per l'esecuzione di un benchmark valido è necessaria una durata della misurazione in condizioni stabili di almeno un'ora.A valid benchmark run requires a steady-state measurement duration of at least one hour.

MetricheMetrics

La metrica di base del benchmark è rappresentata dalla velocità effettiva e dal tempo di risposta.The key metrics in the benchmark are throughput and response time.

  • La velocità effettiva è l'unità di misura di base delle prestazioni nel benchmark.Throughput is the essential performance measure in the benchmark. Viene misurata in transazioni per unità di tempo, conteggiando tutti i tipi di transazioni.Throughput is reported in transactions per unit-of-time, counting all transaction types.
  • Il tempo di risposta consente di misurare la prevedibilità delle prestazioni.Response time is a measure of performance predictability. Il vincolo del tempo di risposta varia in base alla classe di servizio. I servizi di classe superiore prevedono requisiti di tempi di risposta più rigorosi, come illustrato di seguito.The response time constraint varies with class of service, with higher classes of service having a more stringent response time requirement, as shown below.
Classe di servizioClass of Service Misura della velocità effettivaThroughput Measure Requisito di tempi di rispostaResponse Time Requirement
PremiumPremium Transazioni al secondoTransactions per second 95° percentile a 0,5 secondi95th percentile at 0.5 seconds
StandardStandard Transazioni al minutoTransactions per minute 90° percentile a 1,0 secondi90th percentile at 1.0 seconds
BasicBasic Transazioni all'oraTransactions per hour 80° percentile a 2,0 secondi80th percentile at 2.0 seconds

Passaggi successiviNext steps