Artikel top billede

Erfaren databasemand: SQL Azure er umoden

SQL Azure er direkte uegnet som produktions-system, mener databaseadministratorer. Se her hvorfor.

"Det er en ufattelig dårlig ide at lægge produktions-systemer op i SQL Azure."

Databaseadministratoren (DBA) Martin Schmidt fra Miracle har sammen med Mark S. Rasmussen fra iPaper set nærmere på muligheder og begrænsninger i Microsofts cloud-baserede database SQL Azure.

I eftermiddag vil de to på Miracle OpenWorld-konferencen under sessionen "SQL Azure for DBA´s" give deres bud på, hvorvidt SQL Azure fra et DBA-synspunkt er moden som produktions-database.

Den korte version af præsentationen er, at SQL Azure ikke er klar til produktionsmiljø.

Er DBA-arbejde muligt på SQL Azure?

"Vi planlagde at lave en præsentation om cloud computing til konferencen. Det var oplagt at tage fat i SQL Azure. Vi har set en del Microsoft-præsentationer, hvor alt er rosenrødt og fantastisk med mulighed for at skalere uendeligt. Alle de historier man har hørt så meget om," fortæller Martin Schmidt.

De to udviklere ville se på, hvordan SQL Azure vil fungere ud fra deres daglige virke som udvikler og database-administrator.

Mark S. Rasmussen så på, hvordan det er at skrive kode op mod databasen, mens Martin Schmidt så på mulighederne for at tilgå et normalt system hos en af kunderne, hvis det kørte på SQL Azure.

"Hvilke muligheder er der for at se, hvordan databasen kører, hvad kører dårligt, har vi problemer nogle steder og hvad er det, systemet bruger tid på," siger Martin Schmidt.

Ikke godt for SQL Azure

Indgangsvinklen med at vurdere SQL Azure ud fra kriterier som enhver anden produktionsmoden database faldt ikke ud til SQL Azures fordel.

"Vores præsentation er ikke positiv over for SQL Azure," siger Martin Schmidt.

"Vi har stillet os selv spørgsmålet, om vi kan bruge det her til noget professionelt. Der har vi valgt at være hudløse ærlige og sige: "Jamen, det er svært" Vores sidste slide lyder "Why use SQL Azure?" og er ellers helt blank," siger han.

Det kan lyde som om, de to bevidst er gået efter at finde alle de dårlige egenskaber ved SQL Azure, men ifølge Martin Schmidt har de to anlagt en objektiv, professionel indstilling.

"Hvis vi havde fundet et scenarie, hvor det ville være genialt at anvende SQL Azure, så ville vi have taget det med, men det har vi ikke."

Sessionen i eftermiddag vil præsentere resultaterne af deres undersøgelser, men allerede nu kan Computerworld løfte sløret for nogle af resultaterne.

Se Microsofts svar på kritikken her.

Lokal backup efterlyses

"Det der gør mest ondt i mit DBA-hjerte er, at man ikke kan få en backup i hånden. Som gammel DBA synes jeg, det er mærkeligt, at man ikke kan få backup af sine data og gemme dem lokalt. Alt hvad der hedder traditionel database-backup; det kan man ikke," siger Martin Schmidt.

Backup er jo noget som Microsoft siger: det tager vi os af; det skal I ikke bekymre jer om. Det er vel en del af cloud computing-paradigmet?

"Det er rigtigt. Microsoft garanterer, at data replikeres rundt og alting. Men det er mennesker, som behandler det her. Man kan komme til at slette en tabel. Det kan Microsoft jo ikke hjælpe med at rette op på. Hvis der er en der kommer til at droppe en tabel, eller laver updatering med en forkert WHERE-clause; hvad så?

Man kan ikke lige tage en backup og rulle den på, for man har ikke en backup.

Hvad gør en webshop, der mister hele sit produktkatalog?

Jeg tror ikke, at man kan få Microsoft til at rulle en backup på hurtigt. Det er bedst at have sin egen kopi af data liggende," mener Martin Schmidt.

Hvilken hardware kører vi på?

