Prestandafunktioner
Vi börjar med att titta på några av prestandafunktionerna i Azure SQL jämfört med SQL Server.
Eftersom Azure SQL Database och Azure SQL Managed Instance baseras på SQL Server-databasmotorn är de flesta av funktionerna i SQL Server också tillgängliga i Azure SQL. Det finns några funktioner som påverkar databasernas prestanda som du bör tänka på när du distribuerar och konfigurerar Azure SQL. Dessa omfattar maximal kapacitet, index, minnesintern OLTP, partitioner, SQL Server-förbättringar och intelligenta prestandafunktioner.
Minnes-, CPU- och I/O-kapacitet
Om du ska få goda prestanda kan det vara viktigt att välja rätt distributions och tjänstnivå för Azure SQL Database eller SQL Managed Instance. I den andra modulen fick du lära dig om de olika distributionsalternativen för Azure SQL. Tänk på följande viktiga maximala kapaciteter som en del av distributionen:
- Azure SQL Database har stöd för upp till 128 virtuella kärnor, 4 TB minne och en databasstorlek på 4 TB.
- Distributionsalternativet Hyperskala har stöd för databasstorlekar på upp till 100 TB.
- Azure SQL Managed Instance har stöd för upp till 80 virtuella kärnor, 400 GB minne och en databasstorlek på 8 TB.
- Antalet virtuella kärnor och tjänstnivån påverkar också andra resurskapaciteter som maximal loggningsfrekvens, IOPS, I/O-latens och minne.
- Windows-jobbobjekt används som stöd för vissa resursgränser, till exempel minne. Använd sys.dm_os_job_object om du vill hitta verkliga kapaciteter för din distribution.
Index
Index är ofta avgörande för frågeprestanda både i SQL Server och Azure SQL. Här är några viktiga saker att tänka på när det gäller index och Azure SQL:
- Alla indextyper, grupperade och icke-grupperade, stöds i hela Azure SQL.
- Onlineindex och återställningsbara index stöds fullt ut. Onlineindex och återställningsbara index kan vara avgörande för maximal tillgänglighet.
- Kolumnlagringsindex är tillgängliga på nästan alla tjänstnivåer. I dokumentationen finns information om eventuella undantag.
Minnesintern OLTP
Den viktiga faktor som kännetecknar on-line-transaktionsbearbetning (OLTP) är ett program som läser och skriver data med många samtidiga transaktioner i realtid. Minnesintern OLTP är en funktion för program som är känsliga för transaktionsfördröjning, till exempel program där ett stort antal samtidiga användare ändrar data. Här är några viktiga saker att tänka på när det gäller minnesintern OLTP och Azure SQL:
- Minnesoptimerade tabeller är bara tillgängliga på Affärskritisk nivåer.
- Den minnesoptimerade FILEGROUP skapas i förväg i Azure SQL Database och SQL Managed Instance när en databas skapas (även för allmänna användningsnivåer).
- Mängden minne för minnesoptimerade tabeller är en procentandel av den beroende minnesgränsen för virtuella kärnor.
Partitioner
Med SQL Server använder du ofta partitioner för tabeller med ett stort antal rader för att förbättra prestanda genom att dela upp data med en kolumn i tabellen. Tänk på följande när det gäller partitioner i Azure SQL:
- Partitioner stöds för Azure SQL Database och SQL Managed Instance.
- Du kan bara använda filgrupper med partitioner på SQL Managed Instance.
Senaste prestandaförbättringar för SQL Server
Många av de prestandafunktioner som introducerats sedan SQL Server 2019, till exempel intelligent frågebearbetning (IQP), är också tillgängliga i Azure SQL Database och Azure SQL Managed Instance. Det finns dock vissa undantag. Till tempdb
exempel är metadataoptimering ännu inte tillgängligt för Azure SQL. En slutgiltig lista över stöd för IQP-funktioner finns i Intelligenta frågebearbetningsfunktioner.
Intelligenta prestanda
Intelligenta prestanda omfattar funktioner i Azure SQL som till exempel intelligent frågebearbetning, automatisk plankorrigering och automatisk justering (inklusive index). Du får lära dig mer om de här funktionerna i en senare lektion.