Metodtips för SQL Server för att optimera prestanda i Azure Stack Hub

Den här artikeln innehåller metodtips för SQL Server för att optimera SQL Server och förbättra prestanda på virtuella Datorer i Microsoft Azure Stack Hub. När du kör SQL Server i virtuella Azure Stack Hub-datorer använder du samma alternativ för prestandajustering av databasen som gäller för SQL Server i en lokal servermiljö. Prestandan för en relationsdatabas i ett Azure Stack Hub-moln beror på många faktorer, inklusive familjestorlek för en virtuell dator och konfigurationen av datadiskarna.

När du skapar SQL Server avbildningar bör du överväga att etablera dina virtuella datorer i Azure Stack Hub-portalen. Ladda ned SQL IaaS-tillägget från Marketplace Management i Azure Stack Hub-administratörsportalen och ladda ned ditt val av SQL Server VM-avbildningar. Dessa inkluderar SQL Server 2016 SP1, SQL Server 2016 SP2 och SQL Server 2017.

Anteckning

Artikeln beskriver hur du etablerar en SQL Server virtuell dator med hjälp av den globala Azure Portal, men vägledningen gäller även för Azure Stack Hub med följande skillnader: SSD är inte tillgängligt för operativsystemdisken och det finns mindre skillnader i lagringskonfigurationen.

I VM-avbildningarna kan du för SQL Server bara använda BYOL (Bring-Your Own License). För Windows Server är standardlicensmodellen betala per användning (PAYG). Detaljerad information om Windows Server-licensmodellen på den virtuella datorn finns i artikeln Vanliga frågor och svar om Windows Server i Azure Stack Hub Marketplace.

Den här artikeln fokuserar på att få bästa prestanda för SQL Server på virtuella Azure Stack Hub-datorer. Om din arbetsbelastning är mindre krävande kanske du inte behöver alla rekommenderade optimeringar. Tänk på dina prestandabehov och arbetsbelastningsmönster när du utvärderar dessa rekommendationer.

Anteckning

Prestandavägledning för SQL Server i virtuella Azure-datorer finns i den här artikeln.

Checklista för metodtips för SQL Server

Följande checklista är för optimal prestanda för SQL Server på virtuella Azure Stack Hub-datorer:

Område Optimeringar
Storlek på virtuell dator DS3 eller senare för SQL Server Enterprise edition.

DS2 eller senare för SQL Server Standard edition och Web Edition.
Storage Använd en VM-familj som stöder Premium Storage.
Diskar Använd minst två datadiskar (en för loggfiler och en för datafil och TempDB) och välj diskstorlek baserat på dina kapacitetsbehov. Ange standarddatafilplatserna till dessa diskar under installationen av SQL Server.

Undvik att använda operativsystem eller tillfälliga diskar för databaslagring eller loggning.
Stripe flera Azure-datadiskar för att få ökat I/O-dataflöde med hjälp av lagringsutrymmen.

Formatera med dokumenterade allokeringsstorlekar.
I/O Aktivera direkt filinitiering för datafiler.

Begränsa autogrow på databaserna med relativt små fasta steg (64 MB–256 MB).

Inaktivera autoshrink på databasen.

Konfigurera standardplatser för säkerhetskopiering och databasfiler på datadiskar, inte operativsystemdisken.

Aktivera låsta sidor.

Använd SQL Server servicepaket och kumulativa uppdateringar.
Funktionsspecifik Säkerhetskopiera direkt till bloblagring (om den stöds av den SQL Server version som används).

Mer information om hur och varför du gör dessa optimeringar finns i informationen och vägledningen i följande avsnitt.

Vägledning för VM-storlek

För prestandakänsliga program rekommenderas följande VM-storlekar :

  • SQL Server Enterprise edition: DS3 eller senare

  • SQL Server Standard och webbutgåva: DS2 eller senare

Med Azure Stack Hub finns det ingen prestandaskillnad mellan DS- och DS_v2 VM-serien.

Minnesriktlinjer

DS-serien (tillsammans med virtuella datorer i DSv2-serien) i Azure Stack Hub ger maximalt dataflöde för operativsystemdiskar och datadiskar (IOPS). En virtuell dator från DS- eller DSv2-serien tillhandahåller upp till 1 000 IOPS för operativsystemdisken och upp till 2 300 IOPS per datadisk, oavsett typ eller storlek på den valda disken.

Datadiskens dataflöde bestäms unikt baserat på vm-serien. Du kan läsa den här artikeln för att identifiera datadiskens dataflöde per vm-serie.

Anteckning

För produktionsarbetsbelastningar väljer du en virtuell dator i DS-serien eller DSv2-serien för att tillhandahålla högsta möjliga IOPS på operativsystemdisken och datadiskarna.

När du skapar ett lagringskonto i Azure Stack Hub har alternativet geo-replikering ingen effekt eftersom den här funktionen inte är tillgänglig i Azure Stack Hub.

Vägledning för diskar

