De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Applicatieplatform congres 12 & 13 maart

Verwante presentaties


Presentatie over: "Applicatieplatform congres 12 & 13 maart"— Transcript van de presentatie:

1 Applicatieplatform congres 12 & 13 maart
Peter ter Braake TrainSQL

2 SQL Server Monitoring en Tuning
Peter ter Braake

3 De praktijk Gebruiker Hij doet het niet DBA Hij is traag

4 Performance Optimization Model
Server Tuning Locking Indexing Query Optimization Schema Design

5 Schema design Slecht ontwerp = slechte performance !
Normaliseren / Denormaliseren Generaliseren / specialiseren Ster (Snowflake) File / Filegroups Hardware (SAN, RAID) Partitioning Views, sprocs, functions SQL Server 2008: Filestream Sparse columns Compression App(s) Workload DB

6 Symptomen Veel IO Hoog memory verbruik Hoog CPU gebruik Veel locking
WAITS

7 Performance Optimization Model
Server Tuning Locking Indexing Query Optimization Schema Design

8 What Is Query Logical Flow?
The Query Logical Flow Diagram Non-aggregate query Result Set From & Join Where Order By Select Aggregate query Rows Result Set Result Set Grouping and Aggregation Having Order By Cost Based Optimization Statistics

9 Query plans Data Retrieval operators: Join operators Table scan
Index scan Index seek Row ID Lookup Join operators Nested Loop Join Merge Join Hash Join

10 Query optimization Favor set-based logic Test query variations
Avoid query hints Use correlated subqueries EXISTS i.p.v. join Avoid user-defined functions in WHERE clause Use table-valued functions as derived tables Avoid unnecessary GROUP BY columns Gebruik subquery als mogelijk Use CASE expressions Divide joins into temporary tables DW / partitioning?

11 Index architecture Heap Clustered index Nonclustered index
Ongesorteerd, ongestructureerd Clustered index Gesorteerd, B-Tree, leaf level bevat volledige records Telefoonboek Nonclustered index Gesorteerd, B-Tree, leaf level bevat verwijzingen Studieboek

12 Tools Management Studio: DMV Execution plans Set statistics IO
Set statistics time Client Statistics DMV Sys.dm_??? Sys.dm_db_index_physical_stats Sys.dm_exec_query_plan

13 Show execution plan DEMO

14 Indexing Index strategie bepaald door Standard reports
Grote database Verdeling data Workload (type queries en aantal gebruikers) Standard reports Performance Dashboard (Missing indexes) Profiler Database Engine Tuning Advisor

15 Tips Gebruik Covering indexes Grote tabellen:
Vanaf SQL Server 2005: INCLUDE keyword Vanaf SQL Server 2008: filtered index Grote tabellen: Partitioning Gebruik temp tables Vergelijk queries met Show Execution Plan Database Engine Tuning Advisor Sys.dm_db_missing_index_columns

16 Performance Optimization Model
Server Tuning Locking Indexing Query Optimization Schema Design

17 Concurrency A - Atomicity C - Consistency I - Isolation D - Durability

18 Locking and Blocking Locks Locking hints Isolation Levels Shared
Exclusive Locking hints ReadPast Nolock Isolation Levels Read Committed Read Uncommitted Repeatable Read Serializable Snapshot Read Committed Snapshot

19 Symtomen en tools Deadlocks Time outs Slechte respons tijden
Non consistent reads Current Activity Monitor Standard reports (server + database level) Performance dashboard (waits) Performance monitor Profiler

20 Locking DEMO

21 Tips Check Wait stats on blocking Overweeg Snapshot isolation
Let op TempDB READ_COMMITTED_SNAPSHOT SNAPSHOT Voorkom deadlocks, benader objecten in vaste volgorde

22 Performance Optimization Model
Server Tuning Locking Indexing Query Optimization Schema Design

23 Tools Zeggen helemaal niets zonder referentiekader (= baseline)
Gevaar schuilt in overkill Eerst denken, dan verifiëren / uitsluiten

24 Tools SSMS, execution plans Current Activity Monitor Standard Reports
Performance Dashboard Reports Dynamic Management Views / Functions Performance Monitor Profiler Database Tuning Advisor SQL Server 2008: Performance Data Collector

25 Enkele Disk IO counters
Object Counter Waarde Opmerkingen Physical Disk Avg Disk Reads/sec < 8 > 20 is slecht, < 20 is ok, < 12 is beter, < 8 is beste Avg Disk Writes/sec < 8 or < 1 Zonder cache: > 20 is slecht, < 20 is ok, < 12 is beter, < 8 is beste Met cache > 4 is slecht, < 4 is ok, < 2 is beter, < 1 is beste % Disk Time < 90 Tijd dat disk bezig met read/write Avg. Disk Queue Length < 2 Aantal read/write requests dat gemiddeld in de wacht staat. Kleiner dan 2 per spindle Current Disk Queue Length Aantal read/write requests dat nu in de wacht staat. Kleiner dan 2 per spindle

