Ved oppsett av en Azure SQL Database kreves en tilkoblingsstreng som inneholder viktige parametere som servernavn (f.eks. mysqlserver.database.windows.net), portnummer (1433), databasenavn, bruker-ID for SQL-autentisering, samt et passord lagret som en hemmelighet i Azure Key Vault. Når denne tilkoblingen er konfigurert, vil en virtuell maskin (VM) overvåke SQL-ressursene ved å etablere TCP-tilkoblinger til Azure SQL-tjenestene eller VM-er som kjører SQL Server. For at overvåkingsagenten skal få tilgang, må nødvendige brannmurregler eller sikkerhetsgrupper justeres for å tillate kommunikasjon.

Med utfasing av SQL Insights anbefales det nå å bruke verktøyet "database watcher" som hovedløsning for ytelsesovervåking i skyen, både for Azure SQL Database og Azure SQL Managed Instance. Database watcher samler overvåkingsdata fra databaser, administrerte instanser og elastiske puljer som administratoren velger, og lagrer informasjonen i en sentral datalager som Azure Data Explorer. Opprettelse av en watcher innebærer å definere hvilke SQL-mål som skal overvåkes og hvor data skal lagres. Resultatene kan deretter visualiseres i Azure dashboards for enkel innsikt.

Et annet kraftfullt overvåkingsverktøy er "extended events" i Azure SQL, som gir detaljert innsikt i SQL-aktivitet med stor presisjon i tid og type data. Ved hjelp av extended events kan administratorer avdekke og analysere forhold som forårsaker dårlig ytelse, som langvarige spørringer, I/O-flaskehalser og ineffektiv minnehåndtering. Extended events konfigureres i SQL Server Management Studio (SSMS) som økter, der flere hendelser kan overvåkes samtidig. Ved opprettelse av en økt kan administratoren velge hendelser manuelt eller benytte maler som forenkler valg av relevante hendelser og filtre. Dette gir mulighet til å begrense overvåkingen til nødvendig informasjon, noe som reduserer lagringsbehov og forenkler analyse.

Data som samles inn via extended events, kan lagres i minnet for sanntidsobservasjon (ring buffer), eller i Azure Blob Storage for langtidsanalyse. Opprettede økter vises i SSMS, og kan enkelt startes og stoppes etter behov. Denne fleksibiliteten gjør extended events til et viktig verktøy for detaljert og målrettet feilsøking.

Videre gir Azure SQL produkter flere verktøy for overvåking og optimalisering av spørringsytelse, blant annet Query Store. Query Store registrerer historikk over utførte spørringer, planlagte spørringsplaner, og kjøretidsstatistikk, som gjør det mulig å finjustere spørringer og løse ytelsesproblemer. Data lagres i tre hovedtabeller: planlager, kjøretidsstatistikk og ventestatistikk. Dette gir en helhetlig oversikt over hvordan spørringer utføres og hvilke ressurser de bruker.

I nye Azure SQL-databaser og Managed Instances er Query Store aktivert som standard i les/skrive-modus, slik at den automatisk kan registrere nye spørringer. For eldre SQL Server-versjoner må funksjonen aktiveres manuelt. Konfigurasjonen gjøres via SSMS ved å åpne databasen sine egenskaper og velge driftsmodus for Query Store.

Det er også viktig å overvåke blokkeringer som kan oppstå under spørringskjøring, og å bruke dynamiske administrative visninger (DMVs) for å avdekke ytelsesproblemer og identifisere potensielle forbedringer, som indekser eller spørringsendringer. Intelligent Insights i Azure tilbyr anbefalinger og analyser basert på maskinlæring for å lette denne prosessen ytterligere.

Overvåking og optimalisering i Azure SQL krever en kombinasjon av automatiserte verktøy og manuelt tilsyn, der kunnskap om hvordan og hvorfor data samles inn, samt hvordan det analyseres, er avgjørende. Det gir et grunnlag for kontinuerlig forbedring og sikring av pålitelig ytelse i komplekse og skalerbare skymiljøer.

Det er viktig å forstå at overvåking ikke bare handler om å samle data, men også om å tolke og bruke denne informasjonen effektivt. For å sikre optimal ytelse bør overvåkingen integreres i driftsrutinene, og både hendelser og ytelsesdata må sees i sammenheng med applikasjonslogikk og brukertrafikk. Videre kan sikkerhetsinnstillinger, nettverkskonfigurasjon og ressursallokering ha direkte påvirkning på SQL-databasens respons og stabilitet, og må derfor inkluderes i en helhetlig overvåkingsstrategi.

Hvordan kan man effektivt overvåke og automatisere vedlikehold i Azure SQL-databaser?

