Rychlost Helios Orange - Provoz SQL Serveru

PříspěvekNapsal: 11.06.2007 13:09
od jan.havranek
SQL SERVER:

1/ Je doporučeno provozovat systém Helios Orange na nejnovější verzi SQL, tedy aktuálně SQL2008R2 SP2 nebo MSSQL2012. Pokud je provozován na starších verzích, je doporučeno nainstalovat poslední Service Packy.

2/ V parametrech (Server – Vlastnosti - Processor) SQL serveru vypnout a nezapínat sekci Boost SQL Server Priority.
V praxi ověřeno, že nastavení není příliš funkční, resp. chová se nestandarně a tato vlastnost může systém dovéz až ke zhroucení, zatuhnutí apod.

3/ V parametrech (Server – Properties - Advanced - Max Degree Of Parallelism) ponechat paralellism zapnutý (hodnota 0), resp. řídit se doporučením firmy Microsoft http://support.microsoft.com/kb/2806535.

4/ Nastavit pravidelný plánovaný restart služby SQL cca 1 x za 14 dní (mimo pracovní dobu) – Plánované úlohy Windows - vytvořit soubor DOSovou *.BAT dávku a přidat ji do plánovaných úloh, načasovat pravidelné spouštění mimo pracovní dobu.
VZOR obsahu dávky BAT (upravit dle konkrétní situace):
Kód: Vybrat vše
@ECHO OFF
NET STOP MSSQL$JMENO_INSTANCE /Y
NET START MSSQL$JMENO_INSTANCE
NET START SQLAgent$JMENO_INSTANCE

Pokud je SQL server výchozí instancí pak se pouze vymaže z příkazu text $JMENO_INSTANCE.
Tím se vyčistí dočasné tabulky, chybné pakety SQL a LOG soubory všech databází. To samo přispívá k rychlejší odezvě SQL, který může být po delším čase provozu těmito údaji zatížen.

5/ Ve vlastnostech systémové databáze TEMPDB (zde se tvoří dočasné tabulky všech databází, které mohou být dost velké a dynamicky zvětšovat tuto databázi) nastavit více alokovaného prostoru na disku. Nastavit atribut Space allocated na záložce Data Files/Transaction Log ve vlastnostech databáze na větší než současných 8MB data a 1MB log. Doporučujeme zvednout na minimálně 100MB data a 20MB log. Pokud toiž přeteče alokované místo, dochází k další alokaci, což může být dosti časově náročná akce, která blokuje práci všech uživatelů na tempdb. Také je ideální pokud je tempdb a její datové soubory na samostatném svazku disků. Pokud je na disku dostatek místa, je vhodné vysledovat přímo na MSSQL průměrné hodnoty velikosti TEMPDB a tuto hodnotu použít pro databázi jako implicitní. Podle této velikosti je také vhodné nastavit vlastnost FILEGROWTH increment, tedy v jakých krocích bude databáze podle potřeby narůstat:
0 až 100 MB – 10 MB
100 až 200 MB – 20 MB
500 MB a více – 10%

6/ Ve vlastnostech SQL Serveru na záložce Memory lze otestovat nastavení parametru Minimum memory per query. Tato informace nastavuje minimální blok paměti pro jeden zaslaný dotaz. Zatím není příliš ověřeno v praxi, je to jen možnost k vyzkoušení. Standardně je nastaveno 1MB (1024KB), lze zvednout až na 20MB. Ale pozor, jde o to, že tento blok je alokován pro každého aktivního uživatele, tzn. pokud by bylo 60 uživatelů tak se tato paměť alokuje 60x. Pokud tento parametr výrazně nepomůže zpracování dotazu, lze jej opět nastavit zpět na hodnotu 1024.

7/ Na SQL vymazat všechny nepužívané databáze, kromě systémových (z těch se dá smazat pouze Pubs a Northwind) - jsou aktivní, tudíž na nich probíhají standarní procesy SQL, což může zvyšovat zatížení serveru.