Prezentace
Transkript
Optimalizace databázových aplikací Robert Haken, HAVIT, s.r.o., Microsoft MVP ASP.NET, MCT Schéma optimalizace Server Tuning Indexy, Locking Query Optimization DB Schema Design Aplikace Aplikace • • • • scénář použití (single-/multi-user, atp.) objem přenášených dat cachování výsledků SQL Server Profiler Schéma databáze • • • • • "přirozená" normalizace přiměřeně atomické atributy bez repeating att./groups správné závislosti na klíči redundance dat Schema killers • chybné datové typy (varchar místo datetime, atp.) • chybějící reference FK, magic numbers • vícenásobné sloupce (Tel1, Tel2, ...) • konvence pojmenování • chybná normalizace • hromadné číselníky? Výchozí schéma • umělý jednoduchý PK typu int, clustered • PK auto-increment pokud není tabulka read-only • výjimka pouze M:N vazební tabulky, kde je PK složený ze dvou FK • pouze primitivní FK vůči PK (int) • žádná redundance Výchozí schéma – pro/proti + umělý PK – nemění se + monotónní růst PK – clustered index + int PK – rychlé operace (JOIN atp.) − distribuované systémy – GUID − umělý PK nehlídá přirozené duplicity v datech Variace schématu • atributová databáze • znázornění dědičnosti objektů – pozor na asociace! • denormalizace – pouze, pokud požadovaného výkonu nejsme schopni dosáhnout normalizovaným sch. Query Logical Flow 1. 2. 3. 4. 5. 6. FROM & JOIN WHERE SELECT GROUP BY & agregace HAVING ORDER BY Query Performance • query cost • execution plan • execution plan caching Query performance killers • • • • • • row-based subqueries/functions crazy JOINs (přes LIKE, atp.) zbytečný DISTINCT CURSORy, nevhodné triggery univerzální dotazy – mnoho podmínek prezentační logika (formátování, atp.) Indexy • • • • • • B-tree, (non-)clustered index index seek, range scan, full scan pokrývající indexy, included cols záleží na pořadí sloupců statistiky, estimated rows < 20% nelze optimalizovat izolovaně Indexy - výchozí doporučení • • • • • PK int clustered index primitivní indexy pro FK indexy pro unique constraints sloupce přidat do indexů sloupec Deleted soustředit se na klíčové dotazy Index killers • clustered index sloupce na konci nonclustered jsou zbytečné, jsou tam automaticky • clustered index na sloupci, který se často mění (též monotónnost) • široké clustered indexy – NC je používají jako klíče k datům Index killers II. • nevyužívané duplikátní indexy • neudržované indexy (fragmentace) Server Tuning • • • • • vše mimo grafické karty :-) velikost paměti > aktivní data rozdělení disků – data, log, indexy multicore CPU síťová karta
Podobné dokumenty
SQL Server 2016
SQL Server provádí manipulace s daty a všechny klíče jsou uloženy v klientském prostředí a ne na serveru. Always Encrypted zabezpečí data, aby k nim nemohl žádný DBA. Šifrování a dešifrování je tra...
VíceZobrazení čísel v počítači
při různých znaménkách nemůže dojít k přetečení jestliže se liší přenos do a ze znaménkového bitu došlo k přetečení liší-li se znaménko sčítanců a výsledku, tak došlo k přetečení odčít...
VíceNET Internals - WordPress.com
kořeny grafu objektů pro zjištění dosažitelnosti – zásobník (lokální proměnné, parametry) – registry CPU – GCHandles • globální statické fieldy • pinned objects
VíceGD-06 ALLEGRO - GSM komunikátor
Pro kompletní nastavení parametrů zařízení lze využít služeb nastavovacího serveru na adrese www.gsmlink.cz. Nabízí možnost načítat a měnit konfiguraci zařízení. Přenos dat probíhá pomocí datových ...
VíceUHK Fórum - MIKMIK.cz
týmovou práci. Já jsem autorem databázové struktury (návrhu, normalizace, optimalizace, vytvoření) a PHP uživatelského rozhraní (konkrétně stránek označených v pravém dolním rohu mým jménem). V sou...
VíceJaro 2015
vyprázdněný pojem. Rád bych poukázal na další rozměr milosti, který se možná vlivem jistých křesťanských psychologických důrazů vytrácí. V současné době je moderní hovořit o tom, jak nás poznamenal...
Více