Ved regelmessig å sammenligne aktuelle måleverdier med en etablert operasjonell ytelsesbaseline, kan administratorer skille mellom forbigående ytelsesanomalier og vedvarende endringer i systemets arbeidsmengde og bruksmønstre. Ventestatistikk utgjør et kritisk område for ytelsen i SQL-databaser, der SQL Server må vente på nødvendige ressurser som CPU, minne eller lagring før en oppgave kan utføres.

SQL Insights var tidligere et verktøy for ekstern overvåking av Azure SQL-produkter, som benyttet en egen virtuell maskin for å samle metrikkdata fra alle SQL-ressurser i et Azure-abonnement. Dette verktøyet er imidlertid blitt faset ut ved utgangen av 2024 og er ikke lenger tilgjengelig. I stedet kan administratorer benytte innebygde metrikker tilgjengelig i Azure-portalen, som gir detaljerte og tilpassbare grafer for overvåking av ytelse i hver enkelt database.

Query Store i SQL Server fungerer som en logg over kjørte spørringer, vurderte spørringsplaner og runtime-statistikk. Dette gir innsikt i hvordan ulike spørringer påvirker ytelsen over tid. En vanlig utfordring i SQL-databaser er blokkering, som oppstår når en transaksjon prøver å få tilgang til data som allerede er låst av en annen transaksjon. Langvarige låser kan skape flaskehalser og forringe ytelsen betydelig.

Azure SQL Database tilbyr automatisk tuning, som benytter maskinlæring for å evaluere arbeidsbelastning og spørringsytelse. Systemet avgjør selv om det vil være ytelsesfremmende å opprette eller fjerne indekser, og utfører disse endringene automatisk for å optimalisere drift.

Innsetting av nye data i databasen krever at det finnes ledig plass i sider. Når det ikke er plass, må en side splittes for å gi plass til nye rader. Dette fragmenterer tabellen, noe som svekker ytelsen. Fragmentering må derfor overvåkes og håndteres som en del av løpende vedlikehold.

Konsistenskontroller er viktige for å sikre databasens integritet. DBCC CHECKDB-kommandoen i T-SQL kan oppdage inkonsistenser og i visse tilfeller reparere dem. Dette er avgjørende for å opprettholde en stabil og pålitelig database.

I skybaserte Azure SQL Database-miljøer er verktøy som Windows Performance Monitor utilgjengelige på grunn av manglende tilgang til operativsystemet. Derfor må overvåking tilpasses denne arkitekturen, for eksempel via Azure-portalen eller gjennom Azure Monitor.

For automatisering av vedlikehold og administrasjon tilbyr Azure SQL Managed Instance og SQL Server på Azure VM muligheten til å bruke SQL Server Agent, en tjeneste som kjører vedlikeholdsjobber som sikkerhetskopiering og indeksering. Agenten kan konfigureres til å starte automatisk, og jobber kan settes opp til å kjøre på faste tidspunkter, for eksempel utenfor ordinær arbeidstid for å unngå påvirkning på brukerne.

SQL Server Agent kan også sende varsler og meldinger til administratorer ved feil eller systemhendelser. Dette skjer gjennom en e-postprofil konfigurert via Database Mail, slik at relevante personer kan reagere raskt på eventuelle problemer.

Det er viktig å forstå at mens Azure SQL Database i seg selv håndterer mange oppdateringer og vedlikeholdsoppgaver automatisk og usynlig for brukeren, er det fortsatt behov for administrativ kontroll og overvåking av ytelse og ressursbruk. Videre krever løsninger som kjører på virtuelle maskiner eller Managed Instances mer tradisjonell administrasjon, inkludert konfigurering av vedlikeholdsjobber og overvåkning.

Optimal ytelse og stabilitet i SQL-miljøer oppnås gjennom en kombinasjon av kontinuerlig overvåking, automatiserte justeringer basert på innsikt fra metrikker og spørringshistorikk, samt planlagt vedlikehold og reaksjon på hendelser. Forståelsen av systemets oppførsel over tid gir grunnlaget for å kunne skille mellom normale variasjoner og reelle problemer som krever intervensjon.

Å ha en helhetlig tilnærming som inkluderer både automatisering og menneskelig overvåkning er avgjørende. Ytelsesdata må analyseres i sammenheng med systemets arkitektur og bruksmønstre for å kunne ta riktige beslutninger om optimalisering og ressursallokering. Det er også vesentlig å sikre at databasen forblir konsistent og fri for korrupsjon, noe som kan få alvorlige konsekvenser for applikasjonenes pålitelighet og brukeropplevelse.