SQL Server 2019 Administration Inside Out

SQL Server 2019 Administration Inside Out Paperback – release date: 2020 by Randolph West, Melody Zacharias, William Assaf, Sven Aelterman

sql server 2019 book

Conquer SQL Server 2019 administration–from the inside out

Dive into SQL Server 2019 administration–and really put your SQL Server DBA expertise to work. This supremely organized reference packs hundreds of time-saving solutions, tips, and workarounds–all you need to plan, implement, manage, and secure SQL Server 2019 in any production environment: on-premises, cloud, or hybrid. SQL Server experts offer a complete tour of DBA capabilities available in SQL Server 2019 Database Engine, SQL Server Data Tools, SQL Server Management Studio, and via PowerShell. Discover how experts tackle today’s essential tasks–and challenge yourself to new levels of mastery.

  • Install, customize, and use SQL Server 2019’s key administration and development tools
  • Manage memory, storage, clustering, virtualization, and other components
  • Architect and implement database infrastructure, including IaaS, Azure SQL, and hybrid cloud configurations
  • Provision SQL Server and Azure SQL databases
  • Secure SQL Server via encryption, row-level security, and data masking
  • Safeguard Azure SQL databases using platform threat protection, firewalling, and auditing
  • Establish SQL Server IaaS network security groups and user-defined routes
  • Administer SQL Server user security and permissions
  • Efficiently design tables using keys, data types, columns, partitioning, and views
  • Utilize BLOBs and external, temporal, and memory-optimized tables
  • Master powerful optimization techniques involving concurrency, indexing, parallelism, and execution plans
  • Plan, deploy, and perform disaster recovery in traditional, cloud, and hybrid environments

For Experienced SQL Server Administrators and Other Database Professionals

Adatbázis audit

DevOps környezetben vagy éles környezetben érdemes auditot beállítani. Saját érdekünkben érdemes tudni, hogy ki nyúlt bele és mit csinált!


Nem használt oszlopok – Empty columns

Default Null értékű oszlopok , ahol minden Null értékű:

 

Table size

Tábla méretek , használt tartalommal:

 

HEAP table is fragmented

Általában nem ajánlott HEAP tábla létrehozása (Table without Clustered Index) , egy esetben jöhet jól, ha nagyon gyors adatbetöltés szükséges.
A Heap tábla azonban töredezik, ennek oka, hogy minden Insert a tábla végére kerül és a Deleted sorok sem  kerülnek betöltésre.
Amíg a hagyományos indexeket egy index reorganizációval vagy újraépítéssel (rebuild) karbantarthajtuk és gyorssá tehetjük addig a Heap táblán nincs ilyen beépített karbantartás .
Teendő?

Continue reading “HEAP table is fragmented”

SQL Server Index Tuning

Egy több millió sorral rendelkező táblán már súlyos gondokat okozhat egy-egy index hiány.

5 Millió sor, paraméterezett select, a szerver túlterhelt:

CPU and Processor Queue Length - Performance Monitor
CPU and Processor Queue Length – Performance Monitor

11:20-kor 1 db index felrakása után látványosan csökken a CPU (kék) és CPU Queue (piros). Ellenpróba 13:35-kor az index letiltásakor ismét befullad a szerver (a határértéknek számító 80%-ról 95% átlagos cpu használatra ugrik). Ráadásul  a szerveren több mint 100 adatbázis van és mégis egy darab eljárás jelentősen beterhel.
Persze a valóság nem ilyen egyszerű, egy -egy index felrakásának hatását többnyire nem lehet performance monitor-ból kimutatni, a fenti példa egy rosszul tervezett gyakori futású kódra vonatkozik.

Index méretek

Index size

Az egyes indexek méretei. Az adott adatbázisra kell használni, szükség esetén szűrni.

Restore ellenőrzése, avagy mentés és visszaállítási információk

 

SQL futási idők mérése

Mennyi idő alatt fut le a query?

 

Magyarázat:

SET STATISTICS TIME ON  az adott session-re vonatkozik, tehát SSMS-ben  a nyitott kapcsolatra.
A végrehajtási idő nem csak a szerver hw erőforrásainak , hanem az éppen aktuális leterheltségnek is függvénye, ezért SQL optimalizációkor nem ezt használjuk, hanem a  SET STATISTICS IO  ON  -t, mivel ez utóbbi megmonja, hogy a query optimizernek hány logikai “page” olvasásra van szüksége a végrehajtás során.