Som DBA foretrækker Martin Schmidt også at vide, hvilken slags hardware han skal køre sin database på.

"Microsoft siger, at det kan skalere og man behøver ikke at bekymre sig om så meget.

Jeg ville have det dårligt med at skulle lægge noget i produktion. Jeg ville ikke lægge hovedet på blokken og sige det her kommer til at køre fornuftigt.

Jeg vil vide noget om maskinen, cpu, memory. Det kan man ikke, man får bare at vide, at det kan skalere uendeligt. Man får en blackbox," mener Martin Schmidt.

Det er vel en af ideerne med cloud computing; man behøves ikke at vide hvilken hardware man kører på?

"Hvis man er DBA og har ansvar for at databasen kører og performer godt, så er man absolut interesseret i at vide bare noget om det," svarer Martin Schmidt.

Martin Schmidt savner også elementære værktøjer til at give information om databasens performance. Information, der er altafgørende, hvis man ønsker at tune performance.

Se Microsofts svar på kritikken her.

Databasetuning ikke mulig

"Selvom man flytter alle sine databaseforespørgsler op i skyen, så skal det være muligt at performance-optimere databasen.

På en normal SQL Server vil man bruge server traces, extended events eller se på udvalgte DMV (Dynamic Management Views, red.). Det giver mulighed for at se hvad databasen foretager sig på den her boks. Den slags er der ikke adgang til i SQL Azure," siger Martin Schmidt og uddyber:

"Mange af de DMV´er (Dynamic Management Views), der indeholder systeminformation findes slet ikke. Der er enkelte DMV´er der stilles til rådighed. Man kan se hvad der har været den dyreste forespørgsel I/O-mæssigt. Der er måske 5 procent af de værktøjer, der er interessante for en DBA. Noget så simpelt som en sys.dm_os_wait_stats, der viser hvilke ressourcer databasen venter på, findes ikke.
Man er virkelig ude i en blackbox, hvor man skal stole rigtigt meget på Microsoft."

SQL Azure blev frigivet til generel brug 1. februar 2010, så der er tale om en tidlig version. Det ser dog ikke ud til, at Martin Schmidt og andre DBA´er får bedre værktøjer med en kommende version.

"Der kommer en ny udgave i juni, hvor der kommer ekstra features. En af de største ting er, at man nu kan få 50 GB databaser. Jeg har ikke set, at der kommer sådan noget som wait statistics, server traces eller extended events, der kan bruges til fejlhåndtering," siger Martin Schmidt.

Skal indeks rebuildes?

Noget andet som Martin Schmidt savner til en professionel DBA er muligheden for at se, hvornår indeks skal rebuildes.
Ligesom en harddisk over tid kan blive fragmenteret så det kræver en defragmentering for at speede performance op, så kan database-indekses med tiden også blive fragmenteret, hvilket påvirker databasens performance.
Her vil en rebuild af indekset hjælpe.

"På SQL Azure kan man ikke finde ud af, hvor fragmenteret indekses er. Det er ikke muligt at se fragmenteringsgraden på indekses, så man ved ikke, hvornår man skal rebuilde indekses," siger Martin Schmidt, der påpeger at det ikke er sundt for performance at rebuilde indeks hele tiden.

Bliver indeks brugt?

En anden indeks-relateret ting som Martin Schmidt mangler i SQL Azure er muligheden for at se om et indeks bliver brugt. Den information er vigtig, hvis databasens skriveperformance skal optimeres.

"Nogle gange ser vi, at man har indekseret sig ihjel ved at lægge 77 indekses på en tabel. Hvis der laves mange skrivninger til en sådan overindekseret tabel, vil det tage tid. På en lokal SQL Server vil man se efter brugsmønsteret for indekses og se hvilke indekses, der reelt benyttes.
Det har man ikke adgang til på SQL Azure," siger Martin Schmidt.

Spændt på Banedanmarks erfaringer

Er de rigtige indeks definerede?

