<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.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>Search results matching tags 'SSIS' and 'Katmai'</title><link>http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=SSIS,Katmai&amp;orTags=0</link><description>Search results matching tags 'SSIS' and 'Katmai'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>HDC08 Omaha Demos Posted</title><link>http://sqlblog.com/blogs/kent_tegels/archive/2008/10/17/9546.aspx</link><pubDate>Fri, 17 Oct 2008 20:17:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:9546</guid><dc:creator>ktegels</dc:creator><description>Slides and demos for my hdc08omaha talks are now available for download from &lt;A href="http://tinyurl.com/5oykgj"&gt;http://tinyurl.com/5oykgj&lt;/A&gt; Thanks to all who attended!</description></item><item><title>The Top Five New Features in SSIS 2008 for Developers, Part 2</title><link>http://sqlblog.com/blogs/kent_tegels/archive/2008/08/26/8570.aspx</link><pubDate>Tue, 26 Aug 2008 12:25:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:8570</guid><dc:creator>ktegels</dc:creator><description>&lt;P&gt;Lookup. For many SQL Server Integration Services Developers, it's the transformation we most love to dislike - especially if you are using it against data living on remote server not on the same local network as the host running your package. This combination of circumstances sometimes drives us to some very inventive things. In this post I want to look at a situation I ran into a few months ago, how I addressed that situation with SSIS90 and how SSIS100 improves on that.&lt;/P&gt;
&lt;P&gt;For the sake of keeping things simple, let us start with a scenario. You have a list of 5,000 email addresses in an XML file. You need do a look-up of those email address and get the person's name and mailing address. You will write that to a CSV file. This is trivial task using SSIS. Where SSIS90 runs into a problem is when the server you are performing the look-up against is on the far-end of a network connection. Following the best practices of SSIS development, supposed your look-up task was based on a SQL statement that specified only the columns of interest. However, what do you do about the rows of interest? In SSIS90, there is not much you can actually do easily. &lt;/P&gt;
&lt;P&gt;Remember that unless you use a memory restriction, SSIS90 fully populates the look-up cache with all of the records in the look-up query before processing. That is a double-edge sword: it definitely increases the "wait time" before a data flow task starts processing records. This is especially true if you are pulling data from a remote source with a slow network connection. Yet, the once the data flow starts, the records are processed at blistering speeds. &lt;/P&gt;
&lt;P&gt;A straightforward solution to this situation is to use SSIS's ability to serialize buffers to a file - also known as RAW files. In this case, an initial streaming of the lookup data in made into a RAW file. That RAW file is then used as a data source in a second package. The RAW file is "join merged" with the XML source. This effectively provides the same functionality as the look-up did in the previous package. Take care not assume that the RAW file will have all of the needed information - after all, people can move and new email addresses could be added at any time. Therefore, you should when you are designing the package, you should handle unmatched records using the lookup transformation. In addition, you should update the RAW file with the updated data. &lt;/P&gt;
&lt;P&gt;In SSIS100, the idea is fundamentally the same, but the tasks are slightly different. The problem being addressed is that there is no obvious way to serialize a look-up cache to a file (aside from the aforementioned technique that may not be at all obvious.) Neither is using a "merge join" as a way of doing a "look-up." The SSIS team has added a new transformation - the Cache Transform -- and modified another - the look-up - to make it more obvious how to serialize the cache.&lt;/P&gt;
&lt;P&gt;The Cache Transform component itself is simple enough: within a given Data Flow, you connect this component to a path and it writes the buffers from that path to a new version of the raw-file format know as a Cache-Raw file (or CAW, its file extension.) Like a normal RAW file, the output contains the binary version of the data. It also contains an index covering one or more of the columns. This indexing helps the look-up component efficiently use the cached data. When using this to solve our slow data problem we would run a one-time process to initialize the cache from a data source.&lt;/P&gt;
&lt;P&gt;The Look-up component in SSIS100 is expanded to accommodate using the Cache-Raw file. As before, this component can be configured to use an OLE-DB data source. However, it can also be configured to use a Cache-Raw file instead. This can dramatically improve the performance of data flow since it eliminates the start-up delay in acquiring the data. However, there is still the possibility that they cached data may be stale or missing desired matches. Another new feature in the SSIS100 look-up is the ability to direct rows that were not found in the look-up to a new data path. You could "kind of" do this in SSIS90 if you assume that the only row-level error was a failure to find a match. In the new design, rows not matching from the Cache-Raw file could be redirected to another look-up configured to read recently updated data from the remote database.&lt;/P&gt;
&lt;P&gt;One thing to keep in mind about the new look-up transform is that it does not seem to maintain the Cache-Raw file automatically. What you should do is re-direct the no-match rows to a traditional look-up. As your complete processing in the data flow, add a second Cache Transform that writes the union of the matched rows and the not-matched but by then looked-up rows. You will need to name that CAW file something other than what you used as source, of course. The File Task can be used to delete the old version of the Cache and rename the new file to the name you used when configuring the first look-up.&lt;/P&gt;
&lt;P&gt;Examples of how to build the packages discussed in the post can be downloaded from &lt;A href="http://gosqlserver.net/downloads/ttfnfssis100part2.zip"&gt;http://gosqlserver.net/downloads/ttfnfssis100part2.zip&lt;/A&gt; .&lt;/P&gt;</description></item><item><title>The Top Five New Features in SSIS 2008 for Developers, Part 1</title><link>http://sqlblog.com/blogs/kent_tegels/archive/2008/08/18/8452.aspx</link><pubDate>Mon, 18 Aug 2008 20:56:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:8452</guid><dc:creator>ktegels</dc:creator><description>&lt;P&gt;You have to give credit where credit is due, and I certainly have to give credit to Kirk Haselden et al and their book &lt;U&gt;Microsoft SQL Server 2005 Integration Services&lt;/U&gt;. That book -- and&amp;nbsp;some of trial and error -- taught me&amp;nbsp;a lot about how to tune data flow tasks for better performance. The folks at Simple Talk have part of the book online and specifically about tuning data flows (&lt;A class="" title=http://www.simple-talk.com/sql/sql-server-2005/sql-server-2005-ssis-tuning-the-dataflow-task/ href="http://www.simple-talk.com/sql/sql-server-2005/sql-server-2005-ssis-tuning-the-dataflow-task/" target=_blank&gt;http://www.simple-talk.com/sql/sql-server-2005/sql-server-2005-ssis-tuning-the-dataflow-task/&lt;/A&gt;). If you aren't all that familiar with the tuning of SSIS 2005 data flows, it's a great piece to read before going at the rest of this article.&lt;/P&gt;
&lt;P&gt;I'd love to say that you don't need to worry about data flow tuning in SQL Sever 2008 Integration Services (SSIS100), but I can't. What I can say is you need to focus less on CPU allocation and utilization. As noted in the aforementioned article, in SSIS 2005 CPUs are allocated statically as the data flow task initializes. Basically, this means that if the optimizer for SSIS 2005 determines that it only needs one or two CPUs to execute the data flow, that is all it would ever use even if more CPUs were available to work the data flow. What change for SSIS100 is that CPU are now dynamic scheduled based on amount of "flow pressure" and all available CPUs are utilized. "Slower" tasks can now get more CPU time.&lt;/P&gt;
&lt;P&gt;Why did the SSIS team decide to use static scheduling in SSIS90 but dynamic scheduling in SSIS100? The answer is simple: back in 2002 to 2004 when SQL Server 2005 was being planned and developed, multiple CPU hosts were not as common as they are today. When you only have one or two CPUs to work with, static schedule is easier and has the least execution plan generation time and cost. However, now that most production-level hosts have four or more CPUs to work with, dynamic allocation is a more efficient solution. On multiple CPU machines, this change enhances performance considerably in many cases. On the downside, on single CPU machines, performance may actually degrade some, so it is certainly something you want to know about and consider.&lt;/P&gt;</description></item><item><title>The Top Five New Features in SSIS 2008 for Developers, Part 0</title><link>http://sqlblog.com/blogs/kent_tegels/archive/2008/08/14/8387.aspx</link><pubDate>Thu, 14 Aug 2008 17:17:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:8387</guid><dc:creator>ktegels</dc:creator><description>&lt;P&gt;I am going to get myself in trouble (again) by saying this but SSIS isn’t a Business Intelligence tool as much as it is a developer tool. If you are like me, you have written a lot of code does, basically, the following:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Extracts the data from some place;&lt;/LI&gt;
&lt;LI&gt;Transforms that data somehow;&lt;/LI&gt;
&lt;LI&gt;Loads the transformed data into database or some other store.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Sure, my toolset has changed over the years from COBOL to Perl, Expect and QuickBasic to VBScript to C#, but the basic tasks have not. That is probably why I never warmed up to SQL Server 2000 DTS. The idea of extract, load and transform never really worked for me. I wanted streams, not tables.&lt;/P&gt;
&lt;P&gt;So when SSIS debuted with SQL Server 2005, I decided to make the effort to learn it to the best of my abilities. Yes, it is a great tool but like any tool, it does have some shortcomings:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Optimizing data flows is somewhat of a black art;&lt;/LI&gt;
&lt;LI&gt;Using the linear lookup with a remote server is slow... unless you "cheated";&lt;/LI&gt;
&lt;LI&gt;Transact-SQL lacks an UPSERT command (at least prior to 2008);&lt;/LI&gt;
&lt;LI&gt;Calling a Web Service from a script required building an external assembly and making it available to the Script runtime;&lt;/LI&gt;
&lt;LI&gt;I am back to writing scripts in BASIC. Compiled BASIC with the full range of the CLR, sure, but it is still, well BASIC.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Over the next few posts, I want to talk about the new features in SSIS 2008 that help address these shortcomings in SSIS 2005. However, if you saw my recent talk in Omaha, you already know the story. But as of this morning, you can get the bits too! Just browse to &lt;A href="http://www.4shared.com/dir/7670149/a1b13c97/Omaha_SQLBI_User_Group.html"&gt;http://www.4shared.com/dir/7670149/a1b13c97/Omaha_SQLBI_User_Group.html&lt;/A&gt; and, when prompted for a password, enter "SQL4You" (sans quotes, of course). My presentation and bits are in the file labeled "ug_wnissis100.zip" &lt;/P&gt;
&lt;P&gt;Sudhir Gajre’s excellent performance tuning for SQL Server 2005 deck is also available from that site.&lt;/P&gt;</description></item><item><title>Come learn more about SQL Server 2008 Integration Services</title><link>http://sqlblog.com/blogs/kent_tegels/archive/2008/07/22/7963.aspx</link><pubDate>Tue, 22 Jul 2008 12:55:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:7963</guid><dc:creator>ktegels</dc:creator><description>&lt;P&gt;On 6 August 2008, I will be giving a presentation to the Omaha SQL/BI User Group on the new features in SQL Server 2008 Integration Services. We will talk about improvements in scripting, how the redesigned pipeline improves performance and how to leverage the new Cache Transform to improve package performance. Quinn Jones from Farm Credit Services America will also be giving us a great SQL tip. The talk will start around 1800 local time. We will be meeting at the Creighton University West Campus, located at 11111 Mill Valley Road (roughly 41.267786° north, 96.086289° west).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;The "3P requirements" for a successful meeting -- Pizza, Pop and Prizes --- will be available as usual.&lt;/P&gt;
&lt;P&gt;Please leave a comment if you would like more information.&lt;/P&gt;</description></item><item><title>Call For Action: Spatial &amp;quot;geeks,&amp;quot; please speak up!</title><link>http://sqlblog.com/blogs/kent_tegels/archive/2008/07/08/7726.aspx</link><pubDate>Tue, 08 Jul 2008 15:11:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:7726</guid><dc:creator>ktegels</dc:creator><description>&lt;P&gt;I've had a lot of "fun" working the with new spatial types in SQL Server 2008. &lt;EM&gt;Fun&lt;/EM&gt; like your first root canal sometimes, &lt;EM&gt;fun&lt;/EM&gt; like a great first date other times.&lt;/P&gt;
&lt;P&gt;One of the "root canal moments" for me has been around Geographic Markup Language (GML) support. I had spent a good chunk of time generating GML for use in class to subsequently learn that SQL Server's support for GML is "limited." Isaac Kunen was kind enough to point me to &lt;A href="http://schemas.microsoft.com/sqlserver/profiles/gml/"&gt;http://schemas.microsoft.com/sqlserver/profiles/gml/&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Folks, please learn from my mistake -- understand that schema before you go about generating or consuming GML for the construction of geometry or geography instances.&lt;/P&gt;
&lt;P&gt;Speaking of best practices, another frequent pendant on the&amp;nbsp; MSDN Forums/SQL Server Katmai/SQL server Katmai Spatial forum has started a thread (&lt;A href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3586982&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3586982&amp;amp;SiteID=1&lt;/A&gt;) addressing the differences between geometry and geography types.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I think he's off to a great start but I'd like to have the "the rest of us" who are interested in the spatial bits chime in on the tread.I'll even come out and say it. &lt;STRONG&gt;Please.&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;July is going to be a busy month for me. On week of the 20th, I'll be teaching our Essential SQL Server class in Boston (see &lt;A href="http://www.develop.com/us/training/course.aspx?id=180"&gt;http://www.develop.com/us/training/course.aspx?id=180&lt;/A&gt;) and then doing a private engagement in the Sacramento area the next week. If you know of any user group/PASS group meetings in those areas around those areas, please let me know.&lt;/P&gt;</description></item><item><title>Upcoming talks on SQL Spatial and SSIS</title><link>http://sqlblog.com/blogs/kent_tegels/archive/2008/06/05/7153.aspx</link><pubDate>Thu, 05 Jun 2008 12:42:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:7153</guid><dc:creator>ktegels</dc:creator><description>&lt;P&gt;Yesterday I drove down from Sioux Falls to Omaha so that I could catch a talk being given by Sudhir Gajre to the &lt;A href="http://www.omahamtg.com/" target=_blank&gt;Omaha SQL Server/BI Interest Group.&lt;/A&gt; I first got to know Sudhir when he, I and Luke Schollmeyer were restarting a SQL Server Users Group in Omaha. Sudhir is a stud at SQL Server performance tuning and helped write one of the best papers on it (see &lt;A href="http://sqlcat.com/whitepapers/archive/2007/12/16/microsoft-sql-server-2005-tuning-tips-for-peoplesoft8-x.aspx" target=_blank&gt;Microsoft SQL Server 2005 Tuning Tips for PeopleSoft8.x&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;I am the next scheduled speaker for that group, so I took a couple of minutes last night to ask them what they would like me to talk about. Response was a little slow, so I suggest that I could give my Spatial Computing with SQL Server talk. Almost no reaction. &lt;/P&gt;
&lt;P&gt;Somebody in the group suggest talking about the new MERGE statement. I liked that said, "What if I wrapped that into a talk about "What is new in Integration Services 2008." The room came back to life. &lt;/P&gt;
&lt;P&gt;So here's an initial outline of what that talk will probably cover: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The changes in the SSIS pipeline architecture for back-pressure and thread scheduling The scripting environment changes &lt;/LI&gt;
&lt;LI&gt;Working with the Cache transformation &lt;/LI&gt;
&lt;LI&gt;Using T-SQL MERGE with SSIS &lt;/LI&gt;
&lt;LI&gt;Using Change Data Capture with SSIS &lt;/LI&gt;
&lt;LI&gt;(time permitting) Using the Data Profiler task &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;We clustered about for a while following Sudhir's talk discussing just how much BI is taking off for Microsoft and how useful a talk like this would be. I have to chuckle every time I get into a conversation like this: I my opinion, SSIS isn't a BI tool that developers just happen to be interested in, it's a Developer's tool that just happens to very helpful to the BI specialist. Really understanding and applying many of the changes for SSIS 2008 is made easier, I think, if you have a Developer mindset about it. &lt;/P&gt;
&lt;P&gt;I am going to submit&amp;nbsp;the "Whats new in SSIS 2008"&amp;nbsp;for the Heartland Developer's Conferences to be held later in the year in &lt;A href="http://www.heartlanddc.com/Omaha/%22" target=_blank&gt;Omaha&lt;/A&gt; and &lt;A href="http://www.heartlanddc.com/Minneapolis/" target=_blank&gt;Minneapolis&lt;/A&gt; too.&lt;/P&gt;
&lt;P&gt;If you are a user group leader and would be interested in having me come visit and give a talk, please feel free to contact me through this site.&lt;/P&gt;</description></item><item><title>DTS still alive in 2008?</title><link>http://sqlblog.com/blogs/rick_heiges/archive/2007/08/22/dts-still-alive-in-2008.aspx</link><pubDate>Wed, 22 Aug 2007 09:55:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:2284</guid><dc:creator>RickHeiges</dc:creator><description>&lt;P&gt;I was on a call with several other folks the other day discussing "Katmai".&amp;nbsp; The topic of DTS came up.&amp;nbsp;MSFT had indicated that support for DTS would not go beyond SQL Server 2005 in a variety of channels.&amp;nbsp; I can remember the dozens of Upgrade Advisor messages that always appeared.&amp;nbsp; I just revisited the "Advisory" text.&amp;nbsp; It says that support for DTS will be discontinued at a future date.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Well, it looks like a bunch of folks out there still love those DTS packages.&amp;nbsp; Why do I say this?&amp;nbsp; In the July CTP of SQL Server 2008 BOL, there is a section on DTS.&amp;nbsp; Basically, there is nothing different about DTS support for 2008.&lt;/P&gt;
&lt;P&gt;No News is Good News?&amp;nbsp; Yes and No.&amp;nbsp; Yes - that means that many organizationis will not be forced to rewrite DTS packages into SSIS as they move forward.&amp;nbsp; No - that means that many organizations will not take advantage of newer technology.&lt;/P&gt;
&lt;P&gt;Also, no SSIS in Express edition in 2008.&amp;nbsp;BOL still recommends using 2000 DTS components here.&lt;/P&gt;</description></item></channel></rss>