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...
Zobrazení čí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...
NET 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
GD-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 ...
UHK 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...
Jaro 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...