<?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 : SSDS</title><link>http://blogs.msdn.com/mattm/archive/tags/SSDS/default.aspx</link><description>Tags: SSDS</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Something new for SSIS in SQL Server 2008 R2 November CTP</title><link>http://blogs.msdn.com/mattm/archive/2009/11/12/something-new-for-ssis-in-sql-server-2008-r2-november-ctp.aspx</link><pubDate>Thu, 12 Nov 2009 19:29:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9921536</guid><dc:creator>mmasson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9921536.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9921536</wfw:commentRss><description>&lt;p&gt;Ok, so it turns my &lt;a href="http://blogs.msdn.com/mattm/archive/2009/08/14/no-new-features-in-for-integration-services-in-sql-server-2008-r2.aspx"&gt;previous post about R2&lt;/a&gt; wasn’t entirely correct. &lt;/p&gt;  &lt;p&gt;SSIS does have one new feature which appears in the &lt;a href="http://www.microsoft.com/sqlserver/2008/en/us/R2.aspx"&gt;latest SQL Server 2008 R2 CTP&lt;/a&gt;. If you open up the ADO.NET Destination UI, you’ll notice a new “Use Bulk Insert when Possible” check box.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SomethingnewforSSISinSQLServer2008R2Nove_956B/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/SomethingnewforSSISinSQLServer2008R2Nove_956B/image_thumb_1.png" width="556" height="480" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Previously, the ADO.NET Destination did all of its inserts row by row (we do some batching internally, which is why the component has a BatchSize property, but the underlying ADO.NET provider will always do single row inserts). With this new feature enabled, SSIS will use a bulk insert interface (like enabling “FastLoad” for OLEDB Destination). Unfortunately, there isn’t a generic Bulk Load interface for ADO.NET, so this functionality is currently only supported by SQL Server (through the &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx"&gt;SqlBulkCopy&lt;/a&gt; API). Hopefully we can extend support to other ADO.NET providers in the future.&lt;/p&gt;  &lt;p&gt;The main reason for implementing this functionality was to improve our support for &lt;a href="http://www.microsoft.com/windowsazure/sqlazure/"&gt;SQL Azure&lt;/a&gt;. As you might already know, ADO.NET is the primary way to communicate with SQL Azure, and adding support for SqlBulkCopy greatly increased the transfer speed. It also speeds up things when you’re working with regular SQL Server systems -- although OLEDB with FastLoad is still the preferred way of doing SQL data loads. &lt;/p&gt;  &lt;p&gt;Be sure to try it out and &lt;a href="http://connect.microsoft.com/"&gt;provide feedback&lt;/a&gt; before the final release.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921536" 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/Connectivity/default.aspx">Connectivity</category><category domain="http://blogs.msdn.com/mattm/archive/tags/ADO.Net/default.aspx">ADO.Net</category><category domain="http://blogs.msdn.com/mattm/archive/tags/SSDS/default.aspx">SSDS</category></item><item><title>SQL Server Data Services connectors now on Codeplex</title><link>http://blogs.msdn.com/mattm/archive/2008/09/25/sql-server-data-services-connectors-now-on-codeplex.aspx</link><pubDate>Fri, 26 Sep 2008 01:16:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8965653</guid><dc:creator>mmasson</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mattm/comments/8965653.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=8965653</wfw:commentRss><description>&lt;p&gt;When I was visiting the SSIS development team in Shanghai a couple of months ago, we started working on a side project to create Source and Destination components for &lt;a href="http://www.microsoft.com/sql/dataservices/default.mspx"&gt;SQL Server Data Services&lt;/a&gt; (SSDS). We developed them as samples, and I was surprised at how popular they became internally. &lt;a href="http://blogs.msdn.com/drobinson/archive/2008/09/23/ssds-and-ssis-like-peanut-butter-and-jelly.aspx"&gt;David Robinson beat me to the announcement&lt;/a&gt;, but after months of delay, I’ve finally been able to get it all together and &lt;a href="http://www.codeplex.com/SQLSrvIntegrationSrv/Release/ProjectReleases.aspx?ReleaseId=17658"&gt;publish the project on Codeplex&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;If you’re interested in the &lt;a href="http://www.codeplex.com/SQLSrvIntegrationSrv/SourceControl/ListDownloadableCommits.aspx"&gt;source code&lt;/a&gt;, I particularly like the way we got around a limitation in the Destination. SSDS currently supports a “batch” query mode for retrieving multiple entities (“rows” in relational terms) – you can pull back up to 500 entities in a single query -but there is no batch functionality for inserts. That means that each entity is inserted with a single query. To increase performance we do many inserts in parallel using multiple threads. You have to tweak your .NET HTTP connection settings (these adapters use the SOAP interface that SSDS provides) to increase the maximum number of concurrent connections to a server, but it ended up giving us a 10-50x performance increase. Definitely something to keep in mind if you are creating your own web service based data flow component.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;I thought I’d include some additional instructions and images here here that didn’t fit in the project readme. &lt;/p&gt;  &lt;h3&gt;Install&lt;/h3&gt;  &lt;p&gt;Set the path the DTS folder of your SQL Server installation. This should be %ProgramFiles%\Microsoft SQL Server\100\DTS. &lt;/p&gt;  &lt;p&gt;On 64bit installs, place the files under the “Program Files (x86)” directory.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SQLServerDataServicesconnectorsnowonCode_CFEA/clip_image002_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SQLServerDataServicesconnectorsnowonCode_CFEA/clip_image002_thumb.jpg" width="454" height="375" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The installer will place the following files:&lt;/p&gt;  &lt;p&gt;PipelineComponents\Microsoft.Samples.DataServices.Destination.dll&lt;/p&gt;  &lt;p&gt;PipelineComponents\Microsoft.Samples.DataServices.Source.dll&lt;/p&gt;  &lt;p&gt;Connections\Microsoft.Samples.DataServices.ConnectionManager.dll&lt;/p&gt;  &lt;p&gt;Microsoft.Samples.DataServices.Connectivity.dll (GAC only)&lt;/p&gt;  &lt;p&gt;All of the DLLs also go in the GAC.&lt;/p&gt;  &lt;h3&gt;Creating a connection manager&lt;/h3&gt;  &lt;p&gt;Right click on the Connection Managers window&lt;/p&gt;  &lt;p&gt;Select New Connection…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SQLServerDataServicesconnectorsnowonCode_CFEA/clip_image004_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SQLServerDataServicesconnectorsnowonCode_CFEA/clip_image004_thumb.jpg" width="404" height="442" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Choose “SSDS”&lt;/p&gt;  &lt;p&gt;Enter connection information&lt;/p&gt;  &lt;p&gt;· Authority&lt;/p&gt;  &lt;p&gt;· User Name&lt;/p&gt;  &lt;p&gt;· Password&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SQLServerDataServicesconnectorsnowonCode_CFEA/clip_image006_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SQLServerDataServicesconnectorsnowonCode_CFEA/clip_image006_thumb.jpg" width="354" height="253" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Note: You only need to enter your Authority ID and not the full URL to the service.&lt;/p&gt;  &lt;p&gt;Test Connection to see if it worked. Click OK when done.&lt;/p&gt;  &lt;h3&gt;Setting up the Data Flow&lt;/h3&gt;  &lt;p&gt;Add a new Data Flow Task&lt;/p&gt;  &lt;p&gt;Right click on Toolbox, chose “Choose Items…”&lt;/p&gt;  &lt;p&gt;Check the boxes for SSDS Destination and SSDS Source&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SQLServerDataServicesconnectorsnowonCode_CFEA/clip_image008_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SQLServerDataServicesconnectorsnowonCode_CFEA/clip_image008_thumb.jpg" width="454" height="336" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Source&lt;/h3&gt;  &lt;p&gt;The source component currently doesn’t have a custom UI. All editing is done through the common Advanced Editor UI.&lt;/p&gt;  &lt;p&gt;1. Drag an SSDS Source component from the toolbox onto the Data Flow canvas&lt;/p&gt;  &lt;p&gt;2. Double click the source component&lt;/p&gt;  &lt;p&gt;3. Click “Yes” asking if you want the component to fix itself. The advanced editor will display. &lt;/p&gt;  &lt;p&gt;4. Select the Connection Manager you created in the previous step.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SQLServerDataServicesconnectorsnowonCode_CFEA/clip_image010_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SQLServerDataServicesconnectorsnowonCode_CFEA/clip_image010_thumb.jpg" width="454" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;5. On the Component Properties tab, set the following properties:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="447"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="125"&gt;&lt;strong&gt;Property&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="320"&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="125"&gt;ContainerID&lt;/td&gt;        &lt;td valign="top" width="320"&gt;Must be set to a valid container ID within your Authority&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="125"&gt;EntityKind&lt;/td&gt;        &lt;td valign="top" width="320"&gt;Optional. Use this to limit the entities retrieved to a specific kind&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="125"&gt;PreviewCount&lt;/td&gt;        &lt;td valign="top" width="320"&gt;Used to limit the number of rows pulled back to determine the column metadata.          &lt;br /&gt;          &lt;br /&gt;Note: the current functionality is currently limited. We will always pull back up to 500 entities, but will only look at “PreviewCount” number of entities to determine metadata.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SQLServerDataServicesconnectorsnowonCode_CFEA/clip_image012_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SQLServerDataServicesconnectorsnowonCode_CFEA/clip_image012_thumb.jpg" width="454" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;6. Once the ContainerID is set, click the Column Mappings tab to select which columns you want to use, and set the output column names.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SQLServerDataServicesconnectorsnowonCode_CFEA/clip_image014_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" title="clip_image014" border="0" alt="clip_image014" src="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SQLServerDataServicesconnectorsnowonCode_CFEA/clip_image014_thumb.jpg" width="454" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Destination&lt;/h3&gt;  &lt;p&gt;The destination has a custom UI, but it currently doesn’t allow you to specify column mappings. This has to be done separately on the Advanced UI. &lt;/p&gt;  &lt;p&gt;1. Drag an SSDS Destination object from the Toolbox onto the design surface&lt;/p&gt;  &lt;p&gt;2. Connect the pipeline flow to the destination&lt;/p&gt;  &lt;p&gt;3. Double click the destination to bring up the custom UI&lt;/p&gt;  &lt;p&gt;4. Set the SSDS connection manager from the drop down, the Container ID you want to store the results in, and the Entity Kind value. These fields are all required. To generate a new ID for each entity being inserted (as a GUID), select the “Create New ID” option. To use a value from a column in the pipeline, select “Use Existing ID” and type in the column name.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SQLServerDataServicesconnectorsnowonCode_CFEA/clip_image016_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" title="clip_image016" border="0" alt="clip_image016" src="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SQLServerDataServicesconnectorsnowonCode_CFEA/clip_image016_thumb.jpg" width="454" height="402" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;5. Click the “Columns” tab to select the columns from the data flow you want to send to SSDS. Each row becomes a new entity. Each column becomes a property.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SQLServerDataServicesconnectorsnowonCode_CFEA/clip_image018_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" title="clip_image018" border="0" alt="clip_image018" src="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SQLServerDataServicesconnectorsnowonCode_CFEA/clip_image018_thumb.jpg" width="454" height="402" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Uninstall&lt;/h3&gt;  &lt;p&gt;Remove the “Data Services Connectors for SSIS” entry from Add/Remove Program Files&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8965653" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattm/archive/tags/Samples/default.aspx">Samples</category><category domain="http://blogs.msdn.com/mattm/archive/tags/SSDS/default.aspx">SSDS</category></item></channel></rss>