<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Maintaining a Type 1 Slowly Changing Dimension (SCD) using T-SQL</title>
	<atom:link href="http://timlaqua.com/2009/05/maintaining-a-type-1-slowly-changing-dimension-scd-using-t-sql/feed/" rel="self" type="application/rss+xml" />
	<link>http://timlaqua.com/2009/05/maintaining-a-type-1-slowly-changing-dimension-scd-using-t-sql/</link>
	<description>Thoughts and Code from Tim Laqua</description>
	<lastBuildDate>Thu, 29 Jul 2010 13:25:12 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Tim</title>
		<link>http://timlaqua.com/2009/05/maintaining-a-type-1-slowly-changing-dimension-scd-using-t-sql/comment-page-1/#comment-2210</link>
		<dc:creator>Tim</dc:creator>
		<pubDate>Thu, 29 Oct 2009 15:29:41 +0000</pubDate>
		<guid isPermaLink="false">http://timlaqua.com/?p=224#comment-2210</guid>
		<description>I see your point - similar to when you run a MERGE and just update on WHEN MATCHED without checking for changed columns, it fires updates against every single row.  The original reason i was coded like that was from a pipeline perspective - not moving/touching data you dont&#039; need to move/touch.

Knowing if you actually had to update rows or if nothing changed came in to play in a later implementation where we run a ProcessAdd against the dimension if all we had were inserts, no updates, only ProcessUpdate if we had Updates, and do absolutely nothing to the dimension if we had no Inserts or Updates.

This can also be accomplished using MERGE if you constrain the WHEN MATCHED block to only rows that did have changes and output inserted.* and $action to a temp table (I&#039;ll blog about that later on).

Though, I could easily be convinced to just update blindly if someone could prove it was faster ;-)</description>
		<content:encoded><![CDATA[<p>I see your point &#8211; similar to when you run a MERGE and just update on WHEN MATCHED without checking for changed columns, it fires updates against every single row.  The original reason i was coded like that was from a pipeline perspective &#8211; not moving/touching data you dont&#8217; need to move/touch.</p>
<p>Knowing if you actually had to update rows or if nothing changed came in to play in a later implementation where we run a ProcessAdd against the dimension if all we had were inserts, no updates, only ProcessUpdate if we had Updates, and do absolutely nothing to the dimension if we had no Inserts or Updates.</p>
<p>This can also be accomplished using MERGE if you constrain the WHEN MATCHED block to only rows that did have changes and output inserted.* and $action to a temp table (I&#8217;ll blog about that later on).</p>
<p>Though, I could easily be convinced to just update blindly if someone could prove it was faster <img src='http://timlaqua.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dvorix</title>
		<link>http://timlaqua.com/2009/05/maintaining-a-type-1-slowly-changing-dimension-scd-using-t-sql/comment-page-1/#comment-2209</link>
		<dc:creator>dvorix</dc:creator>
		<pubDate>Thu, 29 Oct 2009 15:06:04 +0000</pubDate>
		<guid isPermaLink="false">http://timlaqua.com/?p=224#comment-2209</guid>
		<description>What about dont test changed columns (dim.PartTypeId  b.PartTypeId OR dim.PartTypeName  b.PartTypeName ...) and just update all columns?

I thing it could be more quickly and less code</description>
		<content:encoded><![CDATA[<p>What about dont test changed columns (dim.PartTypeId  b.PartTypeId OR dim.PartTypeName  b.PartTypeName &#8230;) and just update all columns?</p>
<p>I thing it could be more quickly and less code</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve</title>
		<link>http://timlaqua.com/2009/05/maintaining-a-type-1-slowly-changing-dimension-scd-using-t-sql/comment-page-1/#comment-1828</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Tue, 26 May 2009 14:28:34 +0000</pubDate>
		<guid isPermaLink="false">http://timlaqua.com/?p=224#comment-1828</guid>
		<description>I have used EXCEPT a couple of times in Dim ETL&#039;s. It breaks down when your source is on a different machine, or not even a table (say, an excel file, or text file, or another db system) - yeah, you can bring it forward one step with SQL to a staging, but that adds time depending on how much data, etc.</description>
		<content:encoded><![CDATA[<p>I have used EXCEPT a couple of times in Dim ETL&#8217;s. It breaks down when your source is on a different machine, or not even a table (say, an excel file, or text file, or another db system) &#8211; yeah, you can bring it forward one step with SQL to a staging, but that adds time depending on how much data, etc.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
