Najlepsze rozwiązania dotyczące programu SQL Server w celu optymalizacji wydajności w usłudze Azure Stack Hub

Ten artykuł zawiera najlepsze rozwiązania dotyczące programu SQL Server w celu optymalizacji SQL Server i poprawy wydajności maszyn wirtualnych w usłudze Microsoft Azure Stack Hub. Podczas uruchamiania SQL Server na maszynach wirtualnych usługi Azure Stack Hub użyj tych samych opcji dostrajania wydajności bazy danych, które mają zastosowanie do SQL Server w środowisku serwera lokalnego. Wydajność relacyjnej bazy danych w chmurze usługi Azure Stack Hub zależy od wielu czynników, w tym rozmiaru rodziny maszyny wirtualnej i konfiguracji dysków danych.

Podczas tworzenia obrazów SQL Server rozważ aprowizowanie maszyn wirtualnych w portalu usługi Azure Stack Hub. Pobierz rozszerzenie IaaS SQL z witryny Marketplace Management w portalu administratora usługi Azure Stack Hub i pobierz wybrane obrazy maszyn wirtualnych SQL Server. Należą do nich SQL Server 2016 SP1, SQL Server 2016 SP2 i SQL Server 2017.

Uwaga

W artykule opisano sposób aprowizowania maszyny wirtualnej SQL Server przy użyciu globalnej Azure Portal, ale wskazówki dotyczą również usługi Azure Stack Hub z następującymi różnicami: dysk SSD nie jest dostępny dla dysku systemu operacyjnego i istnieją niewielkie różnice w konfiguracji magazynu.

Na obrazach maszyn wirtualnych w przypadku SQL Server można używać tylko funkcji bring-your-own-license (BYOL). W przypadku systemu Windows Server domyślny model licencji to płatność zgodnie z rzeczywistym użyciem (PAYG). Aby uzyskać szczegółowe informacje o modelu licencji systemu Windows Server na maszynie wirtualnej, zapoznaj się z artykułem Windows Server in Azure Stack Hub Marketplace FAQ (Często zadawane pytania dotyczące systemu Windows Server w witrynie Azure Stack Hub Marketplace).

Uzyskanie najlepszej wydajności dla SQL Server na maszynach wirtualnych usługi Azure Stack Hub jest głównym tematem tego artykułu. Jeśli obciążenie jest mniej wymagające, możesz nie wymagać każdej zalecanej optymalizacji. Podczas oceny tych zaleceń należy wziąć pod uwagę wymagania dotyczące wydajności i wzorców obciążeń.

Uwaga

Aby uzyskać wskazówki dotyczące wydajności SQL Server na maszynach wirtualnych platformy Azure, zapoznaj się z tym artykułem.

Lista kontrolna najlepszych rozwiązań dotyczących programu SQL Server

Poniższa lista kontrolna zapewnia optymalną wydajność SQL Server na maszynach wirtualnych usługi Azure Stack Hub:

Warstwowy Optymalizacje
Rozmiar maszyny wirtualnej DS3 lub nowszy dla wersji SQL Server Enterprise.

DS2 lub nowszy dla wersji SQL Server Standard i web edition.
Storage Użyj rodziny maszyn wirtualnych, która obsługuje magazyn Premium.
Dyski Użyj co najmniej dwóch dysków danych (jeden dla plików dziennika i jeden dla plików danych i bazy danych TempDB), a następnie wybierz rozmiar dysku na podstawie potrzeb dotyczących pojemności. Ustaw domyślne lokalizacje plików danych na te dyski podczas instalacji SQL Server.

Unikaj używania systemu operacyjnego lub dysków tymczasowych dla magazynu bazy danych lub rejestrowania.
Usuń wiele dysków danych platformy Azure, aby zwiększyć przepływność operacji we/wy przy użyciu funkcji Miejsca do magazynowania.

Format z udokumentowanymi rozmiarami alokacji.
WE/WY Włącz natychmiastowe inicjowanie plików dla plików danych.

Ogranicz automatyczne zwiększanie baz danych z rozsądnie małymi stałymi przyrostami (64 MB-256 MB).

Wyłącz autoshrink w bazie danych.

Skonfiguruj domyślne lokalizacje kopii zapasowych i plików bazy danych na dyskach danych, a nie dysk systemu operacyjnego.

Włącz zablokowane strony.

Zastosuj SQL Server dodatki Service Pack i aktualizacje zbiorcze.
Specyficzne dla funkcji Utwórz kopię zapasową bezpośrednio do magazynu obiektów blob (jeśli jest obsługiwana przez używaną wersję SQL Server).