Der er heller ikke mulighed for umiddelbart at identificere de søgninger, der tager laaaang tid, fordi en tabel ikke er indekseret korrekt. Hvis en søgning skal udføres uden mulighed for at anvende indeks, læses sekventielt igennem en tabel.

Normalt ligger der et systemview, der hedder dm_exec_cached_plans, der viser, hvordan en søgning vil udføres, såkaldte execution plans. dm_exec_cached_plans er ikke tilgængelig på SQL Azure.

"På et produktionsmiljø vil du slå op i cachedplan og se, hvad der er det tungeste statement og hvilke planer der er brugt. Der vil man måske se, at det tungeste statement laver en tablescan på den største tabel. Det vil man ikke kunne på SQL Azure medmindre man sidder og trykker go for hver enkelt statement i udviklingsmiljøet," siger Martin Schmidt.

"I udviklingsværktøjet kan man bede om at se en grafisk plan for det statement man kører her og nu. Med cached_plan kan man se execution plans for alle 200.000 statements i produktion som brugerne fyrer af," forklarer Martin Schmidt.

Spændt på Banedanmarks erfaringer

Samlet set mener Martin Schmidt, at det vil være "en ufattelig dårlig ide at lægge produktions-systemer op i SQL Azure".
"For mig at se, er det stadig et sandkasse-agtigt miljø," siger Martin Schmidt.

Banedanmark er netop i denne uge igang med et proof-of-concept for en kommende cloud-baseret udgave af Trafikinformationssystemet. Her er netop SQL Azure en central komponent.

Martin Schmidt ser da også frem til at høre om Banedanmarks erfaringer.

"Jeg mener ikke, at SQL Azure er produktionsmoden, så jeg er meget spændt på at høre om Banedanmarks resultater," siger han.

Mens vi venter på resultatet af Banedanmarks Proof-of-Concept, har Computerworld bedt Microsoft Danmarks Azure-evangelist Rene Løhde om at svare på kritikken af SQL Azure.

Rene Løhde har svaret skriftligt i en email til Computerworld.




Brancheguiden
Brancheguide logo
Opdateres dagligt:
Den største og
mest komplette
oversigt
over danske
it-virksomheder
Hvad kan de? Hvor store er de? Hvor bor de?
Alfapeople Nordic A/S
Rådgivning, implementering, udvikling og support af software og it-løsninger indenfor CRM og ERP.

Nøgletal og mere info om virksomheden
Skal din virksomhed med i Guiden? Klik her

Kommende events
Digital vækst 2024

På Digital Vækst 2024 bringer vi danske virksomheders organisation, forretning og data i spil samt spejler dem i det, som teknologipartnerne bringer til fadet. Konferencen bliver tætpakket med dygtige digitale ledere og frontkæmpere fra ind- og udland. De har én opgave på dagsordenen: At inspirere dig til at træffe de rigtige forretningsmæssige, teknologiske og strategiske valg i 2024, som kan sikre vækst for dig.

19. marts 2024 | Læs mere


Cyber Threats 2024: Sådan arbejder de IT-kriminelle – og sådan beskytter du dig

De cyberkriminelle har udviklet sig betydeligt, arbejder professionelt, fleksibelt og udnytter hinandens specifikke kompetencer – omtrent som en velsmurt koncern med klar ansvarsfordeling – og har ofte en klar politisk eller kommerciel motivation. Det stiller også nye krav til din tilgang til cybersikkerhed, og på Cyber Threats 2024 får du viden, som gør dig i stand til bedre at prioritere, planlægge og eksekvere en tidssvarende cybersikkerhedsstrategi.

20. marts 2024 | Læs mere


AI Impact Day: Har du styr på risiko og governance – og er du klar til AI Act?

AI og Machine Learning har for længst gjort sit indtog i centrale, kritiske forretningssystemer, og både udviklere, platformleverandører og koncerner er begyndt at udforske mulighederne. På dette eksklusive event dykker vi ned i AI's indflydelse på fremtidens forretnings- og IT-drift. Men vi ser også på, hvordan du mest effektivt arbejder med governance og risikostyring på dine AI-projekter.

21. marts 2024 | Læs mere