<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SSIS Team Blog : Performance</title><link>http://blogs.msdn.com/mattm/archive/tags/Performance/default.aspx</link><description>Tags: Performance</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Tutorial: SSIS Performance Videos</title><link>http://blogs.msdn.com/mattm/archive/2009/05/26/tutorial-ssis-performance-videos.aspx</link><pubDate>Tue, 26 May 2009 19:01:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9641598</guid><dc:creator>mmasson</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9641598.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9641598</wfw:commentRss><description>&lt;p&gt;This post is coming a little late (these have already been announced &lt;a href="http://sqlcat.com/presentations/archive/2009/05/02/designing-and-tuning-for-performance-your-ssis-packages-in-the-enterprise-sql-video-series.aspx"&gt;here&lt;/a&gt; and &lt;a href="http://dougbert.com/blogs/dougbert/archive/2009/04/30/speed-up-your-etl-with-4-new-ssis-performance-videos-from-microsoft.aspx"&gt;here&lt;/a&gt;), but incase you haven’t seen these before, I wanted to bring attention to four new performance related created by the &lt;a href="http://sqlcat.com/Default.aspx"&gt;SQLCAT&lt;/a&gt; and SSIS teams. They mostly focus on larger scale/Enterprise level package deployments, but there are good tips for all levels of SSIS usage. &lt;/p&gt;  &lt;p&gt;From the &lt;a href="http://sqlcat.com/presentations/archive/2009/05/02/designing-and-tuning-for-performance-your-ssis-packages-in-the-enterprise-sql-video-series.aspx"&gt;SQLCAT post&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Measuring and Understanding the Performance of Your SSIS Packages in the Enterprise (SQL Server Video)&lt;/strong&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd795223.aspx"&gt;Link&lt;/a&gt; | &lt;a href="http://go.microsoft.com/fwlink/?LinkId=149083"&gt;Watch this video&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Author&lt;/strong&gt;: Denny Lee, Microsoft Corporation&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;This video demonstrates how to measure and understand the performance of packages, based on lessons learned from enterprise customers. In this video, you will learn the following guidelines for improving performance: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;How the limits of the source system affect performance. &lt;/li&gt;    &lt;li&gt;Why disk I/O is important. &lt;/li&gt;    &lt;li&gt;Why you should establish a package performance baseline &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Tuning Your SSIS Package Data Flow in the Enterprise (SQL Server Video)      &lt;br /&gt;&lt;/strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd795225.aspx"&gt;Link&lt;/a&gt; | &lt;a href="http://msdn.microsoft.com/en-us/library/dd795225.aspx"&gt;Watch this video&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Author&lt;/strong&gt;: David Noor, Microsoft Corporation&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;This video demonstrates how to improve the performance of the data flow in an Integration Services package. In this video, you will learn how to tune the following phases of the data flow: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Extraction &lt;/li&gt;    &lt;li&gt;Transformation &lt;/li&gt;    &lt;li&gt;Loading &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can apply these performance tuning tips when you design, develop, and run the data flow.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Understanding SSIS Data Flow Buffers (SQL Server Video)&lt;/strong&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd795224.aspx"&gt;Link&lt;/a&gt; | &lt;a href="http://go.microsoft.com/fwlink/?LinkId=149086"&gt;Watch this video&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Author&lt;/strong&gt;: Bob Bojanic, Microsoft Corporation&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;This video looks at the memory buffers that transfer data to the data flow of an Integration Services package. The video includes the following items: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Demonstration of a simple package that shows you how Integration Services divides the data along the data flow paths and how buffers carry data along those paths.      &lt;br /&gt;This simple package performs the following operations:       &lt;ul&gt;       &lt;li&gt;Data extraction &lt;/li&gt;        &lt;li&gt;Character mapping &lt;/li&gt;        &lt;li&gt;Creation of new columns by using a synchronous transformation &lt;/li&gt;        &lt;li&gt;Multicasting &lt;/li&gt;        &lt;li&gt;Sorting by using a blocking (asynchronous) transformation. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Design guidelines for building and maintaining the data flow of a package. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Designing Your SSIS Packages for Parallelism (SQL Server Video)      &lt;br /&gt;&lt;/strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd795221.aspx"&gt;Link&lt;/a&gt; | &lt;a href="http://go.microsoft.com/fwlink/?LinkId=149087"&gt;Watch this video&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Author&lt;/strong&gt;: Matt Carroll, Microsoft Corporation&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;This video demonstrates how to increase the performance of your Integration Services packages by designing for parallelism. &lt;/p&gt;  &lt;p&gt;------&lt;/p&gt;  &lt;p&gt;These four videos join the &lt;a href="http://msdn.microsoft.com/en-us/library/dd299421.aspx"&gt;growing list of SSIS tutorial videos&lt;/a&gt; in the SQL Server Video series. Others that might interest you:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd299421.aspx"&gt;Creating a Basic Package&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc952922.aspx"&gt;Exporting SQL Server Data to Excel&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd440761.aspx"&gt;How to: Automate SSIS Package Execution by Using the SQL Server Agent&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc952927.aspx"&gt;How to: Call a Web Service by Using the Web Service Task&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc952929.aspx"&gt;How to: Implement a Lookup Transformation in Full Cache Mode&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc952923.aspx"&gt;How to: Use the Data Profiling Task&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd440760.aspx"&gt;Troubleshooting: SSIS Package Execution Using SQL Server Agent&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9641598" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattm/archive/tags/Getting+Started/default.aspx">Getting Started</category><category domain="http://blogs.msdn.com/mattm/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.msdn.com/mattm/archive/tags/Tutorial/default.aspx">Tutorial</category></item><item><title>We Loaded 1TB in 30 Minutes with SSIS, and So Can You</title><link>http://blogs.msdn.com/mattm/archive/2009/03/03/we-loaded-1tb-in-30-minutes-with-ssis-and-so-can-you.aspx</link><pubDate>Wed, 04 Mar 2009 04:16:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9457813</guid><dc:creator>mmasson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9457813.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9457813</wfw:commentRss><description>&lt;p&gt;A popular SSIS talk at recent conferences has been about the &lt;a href="http://blogs.msdn.com/mattm/archive/2008/02/27/ssis-sets-an-etl-world-record.aspx"&gt;ETL Record&lt;/a&gt; that we announced last year. They’ve converted the talk to a white paper, and it is &lt;a href="http://msdn.microsoft.com/en-us/library/dd537533.aspx"&gt;now available&lt;/a&gt; on MSDN. It’s a very interesting read.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; In February 2008, Microsoft announced a record-breaking data load using Microsoft® SQL Server® Integration Services (SSIS): 1 TB of data in less than 30 minutes. That data load, using SQL Server Integration Services, was 30% faster than the previous best time using a commercial ETL tool. This paper outlines what it took: the software, hardware, and configuration used. We will describe what we did to achieve that result, and offer suggestions for how to relate these techniques to typical scenarios. Even for customers who don't have needs quite like this benchmark, such efforts can teach a lot about getting optimal performance.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9457813" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattm/archive/tags/Performance/default.aspx">Performance</category></item><item><title>Performance: Top 10 Best Practices</title><link>http://blogs.msdn.com/mattm/archive/2008/12/05/performance-top-10-best-practices.aspx</link><pubDate>Fri, 05 Dec 2008 20:25:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9180376</guid><dc:creator>mmasson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9180376.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9180376</wfw:commentRss><description>&lt;p&gt;The &lt;a href="http://sqlcat.com"&gt;SQL CAT team&lt;/a&gt; published a &lt;a href="http://sqlcat.com/top10lists/archive/2008/10/01/top-10-sql-server-integration-services-best-practices.aspx"&gt;Top 10 SQL Server Integration Services Best Practices&lt;/a&gt; list back in October, and I thought I’d draw some more attention to it incase anyone missed it the first time around. The list contains performance related tips that were proven during the &lt;a href="http://blogs.msdn.com/sqlperf/archive/2008/02/27/etl-world-record.aspx"&gt;ETL world record performance&lt;/a&gt; run that was published earlier this year. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9180376" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattm/archive/tags/Performance/default.aspx">Performance</category></item><item><title>Performance profiling your custom extensions</title><link>http://blogs.msdn.com/mattm/archive/2008/11/12/performance-profiling-your-custom-extensions.aspx</link><pubDate>Thu, 13 Nov 2008 04:05:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9064863</guid><dc:creator>mmasson</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9064863.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9064863</wfw:commentRss><description>&lt;p&gt;The Team Development Edition and Team Suite versions of Visual Studio 2008 comes with a &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc337887.aspx"&gt;performance profiling feature&lt;/a&gt; that can used to find bottlenecks in your custom extensions (tasks, data flow components, etc) for SSIS. Although having your extension assemblies in the GAC make profiling a little more involved, it can still be done with a few additional steps, and I’ve found it to be a very effective way to improve the performance of your code. &lt;/p&gt;  &lt;p&gt;In this post I’ll walk through how to use this tool on a custom Data Source Component (in this case, the source component for the &lt;a href="http://blogs.msdn.com/mattm/archive/2008/09/25/sql-server-data-services-connectors-now-on-codeplex.aspx"&gt;SQL Data Services connectors&lt;/a&gt; on &lt;a href="http://www.codeplex.com/SQLSrvIntegrationSrv/Release/ProjectReleases.aspx?ReleaseId=17658"&gt;Codeplex&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;The basic steps are:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Configure your extension for debugging&lt;/li&gt;    &lt;li&gt;Create a profile&lt;/li&gt;    &lt;li&gt;Delay sign and disable strong name validation for your extension assembly(s)&lt;/li&gt;    &lt;li&gt;Manually instrument your assembly(s) and add them to the GAC&lt;/li&gt;    &lt;li&gt;Run the profile&lt;/li&gt;    &lt;li&gt;Enjoy the results&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Read on for more details.&lt;/p&gt;  &lt;h5&gt;Configure your extension for debugging&lt;/h5&gt;  &lt;p&gt;The first step is to setup your extension project to be easy to debug. &lt;/p&gt;  &lt;p&gt;1. Create an SSIS package which makes use of your extension.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/Performanceprofilingyourcustomextensions_7769/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/Performanceprofilingyourcustomextensions_7769/image_thumb_1.png" width="552" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I’ve created a simple package which uses the SSDS Source, and pipes it to a row count transform. &lt;/p&gt;  &lt;p&gt;2. Open the solution for your extension. Right click on the Project, and configure the debugging settings to launch the package using dtexec.exe.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/Performanceprofilingyourcustomextensions_7769/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/Performanceprofilingyourcustomextensions_7769/image_thumb_3.png" width="630" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Using dtexec to run your package makes it a lot easier to debug than it would be running it inside of BIDS. If you’re on a 64bit platform, be sure to select the 32bit version of dtexec (under Program Files (x86)), as the performance profiler has issues with 64bit executions.&lt;/p&gt;  &lt;p&gt;Specify the path to your package using the /f switch. If you need to specify other command line parameters, you can use &lt;a href="http://msdn.microsoft.com/en-us/library/ms141707(sql.90).aspx"&gt;dtexecui&lt;/a&gt; to build your command line for you.&lt;/p&gt;  &lt;p&gt;Once you have your project configured for debugging&lt;/p&gt;  &lt;h5&gt;Configuring the Performance Profiler&lt;/h5&gt;  &lt;p&gt;1. Launch the Performance Wizard (Analyze –&amp;gt; Launch Performance Wizard…)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/Performanceprofilingyourcustomextensions_7769/image_10.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/Performanceprofilingyourcustomextensions_7769/image_thumb_4.png" width="565" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;2. Select your extension project, and click next.&lt;/p&gt;  &lt;p&gt;3. On the next page you can select the type of profiling you’d like to do. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/Performanceprofilingyourcustomextensions_7769/image_12.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/Performanceprofilingyourcustomextensions_7769/image_thumb_5.png" width="565" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Both can be useful, but “Instrumentation” will give you a detailed report of which functions are being called most, and how much time is being spent in them. For SSIS extensions, this is probably what you’ll want to see. &lt;/p&gt;  &lt;p&gt;After finishing the wizard, you’ll see the Performance Explorer window, with a new Target added for your project. If your extension relies on additional assemblies, you’d add them as additional targets by right clicking on the Targets folder, and selecting one of the Add options. In my case, the SSDS Source component makes heavy use of a Connectivity layer assembly. To get a full performance profile, I’ll instrument both of them.&lt;/p&gt;  &lt;h5&gt;Instrumenting your assemblies&lt;/h5&gt;  &lt;p&gt;If you tried to do a profiled run now (by clicking the Launch with Profiling button, or Analyze –&amp;gt; Profiler –&amp;gt; Launch with Profiling from the menu), you’d get the following warning dialog:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/Performanceprofilingyourcustomextensions_7769/image_14.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/Performanceprofilingyourcustomextensions_7769/image_thumb_6.png" width="404" height="176" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When running in Instrumentation mode, the profile will need to modify your assembly to insert the hooks it needs. This will invalidate the signature on your assembly. This becomes an issue if your assembly needs to be in the GAC (like with SSIS), as the GAC will only accept properly signed assemblies. &lt;/p&gt;  &lt;p&gt;If you click ok and run anyways, dtexec will run without error, but no data will be collected because your extension assembly in the GAC wasn’t profiled. &lt;/p&gt;  &lt;p&gt;To get around this, we’ll need to do a few things. &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Delay sign our assemblies&lt;/li&gt;    &lt;li&gt;Disable strong name validation for your assembly&lt;/li&gt;    &lt;li&gt;Manually instrument the assembly(s) using the vsinstr.exe application&lt;/li&gt;    &lt;li&gt;Add the instrumented assemblies to the GAC&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;To delay sign the assembly, check the “Delay sign only” box on the Signing tab of the project properties page for your extension project. Do the same for any other extensions required by your &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/Performanceprofilingyourcustomextensions_7769/image_16.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/Performanceprofilingyourcustomextensions_7769/image_thumb_7.png" width="644" height="464" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;To disable strong name verification for your assembly (which should only be done in your dev/test environment, and never in production) we’ll use the &lt;a href="http://msdn.microsoft.com/en-us/library/k5b5tt23.aspx"&gt;Strong Name Tool&lt;/a&gt; (sn.exe) which comes with the .NET framework SDK. If you’ve installed SQL Server 2008 on your machine, you’ll find it under C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin.&lt;/p&gt;  &lt;p&gt;From the command line (must be elevated on Vista), run &lt;strong&gt;sn.exe -Vr &amp;lt;extension&amp;gt;.dll&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Courier New"&gt;C:\code\source\bin\release&amp;gt;sn -Vr Microsoft.Samples.DataServices.Source.dll &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Courier New"&gt;Microsoft (R) .NET Framework Strong Name Utility&amp;#160; Version 2.0.50727.1433     &lt;br /&gt;Copyright (c) Microsoft Corporation.&amp;#160; All rights reserved. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Courier New"&gt;Verification entry added for assembly 'Microsoft.Samples.DataServices.Source,DA625E43F8E8D37E'&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Next we’ll instrument our assembly(s) using the vsinstr.exe tool. From the command line, run &lt;strong&gt;vsinstr.exe &amp;lt;extension&amp;gt;.dll&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Courier New"&gt;C:\code\source\bin\release&amp;gt;vsinstr.exe Microsoft.Samples.DataServices.Source.dll     &lt;br /&gt;Microsoft (R) VSInstr Post-Link Instrumentation 9.0.30729 x86      &lt;br /&gt;Copyright (C) Microsoft Corp. All rights reserved. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Courier New"&gt;File to Process:     &lt;br /&gt;&amp;#160;&amp;#160; C:\code\source\bin\release\Microsoft.Samples.DataServices.Source.dll --&amp;gt;      &lt;br /&gt;C:\code\source\bin\release\Microsoft.Samples.DataServices.Source.dll      &lt;br /&gt;Original file backed up to C:\code\source\bin\release\Microsoft.Samples.DataServices.Source.dll.orig &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Courier New"&gt;Warning VSP2001 : C:\code\source\bin\release\Microsoft.Samples.DataServices.     &lt;br /&gt;Source.dll is a strongly named assembly.&amp;#160; It will need to be re-signed before it can be executed.      &lt;br /&gt;Successfully instrumented file C:\code\source\bin\release\Microsoft.Samples.DataServices.Source.dll.      &lt;br /&gt;Warning VSP2013 : Instrumenting this image requires it to run as a 32-bit process.&amp;#160; The CLR header flags have been updated to reflect this.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Courier New"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Now add the instrumented assembly to the GAC. This can be done using the &lt;a href="http://msdn.microsoft.com/en-us/library/ex0ss12c.aspx"&gt;Global Assembly Cache Tool&lt;/a&gt; (gacutil.exe), which can be found in the same directory as sn.exe. From the command line, run &lt;strong&gt;gacutil.exe /i &amp;lt;extension&amp;gt;.dll&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Courier New"&gt;C:\code\source\bin\release&amp;gt;gacutil /i Microsoft.Samples.DataServices.Source.dll &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Courier New"&gt;Microsoft (R) .NET Global Assembly Cache Utility.&amp;#160; Version 2.0.50727.1433     &lt;br /&gt;Copyright (c) Microsoft Corporation.&amp;#160; All rights reserved. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Courier New"&gt;Assembly successfully added to the cache&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;These steps should be repeated for each assembly you’d like to profile.&lt;/p&gt;  &lt;p&gt;Note: since you’ll most likely need to run the profiling more than once, I’d suggest you create a batch file which runs the VS instrumentation tool and adds the files to the GAC. &lt;/p&gt;  &lt;h5&gt;Launching with profiling&lt;/h5&gt;  &lt;p&gt;Once the instrumented assemblies have been placed in the GAC, you can run launch a profiled run (click the Launch with Profiling button, or Analyze –&amp;gt; Profiler –&amp;gt; Launch with Profiling from the menu). You’ll still get an instrumentation warning, but this time when you click ok, you’ll get the profiling results. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/Performanceprofilingyourcustomextensions_7769/image_18.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/Performanceprofilingyourcustomextensions_7769/image_thumb_8.png" width="641" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;From the summary page you can drill down to see which functions are being called most, and which are taking the most time. From there you can begin to optimize your code and fix your bottlenecks.&lt;/p&gt;  &lt;p&gt;Remember that you need to re-instrument and re-GAC your assembly anytime you modify it. &lt;/p&gt;  &lt;p&gt;Be sure to check out the &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc337887.aspx"&gt;Performance Profiler MSDN article&lt;/a&gt; for more details on the features of the profiler.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9064863" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattm/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.msdn.com/mattm/archive/tags/Extensions/default.aspx">Extensions</category></item><item><title>SSIS sets an ETL world record</title><link>http://blogs.msdn.com/mattm/archive/2008/02/27/ssis-sets-an-etl-world-record.aspx</link><pubDate>Thu, 28 Feb 2008 00:58:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7922965</guid><dc:creator>mmasson</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/mattm/comments/7922965.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=7922965</wfw:commentRss><description>&lt;p&gt;They mentioned the &lt;a href="http://www.microsoft.com/sqlserver/2008/en/us/benchmarks.aspx"&gt;TPC benchmark results&lt;/a&gt; at the &lt;a href="http://www.microsoft.com/heroeshappenhere/default.mspx"&gt;SQL Server 2008 launch&lt;/a&gt; today. The final paragraph mentions a world record for ETL load performance. The fine folks who maintain the &lt;a href="http://blogs.msdn.com/sqlperf"&gt;SQLPerf blog&lt;/a&gt; have &lt;a href="http://blogs.msdn.com/sqlperf/archive/2008/02/27/etl-world-record.aspx"&gt;posted details about the result&lt;/a&gt;, explaining how they were able to load over 1 TB of TPC-H data in under 30 minutes. It makes for a very interesting read! &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7922965" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattm/archive/tags/SSIS/default.aspx">SSIS</category><category domain="http://blogs.msdn.com/mattm/archive/tags/Performance/default.aspx">Performance</category></item></channel></rss>