Aby uzyskać więcej informacji na temat sposobu i dlaczego dokonać tych optymalizacji, zapoznaj się ze szczegółami i wskazówkami podanymi w poniższych sekcjach.

Wskazówki dotyczące rozmiaru maszyny wirtualnej

W przypadku aplikacji wrażliwych na wydajność zalecane są następujące rozmiary maszyn wirtualnych :

  • SQL Server Enterprise edition: DS3 lub nowszy

  • SQL Server Standard edition i Web edition: DS2 lub nowszy

W usłudze Azure Stack Hub nie ma różnicy wydajności między serią ds i DS_v2 rodziny maszyn wirtualnych.

Wskazówki dotyczące magazynu

Maszyny wirtualne serii DS (wraz z serii DSv2) w usłudze Azure Stack Hub zapewniają maksymalną przepływność dysku systemu operacyjnego i dysku danych (IOPS). Maszyna wirtualna z serii DS lub DSv2 zapewnia maksymalnie 1000 operacji we/wy na sekundę dla dysku systemu operacyjnego i maksymalnie 2300 operacji we/wy na sekundę na dysk danych, bez względu na typ lub rozmiar wybranego dysku.

Przepływność dysku danych jest określana unikatowo na podstawie serii rodziny maszyn wirtualnych. Zapoznaj się z tym artykułem , aby zidentyfikować przepływność dysku danych na serię rodzin maszyn wirtualnych.

Uwaga

W przypadku obciążeń produkcyjnych wybierz maszynę wirtualną serii DS lub DSv2, aby zapewnić maksymalną liczbę operacji we/wy na sekundę na dysku systemu operacyjnego i dyskach danych.

Podczas tworzenia konta magazynu w usłudze Azure Stack Hub opcja replikacji geograficznej nie ma wpływu, ponieważ ta funkcja nie jest dostępna w usłudze Azure Stack Hub.

Wskazówki dotyczące dysków

Na maszynie wirtualnej usługi Azure Stack Hub istnieją trzy główne typy dysków:

  • Dysk systemu operacyjnego: Podczas tworzenia maszyny wirtualnej usługi Azure Stack Hub platforma dołącza co najmniej jeden dysk (oznaczony jako dysk C ) do maszyny wirtualnej dla dysku systemu operacyjnego. Ten dysk jest wirtualnym dyskiem twardym przechowywanym jako stronicowy obiekt blob w magazynie.

  • Dysk tymczasowy: Maszyny wirtualne usługi Azure Stack Hub zawierają inny dysk o nazwie dysk tymczasowy (oznaczony jako dysk D ). Jest to dysk w węźle, który może służyć do magazynowania.

  • Dyski danych: Możesz dołączyć dodatkowe dyski do maszyny wirtualnej jako dyski danych, a te dyski są przechowywane w magazynie jako stronicowe obiekty blob.

W poniższych sekcjach opisano zalecenia dotyczące korzystania z tych różnych dysków.

Dysk systemu operacyjnego

Dysk systemu operacyjnego to dysk VHD, który można uruchomić i zainstalować jako działającą wersję systemu operacyjnego i jest oznaczony jako dysk C .

Dysk tymczasowy

Dysk magazynu tymczasowego oznaczony jako dysk D nie jest trwały. Nie przechowuj żadnych danych, które nie chcesz utracić na dysku D . Obejmuje to pliki bazy danych użytkownika i pliki dziennika transakcji użytkownika.

Zalecamy przechowywanie bazy danych TempDB na dysku danych, ponieważ każdy dysk danych zapewnia maksymalnie 2300 operacji we/wy na sekundę na dysk danych.

Dyski danych

  • Użyj dysków danych dla plików danych i dzienników. Jeśli nie używasz usuwania dysków, użyj dwóch dysków danych z maszyny wirtualnej obsługującej magazyn w warstwie Premium, gdzie jeden dysk zawiera pliki dziennika, a drugi zawiera dane i pliki TempDB. Każdy dysk danych zapewnia wiele operacji we/wy na sekundę w zależności od rodziny maszyn wirtualnych, zgodnie z opisem w temacie Rozmiary maszyn wirtualnych obsługiwane w usłudze Azure Stack Hub. Jeśli używasz techniki usuwania dysków, takiej jak miejsca do magazynowania, umieść wszystkie dane i pliki dziennika na tym samym dysku (w tym TempDB). Ta konfiguracja zapewnia maksymalną liczbę operacji we/wy na sekundę dostępnych dla SQL Server do użytku, niezależnie od tego, który plik potrzebuje ich w danym momencie.

