2014-11-03 6 views
19

Sto utilizzando MVC3, EF5, LINQ, .NET4.5, database SQL.Le prestazioni del database Web sembrano più veloci dei nuovi livelli di servizio del database SQL di Azure?

Microsoft ha appena introdotto i nuovi livelli di servizio per i database SQL, ovvero Basic, Standard e Premium.

Inizialmente utilizzavo il database SQL "Web" poiché il mio DB era piccolo, ovvero circa 30 MB. Tuttavia, durante l'istanza del mio sito Web di test, ho utilizzato il sito Web di base e le impostazioni del database SQL "di base" per risparmiare denaro.

Ho una query "più lenta" in esecuzione che ha preso all'improvviso 9 secondi quando il mio Live DB è stato ripristinato come DB di nuovo stile "Base" nell'istanza di test. È strumento di circa 2,5 secondi in diretta. Quando ho ridimensionato questa istanza DB di test a SO "standard", 20 DTU, sono occorsi 3,9 secondi. Quando ho ridimensionato questo DB al formato "Web" "ritirato", ci sono voluti 1,9 secondi che mi hanno davvero sorpreso. È come se fosse necessario scalare il DB in S1 per ottenere prestazioni paragonabili al vecchio DB in stile "Web", ma sospetto che questo costerà più del vecchio DB in formato "Web".

Apprezzo qualsiasi commento su quanto sopra, soprattutto se altri hanno trovato che i nuovi stili di DB possono essere più lenti.

Alla fine della giornata, quale configurazione nel nuovo stile DB è equivalente al vecchio stile "Web"?

Grazie.

EDIT (questo è davvero davvero preoccupante)

ho scoperto un documento molto utile su questo, ed i miei peggiori timori sono confermati vedere Web/Business comparison with new SQL Database service tiers. Questi sono molto, molto preoccupanti in quanto sembra che le prestazioni del database web possano essere eguagliate solo dall'edizione "Premium P1" e non potremmo permetterci l'uso di questo. Quindi per il momento continueremo a utilizzare l'edizione "Web".

EDIT, sembra di aver toccato un nervo scoperto .... Ci sono molte persone preoccupati per questo ....

vedi: Forum chat with worried users

RISPOSTE DALLA NET GROUP UTENTE

I ho anche parlato con un certo numero di miei Azure usando i peer .NET in una recente riunione di gruppo di utenti, ed erano anche molto preoccupati per il fatto che credevano che gli sviluppatori avrebbero lasciato Azure. Penso che uno degli errori chiave qui, da parte di Microsoft, sia quello di impostare le prestazioni di Basic ben al di sotto di quelle del Web (la maggior parte delle volte) e persino di S1 ​​e S2 sotto il web. È solo quando si entra in P1 e P2 che si sperimenta un par, e non osiamo usarlo in prova a causa dell'impatto sulle cariche. Nella nostra esperienza Web ha raggiunto questo livello elevato per il 90% delle volte. Immagino che il 10% sia lì, dal momento che tu dici di sì, ma nessuno dei nostri clienti si è lamentato di questo. Tuttavia, per mantenere il nostro attuale livello di prestazioni, dovremmo eseguire l'aggiornamento a S2 o P1, che avrebbe un impatto straordinario sulle nostre tariffe mensili. Il feedback di Jim Rand è apprezzato e supporta le nostre preoccupazioni.

+0

Questo problema si è verificato in un recente meetup relativo ad Azure e sembra che quasi tutti siano interessati. Quasi la metà delle persone con cui ho interagito sta già iniziando a spostare le proprie macchine virtuali in AWS. Le persone che hanno creato la loro app utilizzando i servizi cloud di Azure hanno un costo elevato. – Rajiv

risposta

11

Sono l'autore del post di blog menzionato sopra. È disponibile una versione più aggiornata di quel post: http://cbailiss.wordpress.com/2014/09/16/performance-in-new-azure-sql-database-performance-tiers/

I test che ho condotto riguardavano principalmente le capacità di I/O fisico dei nuovi livelli di servizio. Da questi test credo che P1 offra circa lo stesso I/O in media come Web/Business.

Quindi, la risposta alla tua domanda specifica:

Alla fine della giornata, ciò che l'installazione nel nuovo stile DB è il vecchio stile "Web" equivalente a?

Se si stesse eseguendo verso i limiti di I/O fisico di Web/Business (grosso modo 200MB + lettura, 50 MB + scrivere al minuto), quindi direi che è necessario un minimo di P1 per offrire I equivalente/O prestazioni nei nuovi livelli di servizio.

Se in media il vostro I/O è in genere molto inferiore alle cifre sopra, il database può eseguire OK su uno dei livelli standard.

I miei test non hanno quantificato/confrontato differenze di CPU o di memoria tra Web/Business e i nuovi livelli, ma anch'essi scalano per livello di servizio nel nuovo mondo. Il DMV sys.resource_stats nel database master potrebbe offrire alcune informazioni sul carico di lavoro. Vedere il post più recente del blog sopra per maggiori dettagli.

Per completezza, vale la pena ricordare che i livelli di servizio più recenti offrono alcuni altri vantaggi probabile che supportano più connessioni simultaneamente, nuove caratteristiche di disponibilità, nuove funzioni di backup, ecc

Speranza che aiuta ...

