Optymalna konfiguracja Microsoft SQL Server 2014

Slides:



Advertisements
Podobne prezentacje
Video DR-S Cyfrowy rejestrator wideo
Advertisements

Indeksy w bazie danych Oracle
Marcin Piotrowski. Najpopularniejszymi darmowymi przeglądarkami są Internet Explorer, Opera, Mozilla Firefox, Google Chrome.
Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
Standardowa biblioteka języka C++
Rafał Hryniów Tomasz Pieciukiewicz
SIECI KOMPUTEROWE WYKŁAD 10. RÓWNOWAŻENIE OBCIĄŻEŃ
Microsoft Professional Developer Days 2004
ADAM Active Directory w trybie aplikacyjnym
25/08/ Bazy danych II Piotr Górczyński Instrukcja UPDATE.
25/08/ Bazy danych II Piotr Górczyński Administracja MS SQL.
Projektowanie Aplikacji Komputerowych
25/08/2001 Bazy danych II 1 Piotr Górczyński Wstęp do SQL.
Łukasz Czerwonka. Podstawy i założenia regularność wydajność szybkość ochrona kopii.
Microsoft Exchange Server 2003 Obieg dokumentów
Systemy zarządzania bazami danych 10. Strojenie. Oryginał: Shasha & Bonnet10. Strojenie2.
ODE Zapytania. Pętla for (1) Do obiektów będących instancjami klas możemy uzyskać dostęp za pomocą pętli for Zakres tej pętli to wszystkie obiekty klasy.
Rozdział 13: Architektura systemu Oracle
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 2: Język bazy danych - SQL Proste zapytania.
Systemy plików FAT i FAT 32
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Proxy (WWW cache) Sieci Komputerowe
Usługa Windows Server Update Services (WSUS)
Tworzenie stron w języku WML jest zbliżone do tworzenia stron w HTML. W obydwu przypadkach używa się do tego celu znaczników (tagów). Zadaniem znaczników.
Rozproszone bazy danych
Bezpieczeństwo danych
Systemy zarządzania treścią CMS
Język Java Wielowątkowość.
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Zarządzanie transakcjami w SQL Server
Autor: Maciej Piwowarczyk
Autor: Maciej Piwowarczyk
Mechanizm kompresji danych w SQL Server 2008
ACTIVE DIRECTORY Definicja Active Directory.
PRACA W DOMENIE Różnice użytkowe między pracą w domenie i grupie roboczej. 1. Ekran logowania. - wciśnięcie klawiszy [Ctrl+Alt+Delete], a następnie podanie.
SIEĆ P2P 1. Definicja sieci równouprawnionej. To taka sieć, która składa się z komputerów o takim samym priorytecie ważności, a każdy z nich może pełnić.
TBD - P ERFORMANCE W BAZACH M ICROSOFT SQL S ERVER, CZYLI O CO W TYM W OGÓLE CHODZI Michał Grodzicki MCTS SQL SERVER lipca 2012.
Nowoczesny system zarządzania firmą
Podstawy programowania II
MySQL – ODBC - ACCESS.
Cecylia Szymanska - Ban | Education Lead Microsoft.
Wirtualna baza SQL zgodna z SQL Server SQL as a Service
Administracja serwerem bazy danych Oracle 11g Zarządzanie strukturą bazy danych Wykład nr 2 Michał Szkopiński.
Instrukcje: CREATE, INSERT, UPDATE, DELETE, DROP
Solphy Polska Prezentacja Produktu Solphy Home Storage.
Co nowego w klastrach Windows Server 8
InTouch.
Systemy plików FAT, FAT32, NTFS
SQL - Structured Query Language
Sieć oparta o serwer Ubuntu 12.10
Komendy SQL do pracy z tabelami i bazami
MICROSOFT Access TWORZENIE MAKR
Opracowanie ćwiczeń dotyczących zapewniania niezawodności baz danych na przykładzie Oracle Opiekun : dr inż. Agnieszka Landowska Dyplomant : Tomasz Krzyżanowski.
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
ŁUKASZ SKROBOT, Konsultant techniczny Sybase Professional services
Archiwizacja bazy danych
System Zarządzania Bazą Danych
Konfiguracja VPN Serwera – Windows 7
Uprawnienia w Windows Server
1. Logowanie z usługą Active Directory. a) logowanie do domeny Windows 2003 Server odbywa się znacznie szybciej niż w poprzednich wersjach. b) nie ma odwołania.
Komendy SQL do pracy z danymi
Operacje na plikach i folderach
Wdrożenie Foglight w Urzędzie Dozoru Technicznego
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
SQL Server 2012 Autor: Radosław Różyński Strategie i ciekawostki związane z kopiami zapasowymi baz danych SQL Server.
Projekt „NEW-TECH Program rozwoju praktycznych kompetencji nauczycieli zawodów branż nowych technologii” jest współfinansowany przez Unię Europejską Projekt.
Darmowe narzędzia Veeam dla administratorów infrastruktury.
Strukturalny język zapytań SQL - historia
Technologie Informacyjne Bazy danych
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

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.

Damian Widera damian.widera@live.com @Damian.Widera http://sqlblog.com/blogs/damian_widera/default.aspx

Agenda Czy jest sens w ogóle o tym mówić? Gdzie popełniamy błedy? Design? Aplikacja? Konfiguracja serwera? Konfiguracja SQL Server

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

Czy mamy dużo danych? 2 miesiące 198 GB

Kompresja kopii zapasowej - TAK Od SQL Server 2008 – tylko w edycji Enterprise Od SQL Server 2008 R2 ++ - dostępne w edycji Standard Domyślnie wyłączona BACKUP WITH COMPRESSION Zmiana domyślnego zachowania: EXEC sys.sp_configure 'backup compression default'‚ 1

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

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

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

Optimize for adhoc workload - TAK SELECT * FROM sys.dm_exec_cached_plans WHERE objtype='Adhoc'

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

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

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ę

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

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

Zbyt wiele plików VLF - NIE Fakty: Około 100 VLF – OK Dla bazy 350 GB – 350-400 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

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 http://www.sqlskills.com/blogs/paul/important-change-vlf-creation-algorithm-sql-server-2014/

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

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!!!

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

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

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

Jak to działa – wykonywanie „zadania” w SQL Server Processor Waiting Queue Runnable Queue

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)

Jak to działa czII Processor Waiting Queue Runnable Queue Processor

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

Execution Model w praktyce SQL Server 2005 Waits and Queues , Tony Davidson

Execution Model w praktyce SQL Server 2005 Waits and Queues , Tony Davidson

Execution Model w praktyce (*,**) SQL Server 2005 Waits and Queues , Tony Davidson

CXPACKET – brak problemu

CXPACKET – problem

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 …

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ć

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

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

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!

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.