Uwaga

Podczas aprowizowania maszyny wirtualnej SQL Server w portalu możesz edytować konfigurację magazynu. W zależności od konfiguracji usługa Azure Stack Hub konfiguruje co najmniej jeden dysk. Wiele dysków jest połączonych w jedną pulę magazynów. Zarówno dane, jak i pliki dziennika znajdują się razem w tej konfiguracji.

  • Rozbieranie dysków: Aby uzyskać większą przepływność, możesz dodać dodatkowe dyski danych i użyć rozbierania dysków. Aby określić wymaganą liczbę dysków danych, przeanalizuj liczbę operacji we/wy na sekundę wymaganą dla plików dziennika oraz dla danych i plików TempDB. Zwróć uwagę, że limity liczby operacji we/wy na sekundę są na dysk danych oparte na rodzinie serii maszyn wirtualnych, a nie na podstawie rozmiaru maszyny wirtualnej. Jednak limity przepustowości sieci są oparte na rozmiarze maszyny wirtualnej. Aby uzyskać więcej informacji, zobacz tabele dotyczące rozmiarów maszyn wirtualnych w usłudze Azure Stack Hub . Weź pod uwagę następujące wytyczne:

    • W przypadku systemu Windows Server 2012 lub nowszego użyj funkcji Miejsca do magazynowania z następującymi wytycznymi:

      1. Ustaw interleave (rozmiar paska) na 64 KB (65 536 bajtów) dla obciążeń przetwarzania transakcji online (OLTP) i 256 KB (262 144 bajtów) dla obciążeń magazynowania danych, aby uniknąć wpływu wydajności z powodu niezgodności partycji. Należy to ustawić za pomocą programu PowerShell.

      2. Ustaw liczbę kolumn = liczbę dysków fizycznych. Użyj programu PowerShell podczas konfigurowania więcej niż ośmiu dysków (nie Menedżer serwera interfejsu użytkownika).

        Na przykład następujący program PowerShell tworzy nową pulę magazynów z rozmiarem przeplatanym ustawionym na 64 KB i liczbą kolumn na 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
        
  • Określ liczbę dysków skojarzonych z pulą magazynów na podstawie oczekiwań dotyczących obciążenia. Należy pamiętać, że różne rozmiary maszyn wirtualnych zezwalają na różne liczby dołączonych dysków danych. Aby uzyskać więcej informacji, zobacz Rozmiary maszyn wirtualnych obsługiwane w usłudze Azure Stack Hub.

  • Aby uzyskać maksymalną możliwą liczbę operacji we/wy na sekundę dla dysków danych, zaleca się dodanie maksymalnej liczby dysków danych obsługiwanych przez rozmiar maszyny wirtualnej i użycie rozbierania dysków.

  • Rozmiar jednostki alokacji NTFS: Podczas formatowania dysku danych zalecamy użycie rozmiaru jednostki alokacji 64 KB dla plików danych i dzienników, a także bazy danych TempDB.

  • Rozwiązania dotyczące zarządzania dyskami: Podczas usuwania dysku danych zatrzymaj usługę SQL Server podczas zmiany. Ponadto nie zmieniaj ustawień pamięci podręcznej na dyskach, ponieważ nie zapewnia żadnych ulepszeń wydajności.

Ostrzeżenie

Niepowodzenie zatrzymania usługi SQL podczas tych operacji może spowodować uszkodzenie bazy danych.

