Download de presentatie
De presentatie wordt gedownload. Even geduld aub
1
Performance Tuning SSIS packages
Performance Best Practices Performance Design Patterns
2
Bedankt sponsors!
3
Joost van Rossum Werkzaam als Business Intelligence en Datamigratie consultant bij Ilionx. Focus op SSIS Sinds 1999 in ICT werkzaam sinds 2005 met Business Intelligence Getrouwd, twee zoontjes Blog: microsoft-ssis.blogspot.com LinkedIn: nl.linkedin.com/in/joostvanrossum Twitter: @SSISJoost MSDN SSIS forum moderator
4
Performance Tuning Beter vooraf dan achteraf
Zoek op google naar SSIS Performance Best Practices Performance verwachtingen van te voren helder Baseline
5
Baseline demo Maak baseline: alles verwijderen behalve dataflow met source Dummy Transformatie toevoegen: RowCount/Trash Destination Tellen en meten buiten BIDS/SSDT (geen debug overhead) Query duur eventueel vergelijken in Management Studio Bottlenecks: netwerk, processor, geheugen en disk I.O.
6
Baseline demo
7
Buffers Source:
8
Buffers demo: buffer grootte
Optie: buffer groter maken zodat er meer records in passen, maar niet zo groot dat het niet meer past! (64kb tot 100mb, default 10MB)
9
Buffers demo: record grootte beperken
Nooit tabel selecteren in source, maar altijd query. Aantal kolommen beperken Kolom grootte minimaliseren
10
Buffers demo: record grootte beperken
Berekenen lengte van een record
11
Buffers demo: flat file
Flat File connection manager: Juiste minimale datatype kiezen Alleen parsen naar int / datum indien kolom gebruikt wordt Flat File source: Niet gebruikte kolommen uitvinken Fast Parse aanzetten voor veilige bronnen (voor niet-string velden). Via advanced editor van Flat File Source.
12
Buffers demo: flat file
13
Non-blocking, Partial-blocking, Fully-blocking components
Synchronous vs Asynchronous Non-blocking, hergebruik buffers en aantal rijen in = uit Voorbeeld: Derived Column Partial-blocking, creëert nieuwe buffers, wacht tot buffer vol is Voorbeeld: Merge Join Fully-blocking , creëert nieuwe buffers, leest eerst alle records Voorbeeld: Sort Zie ook
14
Test: welke transformaties zijn fully-blocking
15
Test: welke transformaties zijn partial-blocking
Magic Transformations
16
Demo: Partial-blocking vermijden
Niet gevonden lookup items negeren en later vervangen in Derived Column. Zo kan de Union All vermeden worden.
17
Demo:Fully-blocking vermijden
Sort in SQL Source (denk aan advanced editor) Aggregate in SQL Source Eventueel ook simpele joins in SQL Source (leesbaarheid vs performance) Joins eventueel vervangen door lookup
18
Demo:Fully-blocking vermijden
Sort vermijden: Order by toevoegen in source query Advanced editor: IsSorted aan- zetten voor Source Output SortKeyPosition opgeven voor gesorteerde kolom
19
Demo:Fully-blocking vermijden
Let op SSIS sorteert anders dan SQL Server. Voeg eventueel COLLATE toe aan source query. Meer info
20
Design pattern: Drie-traps raket lookups
Indien meeste bron data gematched kan worden met kleine lookup dataset => full cache Niet gevonden data via partial cache lookup
21
Design pattern: meerdere Derived columns
Verdelen van tekst bewerkingen en berekeningen over meerdere Derived Columns vaak sneller. Meer info:
22
Design pattern: te veel sources
Niet te veel sources in een data flow. Kan leiden locks. Meer info:
23
Design pattern: modulo bij langzame source
Modulo in source query van langzame bron Meer info:
24
Design pattern: modulo bij langzame destination
Modulo in Conditional Split Zie ook Balanced Data Distributor Meer info:
25
Vragen? nvarchar nchar => dt_wstr in SSIS varchar char => dt_str in SSIS dus maximale lengte wordt gebruikt voor buffer (in tegen stelling tot SQL Server) Case insensitive aggregate: zie opties ignore case SCD => Merge join of Change Date Capture geen update met OLE DB command, maar insert naar tijdelijke tabel en dan mass update query via Execute SQL Task
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.