26 Enkele Memory counters
Object Counter Waarde Opmerkingen Memory Page Faults / sec < ? Aantal reads dat niet in de buffer cache gevonden wordt Available Mbytes > 100 Beschikbare physical memory in computer voor processen SQL Server: Memory Manager Memory Grants Pending ~0 Aantal processen dat wacht op geheugen Page Life Expectancy >=300 Aantal seconde dat een page in het geheugen blijft zonder gebruikt te worden voordat hij wordt geflushed SQL Server: Buffer Manager Free List Stalls/sec < 2 Frequentie waarmee verzoeken voor buffers moeten wachten wegens gebrek aan buffers Page reads/sec (Page writes/sec)) Zo klein mogelijk houden (meer cache, betere indexen, efficientere queries, beter db ontwerp)

27 Operating System Object Counter Waarde Opmerkingen Paging %Usage
<70% % van de pagefile dat momenteel gebruikt wordt Processor % Processor Time <= 80% Hoe hoger, hoe groter de kans op wachttijden. % Privilege Time < 30% van % Processor Time Tijd gebruikt voor Kernel requests zoals IO Process(sqlservr) < 80% Tijd besteed aan SQL Server System Processor Queue Length < 4 < 12 per CPU is ok, < 8 is beter, < 4 is beste

28 Enkele SQL Server Counters
Object Counter Waarde Opmerkingen :Access Methods Forwarded Records/sec < 10 Forwarding pointer gebruikt: < 10 per 100 batch requests/sec. Page Splits/sec < 20 Aantal Page splits: < 20 per 100 batch requests/sec. :Databases Log Growths/sec; Percent Log used < 1 and <80%, resp Beheer proactief :SQL Statistics Batch Requests/sec ? Eigen baseline: > 1000 is veel. Compilations/sec;Recompilations/sec < 10% of batch requests/sec ; Recompilations < 10% of compilations/sec :Locks Deadlocks/sec < 1 Profiler, code aanpassen.

29 Tip: SQL Server 2008 introduceert Resource Governor
Resources toekennen op basis van connection information via Classifier Function Resource Groups Resource Pools Alleen indien nodig

30 Wat nog mist … … is het belangrijkste van allemaal …
… want 80 zegt mij helemaal niets … … zonder referentie! BASELINE

31 Wat is Performance Data Collector?
Framework om diagnostische informatie te Verzamelen Op te slaan Analyseren Bestaat uit tools voor Verzamelen van data zonder hoge kosten Opslaan van de gegevens Reporting Ingebouwd in Server, aanspreekbaar door API’s Ter vervanging van third party monitoring tools, want flexibeler?

32 Componenten Data Provider
Informatiebron zoals T-SQL queries, SQL Trace, PerfMon counters, logs, … Collector Type Package die informatie haalt uit een Data Provider Collection Item Instantie van een Collector Type Bepaalt input (welke counters, kolommen, …) met welke frequentie Collection Set Logische groepering van Collection Items Definiëren via .NET API of T-SQL Management Data Warehouse

33 Built-in collection sets
Disk Usage Disk usage voor alle databases Query Activity Interessante queries (per cpu, time, IO) Caches sys.dm_exec_query_stats Server Activity Wait states, memory, performance counters

34 Management Data Warehouse
3 schema’s Core – Organizing and Identifying collected data Snapshot – Store data for system data collectors Custom_snapshot – Store data for 3rd party data collectors Groeit (bij standaard gebruik) met 250 – 350 MB per dag! Plaats op aparte server

35 Zelf collection sets maken:
USE MSDB EXEC dbo.sp_syscollector_create_collection_set EXEC dbo.sp_syscollector_create_collection_item @name=N'CPU pressure check', @parameters= N’ <xml definition> ’, OUTPUT, @frequency=5, EXEC sp_syscollector_start_collection_set

36 Performance Data Collector
demo

37 Performance Optimization Model
Server Tuning BASELINE Locking Indexing Pro Actief Beheer Query Optimization Schema Design

38 De praktijk Gebruiker Hij doet het niet wel DBA Hij is traag nooit

39 Peter ter Braake TrainSQL@live.nl
Bedankt Peter ter Braake


Download ppt "Applicatieplatform congres 12 & 13 maart"

Verwante presentaties


Ads door Google