Det finns tre huvudsakliga disktyper på en virtuell Azure Stack Hub-dator:

  • Operativsystemdisk: När du skapar en virtuell Azure Stack Hub-dator ansluter plattformen minst en disk (märkt som C-enheten ) till den virtuella datorn för operativsystemdisken. Den här disken är en virtuell hårddisk som lagras som en sidblob i lagringen.

  • Tillfällig disk: Virtuella Azure Stack Hub-datorer innehåller en annan disk som kallas tillfällig disk (märkt som D-enheten ). Det här är en disk på noden som kan användas för ledigt utrymme.

  • Datadiskar: Du kan koppla ytterligare diskar till den virtuella datorn som datadiskar och dessa diskar lagras i lagring som sidblobar.

I följande avsnitt beskrivs rekommendationer för att använda dessa olika diskar.

Operativsystemdisk

En operativsystemdisk är en virtuell hårddisk som du kan starta och montera som en version av ett operativsystem som körs och som är märkt som C-enhet .

Tillfällig disk

Den tillfälliga lagringsenheten, märkt som D-enheten , är inte beständig. Lagra inga data som du inte vill förlora på D-enheten . Detta inkluderar dina användardatabasfiler och loggfiler för användartransaktioner.

Vi rekommenderar att du lagrar TempDB på en datadisk eftersom varje datadisk ger högst 2 300 IOPS per datadisk.

Datadiskar

  • Använd datadiskar för data och loggfiler. Om du inte använder disklistning använder du två datadiskar från en virtuell dator som stöder Premium-lagring, där en disk innehåller loggfilerna och den andra innehåller data och TempDB-filer. Varje datadisk tillhandahåller ett antal IOPS beroende på VM-familjen, enligt beskrivningen i VM-storlekar som stöds i Azure Stack Hub. Om du använder en diskrandigeringsteknik, till exempel Lagringsutrymmen, placerar du alla data och loggfiler på samma enhet (inklusive TempDB). Den här konfigurationen ger dig det maximala antalet IOPS som är tillgängligt för SQL Server att använda, oavsett vilken fil som behöver dem vid en viss tidpunkt.

Anteckning

När du etablerar en SQL Server virtuell dator i portalen kan du redigera lagringskonfigurationen. Beroende på din konfiguration konfigurerar Azure Stack Hub en eller flera diskar. Flera diskar kombineras till en enda lagringspool. Både data- och loggfilerna finns tillsammans i den här konfigurationen.

  • Diskstrimning: Om du vill ha mer dataflöde kan du lägga till ytterligare datadiskar och använda diskrensning. För att fastställa antalet datadiskar som du behöver analyserar du antalet IOPS som krävs för dina loggfiler och för dina data och TempDB-filer. Observera att IOPS-gränserna är per datadisk baserat på VM-seriens familj och inte baserat på vm-storleken. Gränserna för nätverksbandbredd baseras dock på storleken på den virtuella datorn. Mer information finns i tabellerna om VM-storlekar i Azure Stack Hub . Använd följande riktlinjer:

    • För Windows Server 2012 eller senare använder du Lagringsutrymmen med följande riktlinjer:

      1. Ange interleave (randstorlek) till 64 KB (65 536 byte) för OLTP-arbetsbelastningar (onlinetransaktionsbearbetning) och 256 KB (262 144 byte) för datalagerarbetsbelastningar för att undvika prestandapåverkan på grund av partitionsfeljustering. Detta måste anges med PowerShell.

      2. Ange kolumnantal = antal fysiska diskar. Använd PowerShell när du konfigurerar fler än åtta diskar (inte Serverhanteraren användargränssnitt).

        Följande PowerShell skapar till exempel en ny lagringspool med mellanlagringsstorleken inställd på 64 kB och antalet kolumner till 2:

        $PoolCount = Get-PhysicalDisk -CanPool $True
        $PhysicalDisks = Get-PhysicalDisk | Where-Object {$_.FriendlyName -like "*2" -or $_.FriendlyName -like "*3"}
        
        New-StoragePool -FriendlyName "DataFiles" -StorageSubsystemFriendlyName "Storage Spaces*" -PhysicalDisks $PhysicalDisks | New-VirtualDisk -FriendlyName "DataFiles" -Interleave 65536 -NumberOfColumns 2 -ResiliencySettingName simple -UseMaximumSize |Initialize-Disk -PartitionStyle GPT -PassThru |New-Partition -AssignDriveLetter -UseMaximumSize |Format-Volume -FileSystem NTFS -NewFileSystemLabel "DataDisks" -AllocationUnitSize 65536 -Confirm:$false
        
  • Fastställa antalet diskar som är associerade med lagringspoolen baserat på dina belastningsförväntningar. Tänk på att olika VM-storlekar tillåter olika antal anslutna datadiskar. Mer information finns i VM-storlekar som stöds i Azure Stack Hub.

  • För att få maximalt antal möjliga IOPS för datadiskar rekommenderar vi att du lägger till det maximala antalet datadiskar som stöds av din VM-storlek och att använda disklistning.

  • Storlek på NTFS-allokeringsenhet: När du formaterar datadisken rekommenderar vi att du använder en allokeringsenhet på 64 kB för data- och loggfiler samt TempDB.

  • Metoder för diskhantering: När du tar bort en datadisk stoppar du SQL Server-tjänsten under ändringen. Ändra inte heller cacheinställningarna på diskarna eftersom det inte ger några prestandaförbättringar.