MODIFICA: gen 2015: un nuovo livello di prestazioni Standard S3 è attualmente in anteprima come parte della versione di Azure SQL Database v12. Sembra che offrirà un rapporto prezzo-prestazioni in un punto molto più vicino a Business Edition di quanto sia stato disponibile fino ad ora. Inoltre, ogni livello di servizio e livello di prestazioni sembra ottenere prestazioni più elevate in v12. Vedere il mio post sul blog per i dettagli: https://cbailiss.wordpress.com/2014/12/17/azure-sql-database-v12-performance-tests-show-significant-performance-increase/

Chris

+0

Chris, grazie per questo. Apprezzo che un P1 o P2 possa offrire vantaggi, ma la differenza di prezzo è paralizzante per una piccola impresa. La nostra scelta sarebbe di mantenere le stesse prestazioni e pagare molto più denaro o pagare lo stesso e fare un calo significativo delle prestazioni. In ogni caso, il rapporto prezzo/prestazioni è aumentato in modo significativo andando avanti, il che potrebbe costringerci a non utilizzare il Database SQL. Nel frattempo continueremo con il livello "Web". – SamJolly

+0

BTW, articoli eccellenti ..... Un grande grazie. – SamJolly

+1

Concordo sul fatto che l'aumento del prezzo% per mantenere le prestazioni è molto alto per molte piccole imprese (specialmente quelle con database relativamente più piccoli ma con carichi elevati). Se solo un piccolo numero di operazioni sta causando un carico sproporzionato, le operazioni di ottimizzazione/rielaborazione delle prestazioni potrebbero essere valide. Se le operazioni di massa avvengono fuori orario/settimanali, un'altra opzione potrebbe essere quella di passare a un livello superiore per alcune ore. Ma ovviamente aggiunge anche complessità. In definitiva, il mio istinto è che molte persone troveranno Standard Tier un sostituto inadeguato per Web/Business, ma il tempo dirà ... – cbailiss

8

System.Data.SqlClient.SqlException: Timeout scaduto. Il periodo di timeout è trascorso prima del completamento dell'operazione o il server non risponde. Hit questo giovedì scorso. Conversione di dati dal vecchio sistema in SQL Azure. Scegli il nuovo Standard (S2) invece del database di 5 gig (in pensione). SQL:

UPDATE Invoice 
SET SalesOrderID = O.SalesOrderID 
FROM Invoice 
INNER JOIN SalesOrder AS O ON Invoice.InvoiceID = O.InvoiceID 

196043 righe. Ri funzionò e ci vollero più di 4 minuti. Esportato database e ricaricato nell'edizione Web. Query ha impiegato 19 secondi. La dimensione totale del database è di circa 750 megabyte.

In conclusione, questo è più che "tutto un po 'preoccupante". A meno che Microsoft non ottenga le prestazioni sui nuovi livelli base/standard/premium fino a dove si trova ora nella versione web, possono tranquillamente baciare Azure addio. Assolutamente irragionevole che non è possibile eseguire una query solo sulle righe 196043 a meno che i dati non siano nella cache. Così tanto per l'analisi con un database relazionale.

Questa settimana mi consiglierò al mio cliente. Indubbiamente, contatterà i vertici di Microsoft.

+0

Ho appena " aggiornato "e hanno lo stesso problema. Oh caro ... –

1

Jim, sarei felice di aiutarti. Sappiamo che cambiare i modelli di business è una cosa difficile da fare. Nel caso Web/Business, si paga sulla dimensione del DB e si ottiene qualsiasi prestazione che abbiamo in quel momento. A volte questo è bello, altre volte va bene e a volte le prestazioni sono molto scarse. I clienti ci hanno fornito un feedback sul fatto che questa performance imprevedibile è molto difficile da gestire.

Utilizzando questo feedback come input chiave, il modello di business per Basic/Standard/Premium è $/perf. Capire quali risorse consumano è un ottimo primo passo prima di passare a B/S/P. Abbiamo diversi consigli nuovi che dovrebbero aiutarti a fare questo

http://azure.microsoft.com/en-us/documentation/articles/sql-database-upgrade-new-service-tiers/ La tua situazione potrebbe variare qui. Molti clienti vedono un calo a causa di questo cambiamento del modello di business. Altri non vedono alcun impatto e alcuni vedranno un aumento se i loro DB sono molto piccoli e consumano molte risorse. Io e il team saremmo felici di aiutare i clienti a entrare nel nuovo modello di business. Per avere grandi conversazioni occorrono alcune specifiche del cliente che non sono condivise al meglio in un forum pubblico. guyhay @ microsoft è la mia email se desideri avere quella conversazione.

+0

Ho aggiunto alla mia domanda sopra, un feedback da un recente gruppo di utenti .NET. Riteniamo che Microsoft abbia sbagliato e rischia di alienare molti utenti di Azure fedeli, in particolare le aziende .NET di minori dimensioni. – SamJolly

+1

Ho aggiunto alla mia domanda sopra, un feedback da un recente gruppo di utenti .NET. Riteniamo che Microsoft abbia sbagliato e rischia di alienare molti utenti di Azure fedeli, in particolare le aziende .NET di minori dimensioni. Il problema principale è la limitazione delle prestazioni di S1 ​​di base e standard ben al di sotto di Web Edition e, probabilmente, S2 in una certa misura. Mi aspetterei che Basic sia il 75% di Web Edition e S1 il 100% delle prestazioni di Web Edition e S2 120%, con l'aggiunta della coerenza delle prestazioni rispetto a Web Edition, altrimenti nessun motivo per l'aggiornamento. Ma sembra che siamo così al di sotto di questo al momento. Perché aggiornare? – SamJolly