Wskazówki dotyczące we/wy

  • Rozważ włączenie natychmiastowej inicjowania plików, aby skrócić czas wymagany do początkowej alokacji plików. Aby skorzystać z natychmiastowego inicjowania plików, należy przyznać konto usługi SQL Server (MSSQLSERVER) za pomocą SE_MANAGE_VOLUME_NAME i dodać je do zasad zabezpieczeń Wykonywanie zadań konserwacji woluminu. Jeśli używasz obrazu platformy SQL Server dla platformy Azure, domyślne konto usługi (NT Service\MSSQLSERVER) nie jest dodawane do zasad zabezpieczeń Wykonywanie zadań konserwacji woluminu. Innymi słowy, natychmiastowe inicjowanie plików nie jest włączone w obrazie platformy Azure SQL Server. Po dodaniu konta usługi SQL Server do zasad zabezpieczeń Wykonywanie zadań konserwacji woluminu uruchom ponownie usługę SQL Server. Mogą istnieć zagadnienia dotyczące zabezpieczeń związane z używaniem tej funkcji. Aby uzyskać więcej informacji, zobacz Inicjowanie pliku bazy danych.

  • Autogrow jest awaryjne dla nieoczekiwanego wzrostu. Nie zarządzaj wzrostem danych i dzienników na co dzień z automatycznym zwiększaniem. Jeśli jest używana funkcja automatycznego zwiększania, wstępnie zwiększ rozmiar pliku przy użyciu przełącznika Rozmiar .

  • Upewnij się, że funkcja automatycznego ściągnięcia jest wyłączona, aby uniknąć niepotrzebnych obciążeń, które mogą negatywnie wpływać na wydajność.

  • Skonfiguruj domyślne lokalizacje kopii zapasowych i plików bazy danych. Skorzystaj z zaleceń w tym artykule i wprowadź zmiany w oknie Właściwości serwera. Aby uzyskać instrukcje, zobacz Wyświetlanie lub zmienianie domyślnych lokalizacji dla plików danych i dzienników (SQL Server Management Studio). Poniższy zrzut ekranu przedstawia, gdzie należy wprowadzić te zmiany:

    Wyświetlanie lub zmienianie lokalizacji domyślnych

  • Włącz zablokowane strony, aby zmniejszyć liczbę operacji we/wy i wszystkich działań stronicowania. Aby uzyskać więcej informacji, zobacz Włączanie stron blokady w opcji pamięci (Windows).

  • Podczas przesyłania/z usługi Azure Stack Hub należy rozważyć kompresowanie dowolnych plików danych, w tym kopii zapasowych.

Wskazówki dotyczące funkcji

Niektóre wdrożenia mogą osiągnąć dodatkowe korzyści z wydajności przy użyciu bardziej zaawansowanych technik konfiguracji. Na poniższej liście wyróżniono niektóre funkcje SQL Server, które mogą pomóc w lepszej wydajności:

  • Tworzenie kopii zapasowej w usłudze AzureStorage. Podczas tworzenia kopii zapasowych dla SQL Server uruchomionych na maszynach wirtualnych usługi Azure Stack Hub można użyć SQL Server Backup do adresu URL. Ta funkcja jest dostępna od wersji SQL Server 2012 SP1 CU2 i zalecana do tworzenia kopii zapasowych dołączonych dysków danych.

    Podczas tworzenia kopii zapasowej lub przywracania przy użyciu usługi Azure Storage postępuj zgodnie z zaleceniami podanymi w artykule SQL Server Backup to URL Best Practices and Troubleshooting and Restoreing From Backups Stored in Microsoft Azure (Najlepsze rozwiązania dotyczące tworzenia kopii zapasowych i rozwiązywania problemów z kopiami zapasowymi przechowywanymi na platformie Microsoft Azure). Te kopie zapasowe można również zautomatyzować przy użyciu automatycznej kopii zapasowej dla SQL Server na maszynach wirtualnych platformy Azure.

  • Tworzenie kopii zapasowej w magazynie usługi Azure Stack Hub. Możesz utworzyć kopię zapasową magazynu usługi Azure Stack Hub w podobny sposób, jak w przypadku tworzenia kopii zapasowych w usłudze Azure Storage. Podczas tworzenia kopii zapasowej w programie SQL Server Management Studio (SSMS) należy ręcznie wprowadzić informacje o konfiguracji. Nie można użyć programu SSMS do utworzenia kontenera magazynu ani sygnatury dostępu współdzielonego. Program SSMS łączy się tylko z subskrypcjami platformy Azure, a nie subskrypcjami usługi Azure Stack Hub. Zamiast tego należy utworzyć konto magazynu, kontener i sygnaturę dostępu współdzielonego w portalu usługi Azure Stack Hub lub za pomocą programu PowerShell.

    tworzenie kopii zapasowej SQL Server

    Uwaga

    Sygnatura dostępu współdzielonego to token SAS z portalu usługi Azure Stack Hub bez wiodącego ciągu "?". Jeśli używasz funkcji copy z portalu, musisz usunąć wiodący element "?", aby token działał w SQL Server.

    Po skonfigurowaniu i skonfigurowaniu lokalizacji docelowej kopii zapasowej w SQL Server można utworzyć kopię zapasową do magazynu obiektów blob usługi Azure Stack Hub.

Następne kroki

Korzystanie z usług lub tworzenie aplikacji dla usługi Azure Stack Hub