Varning

Om SQL-tjänsten inte stoppas under dessa åtgärder kan databasen skadas.

I/O-vägledning

  • Överväg att aktivera omedelbar filinitiering för att minska den tid som krävs för den inledande filallokeringen. Om du vill dra nytta av omedelbar filinitiering beviljar du tjänstkontot SQL Server (MSSQLSERVER) med SE_MANAGE_VOLUME_NAME och lägger till det i säkerhetsprincipen Utför volymunderhållsuppgifter. Om du använder en SQL Server plattformsbild för Azure läggs inte standardtjänstkontot (NT Service\MSSQLSERVER) till i säkerhetsprincipen Utföra volymunderhållsuppgifter. Med andra ord aktiveras inte omedelbar filinitiering i en SQL Server Azure-plattformsbild. När du har lagt till SQL Server-tjänstkontot i säkerhetsprincipen Utför volymunderhållsuppgifter startar du om SQL Server-tjänsten. Det kan finnas säkerhetsöverväganden för att använda den här funktionen. Mer information finns i Databasfilinitiering.

  • Autogrow är en beredskap för oväntad tillväxt. Hantera inte dina data och loggtillväxt dagligen med automatisk tillväxt. Om autogrow används utökar du filen i förväg med hjälp av växeln Storlek .

  • Kontrollera att autoshrink är inaktiverat för att undvika onödiga omkostnader som kan påverka prestanda negativt.

  • Konfigurera standardplatser för säkerhetskopiering och databasfiler. Använd rekommendationerna i den här artikeln och gör ändringarna i fönstret Serveregenskaper. Anvisningar finns i Visa eller ändra standardplatser för data och loggfiler (SQL Server Management Studio). Följande skärmbild visar var du kan göra dessa ändringar:

    Visa eller ändra standardplatser

  • Aktivera låsta sidor för att minska I/O och eventuella växlingsaktiviteter. Mer information finns i Aktivera alternativet Lås sidor i minne (Windows).

  • Överväg att komprimera alla datafiler när du överför in/ut från Azure Stack Hub, inklusive säkerhetskopior.

Funktionsspecifik vägledning

Vissa distributioner kan ge ytterligare prestandafördelar med mer avancerade konfigurationstekniker. I följande lista visas några SQL Server funktioner som kan hjälpa dig att uppnå bättre prestanda:

  • Säkerhetskopiera till AzureStorage. När du gör säkerhetskopior för SQL Server som körs på virtuella Azure Stack Hub-datorer kan du använda SQL Server Säkerhetskopiering till URL. Den här funktionen är tillgänglig från och med SQL Server 2012 SP1 CU2 och rekommenderas för säkerhetskopiering till de anslutna datadiskarna.

    När du säkerhetskopierar eller återställer med Azure Storage följer du rekommendationerna i SQL Server Backup to URL Best Practices and Troubleshooting and Restoreing From Backups Stored in Microsoft Azure .When you backup or restoreing from Azure storage, follow the recommendations provided in SQL Server Backup to URL Best Practices and Troubleshooting and Restoreing From Backups Stored in Microsoft Azure. Du kan också automatisera dessa säkerhetskopior med automatiserad säkerhetskopiering för SQL Server på virtuella Azure-datorer.

  • Säkerhetskopiera till Azure Stack Hub Storage. Du kan säkerhetskopiera till Azure Stack Hub Storage på ett liknande sätt som när du säkerhetskopierar till Azure Storage. När du skapar en säkerhetskopia i SQL Server Management Studio (SSMS) måste du ange konfigurationsinformationen manuellt. Du kan inte använda SSMS för att skapa lagringscontainern eller signaturen för delad åtkomst. SSMS ansluter bara till Azure-prenumerationer, inte Azure Stack Hub-prenumerationer. I stället måste du skapa lagringskontot, containern och signaturen för delad åtkomst i Azure Stack Hub-portalen eller med PowerShell.

    SQL Server Backup

    Anteckning

    Signaturen för delad åtkomst är SAS-token från Azure Stack Hub-portalen, utan inledande "?" i strängen. Om du använder kopieringsfunktionen från portalen måste du ta bort inledande "?" för att token ska fungera inom SQL Server.

    När du har konfigurerat säkerhetskopieringsmålet i SQL Server kan du sedan säkerhetskopiera till Azure Stack Hub Blob Storage.

Nästa steg

Använda tjänster eller skapa appar för Azure Stack Hub