Dela via


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 i virtuella Datorer (VM) i Microsoft Azure Stack Hub. När du kör SQL Server på 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 familjens storlek på 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.

Kommentar

Artikeln beskriver hur du etablerar en virtuell SQL Server-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 för SQL Server kan du 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 varje rekommenderad optimering. Tänk på dina prestandabehov och arbetsbelastningsmönster när du utvärderar dessa rekommendationer.

Kommentar

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

Checklista för metodtips för SQL Server

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

Ytdiagram 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 har stöd för 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 SQL Server-installationen.

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 automatisk ökning av 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-utgåva: DS3 eller senare

  • SQL Server Standard Edition och Web Edition: DS2 eller senare

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

Minnesriktlinjer

Virtuella datorer i DS-serien (tillsammans med DSv2-serien) i Azure Stack Hub ger maximalt operativsystemdisk- och datadiskdataflöde (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-familjeserie.

Kommentar

För produktionsarbetsbelastningar väljer du en virtuell dator i DS-serien eller DSv2-serien för att tillhandahålla maximalt 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 den tillfälliga disken (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 hur du använder 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 ä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ändartransaktion.

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 Storage, där den ena disken 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 disklistningsteknik, 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.

Kommentar

När du etablerar en virtuell SQL Server-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.

  • Disklistning: Om du vill ha mer dataflöde kan du lägga till ytterligare datadiskar och använda disklistning. För att fastställa hur många datadiskar 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 för 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 partitionsfel. 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änssnittet).

        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å högsta 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 storlek på 64 KB för allokeringsenhet 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

Det går inte att stoppa SQL-tjänsten under dessa åtgärder kan orsaka att databasen skadas.

I/O-vägledning

  • Överväg att aktivera omedelbar filinitiering för att minska den tid som krävs för inledande filallokering. Om du vill dra nytta av omedelbar filinitiering beviljar du SQL Server-tjänstkontot (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ör 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 logga tillvä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 standardplatserna för data och loggfiler (SQL Server Management Studio). Följande skärmbild visar var du kan göra dessa ändringar:

    Visa eller ändra standardplatserna

  • 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 hjälp av 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 Azure Storage. 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 Backup 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 Hjälp av 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 backups stored in Microsoft Azure . Du kan också automatisera dessa säkerhetskopieringar 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-lagring 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 endast 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-säkerhetskopiering

    Kommentar

    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 det inledande "?" för att token ska fungera i SQL Server.

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

Nästa steg

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