Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałIzabela Mazurkiewicz Został zmieniony 9 lat temu
1
Optymalna konfiguracja Microsoft SQL Server 2014
Damian Widera SQL Server MVP © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
2
Damian Widera damian.widera@live.com @Damian.Widera
3
Agenda Czy jest sens w ogóle o tym mówić? Gdzie popełniamy błedy?
Design? Aplikacja? Konfiguracja serwera? Konfiguracja SQL Server
4
Trendy IT Dane cyfrowe zwiększą się 44x w ciągu następnej dekady
EKSPLOZJA DANYCH KONSUMERYZACJA IT PRIVATE & PUBLIC CLOUD Dane cyfrowe zwiększą się 44x w ciągu następnej dekady W 2015, usługi w chmurze będą stanowiły 46% wzrostu wydatków na IT IDC Digital Universe Study, sponsored by EMC, May 2010. Worldwide and Regional Public IT Cloud Services 2011 – 2015 Forecast, IDC , June 2011—Doc #228485
5
Czy mamy dużo danych? 2 miesiące 198 GB
6
Kompresja kopii zapasowej - TAK
Od SQL Server 2008 – tylko w edycji Enterprise Od SQL Server 2008 R dostępne w edycji Standard Domyślnie wyłączona BACKUP WITH COMPRESSION Zmiana domyślnego zachowania: EXEC sys.sp_configure 'backup compression default'‚ 1
7
Kompresja kopii zapasowej - TAK
KAŻDA edycja jest w stanie odtworzyć skompresowaną kopię zapasową bazy danych Zysk: SELECT backup_size / compressed_backup_size, backup_start_date,backup_finish_date FROM msdb.dbo.backupset
8
Optimize for adhoc workload - TAK
Pomaga uratować cache - plan cache Użycie zapytań „adhoc” utrudnia ponowne użycie planów zapytań Cache zawiera mnóstwo planów użytych tylko raz Cache planów będzie coraz większy kosztem pamięci przeznaczonej na dane
9
Optimize for adhoc workload - TAK
Zapytanie wykonane tylko raz – w cache przechowywany jest tylko „stub” planu (128 bajtów) Pełny plan będzie przechowany jeśli zapytanie zostanie wykonane po raz kolejny Konfiguracja: EXEC sys.sp_configure'optimize for ad hoc workloads',1
10
Optimize for adhoc workload - TAK
SELECT * FROM sys.dm_exec_cached_plans WHERE objtype='Adhoc'
11
Włączenie opcji Priority Boost - NIE
Opcja przeznaczona do wycofania, była istotna w SQL Server 2000 Wątki SQL Server uruchamiane są z wysokim priorytetem Wątki „nie SQL” mogą być uruchamiane rzadko lub wcale Uwaga – serwer może nie odpowiadać Uwaga – można zauważyć nieplanowane przełączenia klastra
12
Instant File Initialization - TAK
Plik danych jest inicjalizowany bez operacji zerowania Tworzenie bazy danych Dodawanie plików danych Zwiększenie rozmiaru pliku Odtworzenie pliku z kopii zapasowej Co trzeba zrobić: PERFORM VOLUME MAINTENANCE TASK Restart SQL Server
13
Instant File Initialization - TAK
Nie działa: Plik dziennika transakcji – zawsze musi być zerowany Migawka bazy danych Włączone TDE TF 1806 – wyłącza opcję
14
Domyślna opcja rozszerzania plików - NIE
Domyślne opcje rozszerzania plików bazy danych 1MB dla plików danych 10% dla dziennika transakcji Wartości są dziedziczone z bazy model – można / trzeba je zmienić! Produkcyjne bazy danych są większe niż kilka MB Częste powiększanie powoduje konieczność alokacji zasobów serwera – zwolnienie jego pracy Fragmentacja
15
Zbyt wiele plików VLF - NIE
Plik dziennika transakcji (ldf) składa się wewnętrzne z wirtualnych plików DBCC LOGINFO – zwraca 1 wiersz dla każdego VLF
16
Zbyt wiele plików VLF - NIE
Fakty: Około 100 VLF – OK Dla bazy 350 GB – plików jest OK Mała ilość dużych plików – niedobrze Duża ilość małych plików - nieodbrze Tracimy czas podczas odtwarzania / odzyskiwania / startu bazy danych
17
Zbyt wiele plików VLF - NIE
Ile plików jest tworzonych domyślnie: < 64MB = 4pliki (1/4 wielkości bazy) 64MB -> 1GB = 8 plików (1/8....) > 1GB = 16 plików (1/16....) Uwaga: SQL 2014 ma zmieniony algorytm
18
Nieużywane indeksy - NIE
Indeksy muszą być zarządzane Operacje DML ( I + U + D) Fragmentacja Gdzie szukać informacji: SELECT * FROM sys.dm_db_index_usage_stats Index_id -> sys.indexes Object_id Database_id
19
Opcja AUTO_CLOSE OFF - TAK
Opcja konfiguracyjna w bazie danych Domyślnie włączona w SQL Server Express Przy braku aktywnych połączeń baza danych przechodzi w tryb offline Nowe połączenie powoduje przełączenie bazy w tryb online – może wystąpić timeout!!!
20
Opcja AUTO_SHRINK OFF - TAK
Opcja konfiguracyjna w bazie danych Włączona – zmniejsza pliki bazy danych Czas / Moment zmniejszenia – nieznany Powoduje znaczne obciążenie serwera Powoduje fragmentację indeksów
21
Poprawne ustawienie MAXDOP - TAK
MAXDOP > 1 (lub =0) umożliwia wielowątkowe uruchamianie zapytań Może się zdarzyć, że spowoduje to problemy z zasobami i w efekcie zamiast szybszego wyniku – będzie wolniej
22
CXPACKET Pojawia się w momencie, kiedy zadanie jest wykonywane na wielu procesorach To nie znaczy, że jest źle Jeśli wartości szybko rosną – może to być problem NIE rekomendować od razu MAXDOP = 1 Najlepiej na całej instancji (to żart) Jeśli pojawia się w towarzystwie PAGEIOLATCH_SH -> duuuży skan danych
23
Jak to działa – wykonywanie „zadania” w SQL Server
Processor Waiting Queue Runnable Queue
24
Zadania - informacje SUSPENDED = Waiter List (chcę coś zrobić, ale czekam na zasoby) - sys.dm_os_waiting_tasks RUNNABLE = Runnable Queue (mam już zasoby, czekam na procesor) sys.dm_exec_requests RUNNING – PROCESSOR (zadanie jest w trakcie wykonywania)
25
Jak to działa czII Processor Waiting Queue Runnable Queue Processor
26
Jak to działa – wykonanie równoległe
Thread 5 Thread 0 Thread 1 Thread 6 Thread 2 Exchange operator Thread 7 Thread 3 Thread 8 Thread 4
27
Execution Model w praktyce
SQL Server 2005 Waits and Queues , Tony Davidson
28
Execution Model w praktyce
SQL Server 2005 Waits and Queues , Tony Davidson
29
Execution Model w praktyce (*,**)
SQL Server 2005 Waits and Queues , Tony Davidson
30
CXPACKET – brak problemu
31
CXPACKET – problem
32
CXPACKET - diagnoza Pojawia się zawsze przy zrównolegleniu operacji
Table scan Brak indeksu (ncl), nieodpowiedni plan zapytania Brak dobrych statystyk Należy Zadbać o aktualizację statystyk Zweryfikować strategię indeksowania MAXDOP …
33
MAXDOP – na marginesie Znalezione w sieci „rekomendacje” Fakty
Ustawić na 1, jeżeli CXPACKET to dominujący WAIT Ustawić na 1 zawsze dla systemów OLTP Ustawić na połowę liczby fizycznych procesorów Ustawić na liczbę węzłów NUMA Fakty NIE MA jednej, dobrej reguły ustawiania MAXDOP Są wskazówki, co należy zrobić
34
MAXDOP – wskazówki Dla większości systemów OLTP ustawienie MAXDOP na 1 da dobry rezultat. Można spróbować zrobić to dla całej instancji (*), ale można też zidentyfikować problematyczne zapytania i spróbować dla nich ustawić taką opcję Dla systemów „mieszanych” (raporty – analizy – oltp) nie należy ustawiać MAXDOP=1 na poziomie instancji, tylko na poziomie poszczególnych zapytań. Jeśli jest Resorce Governor, to można zdefiniować grupy i im przydzielić MAXDOP Jeżeli w systemie dominuje CXPACKET, to przed zmianą MAXDOP należy sprawdzić, co jest jego przyczyną. Mogą to być problemy np. ze statystykami. Można zmienić Cost of Parallelism na wyższy
35
tempdb – „bottleneck by design”
Default config: one data file, one log file. Now imagine: 64 cores, heavy workload – and everyone hitting the same tempdb file. Contention on page 2:1:1 (PFS) and/or 2:1:3 (SGAM) Solution: Create multiple files for tempdb, of equal size. MS recommends 1:1 with #CPUs, I recommend 1:2 unless more needed
36
MIN – MAX SERVER MEMORY - TAK
Obydwie wartości powinny zostać poprawnie ustawione Jest to krytyczne ustawienie w środowiskach wirtualnych Dobre praktyki: Z dostępnego RAMu pozostawić 2-6GB na system operacyjny Pozostałą pamięć rozdzielić na instancje SQL Server Zwłaszcza ważne w klastrze!
37
Optymalna konfiguracja Microsoft SQL Server 2014
Damian Widera SQL Server MVP © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.