Roadmap › SSIS — SQL Server Integration Services › Module: Deployment, Scheduling and Performance
Lessons in this course (13)

13. Performance tuning

Advanced★ Must knowLesson 13 of 13
  1. Source: SQL command with only needed columns, filters and ORDER BY on the server (set IsSorted/SortKeyPosition on the source output instead of a Sort transformation); use NOLOCK only if dirty reads are acceptable.
  2. Avoid blocking transformations (Sort, Aggregate, Fuzzy) on big data — push to SQL.
  3. Replace OLE DB Command (row-by-row) with staging + set-based UPDATE/MERGE.
  4. Lookups: full cache with minimal columns; Cache Connection Manager for reuse.
  5. Destination fast load: Table lock, sensible Rows per batch and Maximum insert commit size, disable/drop non-clustered indexes during large loads and rebuild after; check constraints off when safe.
  6. Buffers: tune DefaultBufferMaxRows/DefaultBufferSize (or AutoAdjustBufferSize=True 2016+); narrow data types reduce row width = more rows per buffer.
  7. Parallelism: MaxConcurrentExecutables (package) and EngineThreads (data flow); split independent loads into parallel tasks/packages.
  8. Avoid unnecessary data conversion; match types to destination early.
  9. Run SSIS on/near the SQL Server to reduce network hops; ensure enough memory (buffer spooling to disk = slow — watch "Buffers spooled" counter).
  10. Incremental loads instead of full reloads.