Jaký je výkon SQL Azure?

Windows Azure exaktně definuje u Compute služby (Web role a Worker role) technické parametry virtuálních počítačů, na kterých běží. Jednoduše si můžete odhadnout, jaký výkon z jedné výpočetní instance získáte.

Jinak je tomu ale u SQL Azure. Zde oficiální dokumentace nezmiňuje žádná jiná technická specifika, než je kapacit databáze a dostupnost služby, neudává. Jaký můžeme tedy od jedné databáze můžeme očekávat výkon? Zeptal jsem se přímo u produktového manažera SQL Azure. Abych byl přesný, budu odpověď citovat „SQL Azure běží na infrastruktuře vybudované na komoditním hardware(1). Před několika měsíci měl tento hardware tuto konfiguraci – 32 GB RAM, 8 jader a 12 disků. Tyto individuální servery jsou sdíleny mezi několika tenanty. Funkce databázového throttleru a load balanceru zajišťují, že v situaci kdy jeden logický SQL Azure server využívá příliš mnoho systémových zdrojů nodu a mohly by být ovlivněny jiní tenanti, je zajištěno přesměrování požadavků na jiný nod, který má kopii této databáze. V tuto chvíli nemáme výkonnostní SLA, ale jeho podoba se připravuje“.

Ve výše popsané současné situaci je nejlepší si službu otestovat. Naštěstí tuto nelehkou práci udělala pracovní skupina System Group na Swiss Federal Institute of Technology Zurich. Výsledek jejich práce byl je dokumentován na webu High Scalability.

Pokud výkon jednoho nodu opravdu dosáhne krajní hranice, řešením je SQL partitiong, dobře popsaný v tomto white paper.