<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.netindonesia.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">SQL Server knowledge center</title><subtitle type="html">everything about SQL Server</subtitle><id>http://geeks.netindonesia.net/blogs/kasim.wirama/atom.aspx</id><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/kasim.wirama/default.aspx" /><link rel="self" type="application/atom+xml" href="http://geeks.netindonesia.net/blogs/kasim.wirama/atom.aspx" /><generator uri="http://communityserver.org" version="3.1.20917.1142">Community Server</generator><updated>2008-07-22T15:08:00Z</updated><entry><title>Variable Declaration Enhancement in SQL Server 2008</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/30/variable-declaration-enhancement-in-sql-server-2008.aspx" /><id>http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/30/variable-declaration-enhancement-in-sql-server-2008.aspx</id><published>2008-08-30T12:26:00Z</published><updated>2008-08-30T12:26:00Z</updated><content type="html">&lt;h2 style="MARGIN:10pt 0cm 0pt;TEXT-ALIGN:center;" align="center"&gt;&lt;font face="Cambria" color="#4f81bd" size="4"&gt;Variable Declaration Enhancement in SQL Server 2008&lt;/font&gt;&lt;/h2&gt;
&lt;h3 style="MARGIN:10pt 0cm 0pt;TEXT-ALIGN:center;" align="center"&gt;&lt;font face="Cambria" color="#4f81bd" size="3"&gt;By : Kasim Wirama, MCDBA&lt;/font&gt;&lt;/h3&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;In this posting, I would let you know how SQL Server 2008 introduces enhancement in variable declaration.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;1.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Assign new value of newly declared variable&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;In previous SQL Server version up to SQL Server 2005, you need to write 2 lines of codes in declaring new variable and assign new value to it. For example :&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;DECLARE @var1 INT;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;SET @var1 = 5;&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;SQL Server 2008 make code above is written only in one statement here :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;DECLARE @var1 INT = 5;&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;2.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Compound assignment operator&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;When you need to apply some value to a variable and assign it to the variable itself you need to specify the variable in right expression explicitly.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;For example :&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;SET @var1 = @var1 + 1;&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;SQL Server 2008 makes it brief by introducing compound assignment operator here :&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;SET @var1 += 1;&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Here is the complete list of compound assignment operators: &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;+=&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;-=&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;/=&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;%=&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;&amp;amp;=&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;|=&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;^=&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;3.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Row constructor in insert statement.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;In previous SQL Server version up to SQL Server 2005, when you need to insert more than one new rows, you need to specify explicitly INSERT statement for each new rows. For example :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;INSERT INTO dbo.ATable (col1, col2) VALUES (1, ‘test1’);&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;INSERT INTO dbo.ATable (col1, col2) VALUES (2, ‘test2’);&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;SQL Server 2008 makes it shorter by introducing row constructor, so you just need to specify 1 insert statement only for more than one new rows here :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="MARGIN:0cm 0cm 10pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;INSERT INTO dbo.ATable (col1, col2) VALUE (1, ‘test1’), (2,’test2’);&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;There are still a bunch of TSQL enchancements in SQL Server 2008. The items above are simple ones, and I hope you become aware the enhancements above so that you will get used to it and implement in your database development projects.&lt;/font&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/30/variable-declaration-enhancement-in-sql-server-2008.aspx&amp;amp;subject=Variable Declaration Enhancement in SQL Server 2008" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/30/variable-declaration-enhancement-in-sql-server-2008.aspx&amp;amp;t=Variable+Declaration+Enhancement+in+SQL+Server+2008" target="_blank" title="Submit Variable Declaration Enhancement in SQL Server 2008 to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/30/variable-declaration-enhancement-in-sql-server-2008.aspx&amp;amp;title=Variable+Declaration+Enhancement+in+SQL+Server+2008" target="_blank" title="Submit Variable Declaration Enhancement in SQL Server 2008 to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/30/variable-declaration-enhancement-in-sql-server-2008.aspx&amp;amp;phase=2" target="_blank" title="Submit Variable Declaration Enhancement in SQL Server 2008 to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/30/variable-declaration-enhancement-in-sql-server-2008.aspx&amp;amp;title=Variable+Declaration+Enhancement+in+SQL+Server+2008" target="_blank" title="Add Variable Declaration Enhancement in SQL Server 2008 to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=64971" width="1" height="1"&gt;</content><author><name>Kasim.Wirama</name><uri>http://geeks.netindonesia.net/members/Kasim.Wirama.aspx</uri></author><category term="SQL Server" scheme="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>Introduction of XML Data Type in Practical Use (Part 2-finish)</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/27/introduction-of-xml-data-type-in-practical-use-part-2-finish.aspx" /><id>http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/27/introduction-of-xml-data-type-in-practical-use-part-2-finish.aspx</id><published>2008-08-27T12:59:00Z</published><updated>2008-08-27T12:59:00Z</updated><content type="html">&lt;h2 style="MARGIN:10pt 0cm 0pt;TEXT-ALIGN:center;" align="center"&gt;&lt;font face="Cambria" color="#4f81bd" size="4"&gt;Introduction of XML Data Type in Practical Use (Part 2-finish)&lt;/font&gt;&lt;/h2&gt;
&lt;h4 style="MARGIN:10pt 0cm 0pt;tab-stops:center 234.0pt left 324.0pt;"&gt;&lt;em&gt;&lt;font color="#4f81bd"&gt;&lt;font face="Cambria"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;By : Kasim Wirama, MCDBA&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/h4&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;This second part posting, I would like to share by example about XML query and data manipulation. &lt;/font&gt;&lt;/p&gt;
&lt;h5 style="MARGIN:10pt 0cm 0pt;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;font size="3"&gt;&lt;font color="#243f60"&gt;&lt;font face="Cambria"&gt;Query XML data&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/h5&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;Several XML methods are used for query XML data. They are :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;1.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Query&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;This method takes XQuery input parameter. For example : query to get all name of Job Candidate in Resume column, database Adventureworks.&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;with xmlnamespaces(&amp;#39;http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume&amp;#39; as ns1)&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;select Resume.&lt;b style="mso-bidi-font-weight:normal;"&gt;query&lt;/b&gt;(&amp;#39;/ns1:Resume/ns1:Name&amp;#39;)&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;from HumanResources.JobCandidate&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;results returned from above query are rows which contains candidate names extracted from Resume column (XML type)&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;2.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Value&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;To get scalar value of XML structure, you can use VALUE method of XML type. It requires 2 input parameters. First parameter is XQuery and second parameter is sql server native data type. For example here, I return list of last name for each job candidate.&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;with xmlnamespaces (&amp;#39;http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume&amp;#39; as ns1)&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;select Resume.&lt;b style="mso-bidi-font-weight:normal;"&gt;value&lt;/b&gt; (&amp;#39;(/ns1:Resume/ns1:Name/ns1:Name.Last)[1]&amp;#39;,&amp;#39;nvarchar(50)&amp;#39;) as [Candidate Last Name]&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;from HumanResources.JobCandidate&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;3.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Exist&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;To get filtered result based on XML criteria, you can use Exist with XQuery as input parameter. The return value is 1 when it is true or 0 when it is false.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;Example for Exist method is to get list of candidate’s last name whose education level is bachelor in Resume column of HumanResources.JobCandidate table below :&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;with xmlnamespaces (&amp;#39;http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume&amp;#39; as ns1)&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;select Resume.value (&amp;#39;(/ns1:Resume/ns1:Name/ns1:Name.Last)[1]&amp;#39;,&amp;#39;nvarchar(50)&amp;#39;) as [Candidate Last Name]&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;from HumanResources.JobCandidate&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;where Resume.&lt;b style="mso-bidi-font-weight:normal;"&gt;exist&lt;/b&gt; (&amp;#39;/ns1:Resume/ns1:Education/ns1:Edu.Level [.=&amp;quot;Bachelor&amp;quot;]&amp;#39;) = 1&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;4.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Nodes method&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;This method will convert from XML format into relational format. Illustration for this method is to return list of bycicle model that contain material.&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;with xmlnamespaces (&amp;#39;http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription&amp;#39; as ns1)&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;select ProductModelID, Name, material.query(&amp;#39;.&amp;#39;) as [material name]&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;from Production.ProductModel&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="MARGIN:0cm 0cm 10pt 36pt;"&gt;&lt;font face="Calibri" size="3"&gt;cross apply catalogdescription.&lt;b style="mso-bidi-font-weight:normal;"&gt;nodes &lt;/b&gt;(&amp;#39;/ns1:ProductDescription/ns1:Specifications/Material/text()&amp;#39;) as cd(material)&lt;/font&gt;&lt;/p&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;XML Data Manipulation&lt;/font&gt;&lt;/font&gt;&lt;/b&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;For data manipulation, XML type provides modify method. This method covers manipulation for insert, update and delete.&lt;/font&gt;&lt;/p&gt;
&lt;h6&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;em&gt;&lt;font size="3"&gt;&lt;font color="#243f60"&gt;&lt;font face="Cambria"&gt;Insert&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/b&gt;&lt;/h6&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;The format of insert statement for XML is &lt;/font&gt;&lt;/p&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;INSERT (&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;tag1&amp;gt;…&amp;lt;/tag1&amp;gt;, &amp;lt;tagn&amp;gt;…&amp;lt;/tagn&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;) &lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;INTO (/parent node)[1]&lt;/font&gt;&lt;/font&gt;&lt;/b&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;For example, I insert new element (state, country, CEO) into existing XML data as shown below :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;declare @var xml;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;select @var = &amp;#39;&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;&amp;lt;company&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;name&amp;gt;Microsoft&amp;lt;/name&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;address&amp;gt;One Microsoft Way&amp;lt;/address&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;city&amp;gt;Redmond&amp;lt;/city&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;&amp;lt;/company&amp;gt;&amp;#39;;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;set @var.modify (&amp;#39;insert (&amp;lt;state&amp;gt;Washington&amp;lt;/state&amp;gt;,&amp;lt;country&amp;gt;USA&amp;lt;/country&amp;gt;,&amp;lt;CEO&amp;gt;Bill Gates&amp;lt;/CEO&amp;gt;) into (/company)[1]&amp;#39;);&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;select @var;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;The select result is :&lt;/font&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;company&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;name&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Microsoft&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;name&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;address&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;One Microsoft Way&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;address&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;city&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Redmond&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;city&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;state&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Washington&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;state&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;country&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;USA&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;country&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;CEO&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Bill Gates&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;CEO&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;company&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;h6&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;em&gt;&lt;font size="3"&gt;&lt;font color="#243f60"&gt;&lt;font face="Cambria"&gt;Update&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/b&gt;&lt;/h6&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;The syntax for XML update statement is :&lt;/font&gt;&lt;/p&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Replace value of ( XQuery )[1] with “new value”&lt;/font&gt;&lt;/font&gt;&lt;/b&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;Note : XQuery for update statement must include text() keyword for target XML element.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;The example here is to update old CEO element text into new one (Steve Ballmer):&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;declare @var xml;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;select @var = &amp;#39;&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;&amp;lt;company&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;name&amp;gt;Microsoft&amp;lt;/name&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;address&amp;gt;One Microsoft Way&amp;lt;/address&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;city&amp;gt;Redmond&amp;lt;/city&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;&amp;lt;/company&amp;gt;&amp;#39;;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;set @var.modify (&amp;#39;insert (&amp;lt;state&amp;gt;Washington&amp;lt;/state&amp;gt;,&amp;lt;country&amp;gt;USA&amp;lt;/country&amp;gt;,&amp;lt;CEO&amp;gt;Bill Gates&amp;lt;/CEO&amp;gt;) into (/company)[1]&amp;#39;);&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;set @var.modify (&amp;#39;replace value of (/company/CEO/text())[1] with &amp;quot;Steve Ballmer&amp;quot;&amp;#39;);&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;select @var;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;the query result is :&lt;/font&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;company&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;name&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Microsoft&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;name&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;address&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;One Microsoft Way&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;address&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;city&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Redmond&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;city&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;state&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Washington&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;state&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;country&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;USA&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;country&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;CEO&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Steve Ballmer&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;CEO&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;company&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;h6&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;em&gt;&lt;font size="3"&gt;&lt;font color="#243f60"&gt;&lt;font face="Cambria"&gt;Delete&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/b&gt;&lt;/h6&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;Syntax for XML delete statement is :&lt;/font&gt;&lt;/p&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;DELETE &lt;i style="mso-bidi-font-style:normal;"&gt;XQuery&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/b&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;For example here, I delete node address.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;declare @var xml;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;select @var = &amp;#39;&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;&amp;lt;company&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;name&amp;gt;Microsoft&amp;lt;/name&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;address&amp;gt;One Microsoft Way&amp;lt;/address&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;city&amp;gt;Redmond&amp;lt;/city&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;&amp;lt;/company&amp;gt;&amp;#39;;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;set @var.modify (&amp;#39;insert (&amp;lt;state&amp;gt;Washington&amp;lt;/state&amp;gt;,&amp;lt;country&amp;gt;USA&amp;lt;/country&amp;gt;,&amp;lt;CEO&amp;gt;Bill Gates&amp;lt;/CEO&amp;gt;) into (/company)[1]&amp;#39;);&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;set @var.modify (&amp;#39;replace value of (/company/CEO/text())[1] with &amp;quot;Steve Ballmer&amp;quot;&amp;#39;);&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;set @var.modify (&amp;#39;delete /company/city&amp;#39;);&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;select @var;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;the result for delete statement is :&lt;/font&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;company&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;name&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Microsoft&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;name&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;address&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;One Microsoft Way&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;address&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;state&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Washington&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;state&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;country&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;USA&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;country&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;CEO&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Steve Ballmer&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;CEO&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;company&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/27/introduction-of-xml-data-type-in-practical-use-part-2-finish.aspx&amp;amp;subject=Introduction of XML Data Type in Practical Use (Part 2-finish)" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/27/introduction-of-xml-data-type-in-practical-use-part-2-finish.aspx&amp;amp;t=Introduction+of+XML+Data+Type+in+Practical+Use+(Part+2-finish)" target="_blank" title="Submit Introduction of XML Data Type in Practical Use (Part 2-finish) to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/27/introduction-of-xml-data-type-in-practical-use-part-2-finish.aspx&amp;amp;title=Introduction+of+XML+Data+Type+in+Practical+Use+(Part+2-finish)" target="_blank" title="Submit Introduction of XML Data Type in Practical Use (Part 2-finish) to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/27/introduction-of-xml-data-type-in-practical-use-part-2-finish.aspx&amp;amp;phase=2" target="_blank" title="Submit Introduction of XML Data Type in Practical Use (Part 2-finish) to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/27/introduction-of-xml-data-type-in-practical-use-part-2-finish.aspx&amp;amp;title=Introduction+of+XML+Data+Type+in+Practical+Use+(Part+2-finish)" target="_blank" title="Add Introduction of XML Data Type in Practical Use (Part 2-finish) to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=64587" width="1" height="1"&gt;</content><author><name>Kasim.Wirama</name><uri>http://geeks.netindonesia.net/members/Kasim.Wirama.aspx</uri></author><category term="SQL Server" scheme="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>Tip Querying Using SQL Server Management Studio</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/20/tip-querying-using-sql-server-management-studio.aspx" /><id>http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/20/tip-querying-using-sql-server-management-studio.aspx</id><published>2008-08-19T23:34:00Z</published><updated>2008-08-19T23:34:00Z</updated><content type="html">&lt;h2 style="MARGIN:12pt 0cm 3pt;TEXT-ALIGN:center;" align="center"&gt;&lt;em&gt;Tip Querying Using SQL Server Management Studio&lt;/em&gt;&lt;/h2&gt;
&lt;h3 style="MARGIN:12pt 0cm 3pt;TEXT-ALIGN:center;" align="center"&gt;By : Kasim Wirama, MCDBA&lt;/h3&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;Starting from SQL Server 2005, functionalities of Enterprise Manager and Query Analyzer are united into one application, which is called SQL Server Management Studio (SSMS).&lt;/font&gt;&lt;/p&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;For those who has used SSMS; it is inherited from Visual Studio 2005. You can do database management task and also database development task. Here are some points that makes your work more effectively with SSMS.&lt;/font&gt;&lt;/p&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;ol style="MARGIN-TOP:0cm;"&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;If you type a query and execute it; the result set display below the query; if the resultset is large enough, you’d better to see the resultset in separate tab. What I do is to select Tools menu, Options, go to Query Results, then SQL Server Results to Grid/Results to Text, and check “display results in a separate tab”. And if you would like to switch to result tab, you can check “switch to results tab after the query executes”.&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;ol style="MARGIN-TOP:0cm;" start="2"&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;after point 1 is done, you need to navigate between query tab and result tab, the shortcut key for this is by pressing F6 key.&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;ol style="MARGIN-TOP:0cm;" start="3"&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;sometimes you want to copy the resultset into excel; but you get no column header copied at excel. To have your resultset copied to excel along with column header name, you need to go to Tools menu, Options, go to Query Results, then SQL Server, Result to Grid, and check “Include column headers when copying or saving the results”&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;ol style="MARGIN-TOP:0cm;" start="4"&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;when you need to specify all column list (not typing ‘*’) in select statement, you just drag “Columns” folder of the table you want to query into query window. It will automatically specify all column names for you without having to type it one by one especially the table has many column list.&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;ol style="MARGIN-TOP:0cm;" start="5"&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;if you want to do ad-hoc insert/update/delete/select statement, you just right click on a table, and choose “script table as” then there is sub context menu available for you to choose (SELECT To, INSERT To, UPDATE To, DELETE To).&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/20/tip-querying-using-sql-server-management-studio.aspx&amp;amp;subject=Tip Querying Using SQL Server Management Studio" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/20/tip-querying-using-sql-server-management-studio.aspx&amp;amp;t=Tip+Querying+Using+SQL+Server+Management+Studio" target="_blank" title="Submit Tip Querying Using SQL Server Management Studio to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/20/tip-querying-using-sql-server-management-studio.aspx&amp;amp;title=Tip+Querying+Using+SQL+Server+Management+Studio" target="_blank" title="Submit Tip Querying Using SQL Server Management Studio to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/20/tip-querying-using-sql-server-management-studio.aspx&amp;amp;phase=2" target="_blank" title="Submit Tip Querying Using SQL Server Management Studio to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/20/tip-querying-using-sql-server-management-studio.aspx&amp;amp;title=Tip+Querying+Using+SQL+Server+Management+Studio" target="_blank" title="Add Tip Querying Using SQL Server Management Studio to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=63810" width="1" height="1"&gt;</content><author><name>Kasim.Wirama</name><uri>http://geeks.netindonesia.net/members/Kasim.Wirama.aspx</uri></author><category term="SQL Server" scheme="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>Installing SQL Server 2008 (RTM) without any issue</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/10/installing-sql-server-2008-rtm-without-any-issue.aspx" /><id>http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/10/installing-sql-server-2008-rtm-without-any-issue.aspx</id><published>2008-08-10T00:19:00Z</published><updated>2008-08-10T00:19:00Z</updated><content type="html">&lt;h2 style="MARGIN:10pt 0in 0pt;TEXT-ALIGN:center;" align="center"&gt;&lt;font face="Cambria" color="#4f81bd" size="4"&gt;Installing SQL Server 2008 (RTM) without any issue&lt;/font&gt;&lt;/h2&gt;
&lt;h4 style="MARGIN:10pt 0in 0pt;TEXT-ALIGN:center;" align="center"&gt;&lt;em&gt;&lt;font face="Cambria" color="#4f81bd"&gt;By : Kasim Wirama, MCDBA&lt;/font&gt;&lt;/em&gt;&lt;/h4&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;I have downloaded SQL Server 2008 (RTM), but when I installed the RTM, the installer didn’t permitted me to install successfully because my Visual Studio 2008 was not patched for service pack 1. I searched to Microsoft website, it only has service pack 1 beta version for visual studio 2008.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;The first installation failed; I tried my workaround here by installing database core engine without installing Management studio; then the installation for core engine has completed successfully. Now how can I managed the database using Management Studio? I executed SQL Server 2008 RC0 installer and choose to install Management Studio. After that I can operate SQL Server 2008 (RTM) engine with Management Studio of SQL Server 2008 RC0 installer.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;I think it is the workaround while waiting Visual Studio 2008 service pack 1 gets released!&lt;/font&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/10/installing-sql-server-2008-rtm-without-any-issue.aspx&amp;amp;subject=Installing SQL Server 2008 (RTM) without any issue" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/10/installing-sql-server-2008-rtm-without-any-issue.aspx&amp;amp;t=Installing+SQL+Server+2008+(RTM)+without+any+issue" target="_blank" title="Submit Installing SQL Server 2008 (RTM) without any issue to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/10/installing-sql-server-2008-rtm-without-any-issue.aspx&amp;amp;title=Installing+SQL+Server+2008+(RTM)+without+any+issue" target="_blank" title="Submit Installing SQL Server 2008 (RTM) without any issue to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/10/installing-sql-server-2008-rtm-without-any-issue.aspx&amp;amp;phase=2" target="_blank" title="Submit Installing SQL Server 2008 (RTM) without any issue to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/10/installing-sql-server-2008-rtm-without-any-issue.aspx&amp;amp;title=Installing+SQL+Server+2008+(RTM)+without+any+issue" target="_blank" title="Add Installing SQL Server 2008 (RTM) without any issue to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=62912" width="1" height="1"&gt;</content><author><name>Kasim.Wirama</name><uri>http://geeks.netindonesia.net/members/Kasim.Wirama.aspx</uri></author><category term="SQL Server" scheme="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>Introduction of XML Data Type in Practical Use (Part 1)</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/03/introduction-of-xml-data-type-in-practical-use-part-1.aspx" /><id>http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/03/introduction-of-xml-data-type-in-practical-use-part-1.aspx</id><published>2008-08-03T10:09:00Z</published><updated>2008-08-03T10:09:00Z</updated><content type="html">&lt;h2 style="MARGIN:10pt 0in 0pt;TEXT-ALIGN:center;" align="center"&gt;&lt;font face="Cambria" color="#4f81bd" size="4"&gt;Introduction of XML Data Type in Practical Use (Part 1)&lt;/font&gt;&lt;/h2&gt;
&lt;h4 style="MARGIN:10pt 0in 0pt;TEXT-ALIGN:center;" align="center"&gt;&lt;em&gt;&lt;font face="Cambria" color="#4f81bd"&gt;By : Kasim Wirama, MCDBA&lt;/font&gt;&lt;/em&gt;&lt;/h4&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;Beginning from SQL Server 2005, XML becomes first class citizen with any other native data type.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;In this first part of XML posting, I would like to show by example how to declare XML and query XML SCHEMA COLLECTION as required element to define typed XML declaration.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;You now can define XML either as data type of either variable or column, for example :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;Declare @var_xml AS XML – – XML in variable declaration&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;CREATE TABLE dbo.xmlTable&lt;br /&gt;(&lt;br /&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;cola XML&lt;br /&gt;);&lt;span style="mso-tab-count:3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;– – XML in table declaration&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;XML use in table declaration at the above sample is called untyped XML, for typed XML you need to define XML SCHEMA COLLECTION and then use the XML SCHEMA COLLECTION in column declaration. For example&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;CREATE TABLE dbo.xmlTable&lt;br /&gt;(&lt;br /&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;cola XML (CONTENT dbo.myXMLSCHEMACOLLECTION)&lt;br /&gt;);&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;To get definition of dbo. myXMLSCHEMACOLLECTION, issue the query here :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;SELECT XML_SCHEMA_NAMESPACE (‘dbo’,’ myXMLSCHEMACOLLECTION’);&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;For existing example of xml schema collection, you can find in AdventureWorks database here :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;SELECT XML_SCHEMA_NAMESPACE(&amp;#39;production&amp;#39;,&amp;#39;manuinstructionsschemacollection&amp;#39;);&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;You can create XML SCHEMA COLLECTION with this syntax here :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;CREATE XML SCHEMA COLLECTION [schema name].collection_name&lt;br /&gt;AS&lt;br /&gt;‘xml schema definition string’&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;To drop a XML schema collection, issue this syntax :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;DROP XML SCHEMA COLLECTION [schema name].collection_name&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;To alter a XML schema collection, issue this syntax :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;ALTER XML SCHEMA COLLECTION [schema name].collection_name&lt;br /&gt;ADD ‘xml schme definition string’&lt;/font&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/03/introduction-of-xml-data-type-in-practical-use-part-1.aspx&amp;amp;subject=Introduction of XML Data Type in Practical Use (Part 1)" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/03/introduction-of-xml-data-type-in-practical-use-part-1.aspx&amp;amp;t=Introduction+of+XML+Data+Type+in+Practical+Use+(Part+1)" target="_blank" title="Submit Introduction of XML Data Type in Practical Use (Part 1) to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/03/introduction-of-xml-data-type-in-practical-use-part-1.aspx&amp;amp;title=Introduction+of+XML+Data+Type+in+Practical+Use+(Part+1)" target="_blank" title="Submit Introduction of XML Data Type in Practical Use (Part 1) to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/03/introduction-of-xml-data-type-in-practical-use-part-1.aspx&amp;amp;phase=2" target="_blank" title="Submit Introduction of XML Data Type in Practical Use (Part 1) to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/08/03/introduction-of-xml-data-type-in-practical-use-part-1.aspx&amp;amp;title=Introduction+of+XML+Data+Type+in+Practical+Use+(Part+1)" target="_blank" title="Add Introduction of XML Data Type in Practical Use (Part 1) to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=60988" width="1" height="1"&gt;</content><author><name>Kasim.Wirama</name><uri>http://geeks.netindonesia.net/members/Kasim.Wirama.aspx</uri></author><category term="SQL Server" scheme="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>Execution Plan Optimality through Statistics Information</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/execution-plan-optimality-through-statistics-information.aspx" /><id>http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/execution-plan-optimality-through-statistics-information.aspx</id><published>2008-07-29T13:28:00Z</published><updated>2008-07-29T13:28:00Z</updated><content type="html">&lt;h2 style="MARGIN:10pt 0in 0pt;TEXT-ALIGN:center;" align="center"&gt;&lt;font face="Cambria" color="#4f81bd" size="4"&gt;Execution Plan Optimality through Statistics Information&lt;/font&gt;&lt;/h2&gt;
&lt;h4 style="MARGIN:10pt 0in 0pt;TEXT-ALIGN:center;" align="center"&gt;&lt;em&gt;&lt;font face="Cambria" color="#4f81bd"&gt;By : Kasim Wirama, MCDBA&lt;/font&gt;&lt;/em&gt;&lt;/h4&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;As we know that index is used for fast query response time. What causes index could speed up fast query response time? It is because index helps optimizer to generate good execution plan. Is it only index that is used for the performance purpose? The answer is no. Statistics is another option for optimizer to generate good execution plan. So why we need index?&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Index is used to locate qualified records whereas statistics doesn’t. Statistics only tell optimizer in what extent a column or column combination is unique. The uniqueness of column (a group of column) is called density. It is expressed as 1/number of unique value. The value is between 0 and 1 for the just mentioned expression. The bigger the number; the density is less; the more likely optimizer will decide to have index scanning rather than index seek. &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;In old thread of mailing list discussion in &lt;/font&gt;&lt;a href="mailto:sqlserver-indo@yahoogroups.com"&gt;&lt;font face="Calibri" size="3"&gt;sqlserver-indo@yahoogroups.com&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri" size="3"&gt;, once a mailing list user asked what highly selective index meant? Here I say that a highly selective index is another word for high density statistics. An index must have statistics but statistics doesn’t necessarily have index. Optimizer will choose index seek most likely when density is 0.10 or less. To get density information, you can issue DBCC SHOW_STATISTICS transact-sql command.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;For example usage of SHOW_STATISTICS, I create compound statistics on orders table and drop index on EmployeeID column:&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;CREATE STATISTICS st_EmployeeID_OrderDate ON dbo.orders (EmployeeID, OrderDate)&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Now let’s see statistics information for each of them by running DBCC command here :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;DBCC SHOW_STATISTICS (&amp;#39;dbo.orders&amp;#39;,&amp;#39;st_EmployeeID_OrderDate&amp;#39;)&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;I am interested with All Density column information here:&lt;/font&gt;&lt;/p&gt;
&lt;table class="MsoTableGrid" style="BORDER-RIGHT:medium none;BORDER-TOP:medium none;MARGIN:auto auto auto 0.5in;BORDER-LEFT:medium none;BORDER-BOTTOM:medium none;BORDER-COLLAPSE:collapse;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt;" cellspacing="0" cellpadding="0" class="MsoTableGrid"&gt;

&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;"&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:black 1pt solid;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:black 1pt solid;WIDTH:148.55pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;"&gt;&lt;font face="Calibri"&gt;All Density&lt;/font&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:black 1pt solid;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#d4d0c8;WIDTH:145.9pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;"&gt;&lt;font face="Calibri"&gt;Average Length&lt;/font&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:black 1pt solid;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#d4d0c8;WIDTH:148.35pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;"&gt;&lt;font face="Calibri"&gt;Column&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:1;"&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#d4d0c8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:black 1pt solid;WIDTH:148.55pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;"&gt;&lt;font face="Calibri"&gt;0.1111111&lt;/font&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#d4d0c8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#d4d0c8;WIDTH:145.9pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;font face="Calibri"&gt;4&lt;/font&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#d4d0c8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#d4d0c8;WIDTH:148.35pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;font face="Calibri"&gt;EmployeeID&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:2;mso-yfti-lastrow:yes;"&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#d4d0c8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:black 1pt solid;WIDTH:148.55pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;"&gt;&lt;font face="Calibri"&gt;0.001302083&lt;/font&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#d4d0c8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#d4d0c8;WIDTH:145.9pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;font face="Calibri"&gt;12&lt;/font&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#d4d0c8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#d4d0c8;WIDTH:148.35pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;font face="Calibri"&gt;EmployeeID, OrderDate&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;If query predicate only have EmployeeID column, optimizer consider index scan because the density is not high enough (higher than 0.1) and when query predicate includes OrderDate and EmployeeID, optimizer will consider index seek because the density is high (less than 0.1). Another interesting point is that you can influence query optimizer decision from index scan to index seek by implementing index on employeeID column.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Density information from DBCC show statistics will help you determine whether you really need index or just statistics to achieve optimal execution plan.&lt;/font&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/execution-plan-optimality-through-statistics-information.aspx&amp;amp;subject=Execution Plan Optimality through Statistics Information" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/execution-plan-optimality-through-statistics-information.aspx&amp;amp;t=Execution+Plan+Optimality+through+Statistics+Information" target="_blank" title="Submit Execution Plan Optimality through Statistics Information to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/execution-plan-optimality-through-statistics-information.aspx&amp;amp;title=Execution+Plan+Optimality+through+Statistics+Information" target="_blank" title="Submit Execution Plan Optimality through Statistics Information to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/execution-plan-optimality-through-statistics-information.aspx&amp;amp;phase=2" target="_blank" title="Submit Execution Plan Optimality through Statistics Information to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/execution-plan-optimality-through-statistics-information.aspx&amp;amp;title=Execution+Plan+Optimality+through+Statistics+Information" target="_blank" title="Add Execution Plan Optimality through Statistics Information to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=59485" width="1" height="1"&gt;</content><author><name>Kasim.Wirama</name><uri>http://geeks.netindonesia.net/members/Kasim.Wirama.aspx</uri></author><category term="SQL Server" scheme="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>Welcome to SQL Server Knowledge Centre</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/welcome-to-sql-server-knowledge-centre.aspx" /><id>http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/welcome-to-sql-server-knowledge-centre.aspx</id><published>2008-07-29T01:38:00Z</published><updated>2008-07-29T01:38:00Z</updated><content type="html">&lt;h1 style="MARGIN:12pt 0cm 3pt;TEXT-ALIGN:center;" align="center"&gt;&lt;font size="5"&gt;Welcome to SQL Server Knowledge Centre&lt;/font&gt;&lt;/h1&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;I name my blog as knowledge source for SQL Server, hopefully someday it will become SQL Server knowledge portal, not&amp;nbsp;just portal.&amp;nbsp;So, I welcome you guys to visit &lt;b style="mso-bidi-font-weight:normal;"&gt;SQL SERVER KNOWLEDGE CENTRE&lt;/b&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/welcome-to-sql-server-knowledge-centre.aspx&amp;amp;subject=Welcome to SQL Server Knowledge Centre" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/welcome-to-sql-server-knowledge-centre.aspx&amp;amp;t=Welcome+to+SQL+Server+Knowledge+Centre" target="_blank" title="Submit Welcome to SQL Server Knowledge Centre to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/welcome-to-sql-server-knowledge-centre.aspx&amp;amp;title=Welcome+to+SQL+Server+Knowledge+Centre" target="_blank" title="Submit Welcome to SQL Server Knowledge Centre to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/welcome-to-sql-server-knowledge-centre.aspx&amp;amp;phase=2" target="_blank" title="Submit Welcome to SQL Server Knowledge Centre to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/welcome-to-sql-server-knowledge-centre.aspx&amp;amp;title=Welcome+to+SQL+Server+Knowledge+Centre" target="_blank" title="Add Welcome to SQL Server Knowledge Centre to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=59400" width="1" height="1"&gt;</content><author><name>Kasim.Wirama</name><uri>http://geeks.netindonesia.net/members/Kasim.Wirama.aspx</uri></author><category term="SQL Server" scheme="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>Common Mistakes in SQL Practice</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/common-mistakes-in-sql-practice.aspx" /><id>http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/common-mistakes-in-sql-practice.aspx</id><published>2008-07-28T23:55:00Z</published><updated>2008-07-28T23:55:00Z</updated><content type="html">&lt;h3 style="MARGIN:12pt 0cm 3pt;TEXT-ALIGN:center;" align="center"&gt;Common Mistakes in SQL Practice&lt;/h3&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;font size="3"&gt;&lt;font face="Times New Roman"&gt;By : Kasim Wirama, MCDBA&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Times New Roman" size="3"&gt;Some common mistakes are always found in all projects when I have ever involved. Here are points I would like to share with you.&lt;/font&gt;&lt;/p&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;ol style="MARGIN-TOP:0cm;"&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;Data file and transaction log file put in same drive.&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Times New Roman" size="3"&gt;For development phase, it is fine, but for production, it is less optimal because of access method difference between transaction log (sequential) and data file (random). When you have multiple processors and one or more RAID controller, it is recommended you spread heavily used tables into multiple data files.&lt;/font&gt;&lt;/p&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;ol style="MARGIN-TOP:0cm;" start="2"&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;Specify * (asterisk sign) instead of explicitly column names in query statement.&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Times New Roman" size="3"&gt;When * sign is issued, under the hood, SQL Server will query system tables to get column names, it is not good programming practice and it will prone to application error when the number of columns in database doesn’t match with those of application.&lt;/font&gt;&lt;/p&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;ol style="MARGIN-TOP:0cm;" start="3"&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;Specify sp prefix in stored procedure name.&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Times New Roman" size="3"&gt;When you specify sp prefix name, SQL Server will look the stored procedure in master database then in current context database; so it is less efficient.&lt;/font&gt;&lt;/p&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;ol style="MARGIN-TOP:0cm;" start="4"&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;Do not specify schema name when references database object.&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;ol style="MARGIN-TOP:0cm;" start="5"&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;Specify unidentical column attributes when doing comparison.&lt;br /&gt;let’s say your query contains predicate firstname like @var1 + ‘%’, where firstname column is varchar(40) and @var1 is nvarchar(40). In this case SQL Server will convert one of them into another column type which has higher data type precedence. When the conversion happens on firstname; possible access method is index scan rather than index seek; which is less efficient.&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;ol style="MARGIN-TOP:0cm;" start="6"&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;Wrap column name with a function&lt;br /&gt;for example : convert(varchar(8), createdDate,112) = ‘20080729’. If you find column name is wrapped with function; it is guaranteed that only index scan is option for getting the result; the more rows in tables, the longer the result will be returned. &lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;ol style="MARGIN-TOP:0cm;" start="7"&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;Don’t take benefit of full text indexing for % wildcard in front for variable.&lt;br /&gt;When you find this predicate : columnname like ‘%’ + @var1 + ‘%’; again the one and only access method is index scan provided an index is created on the columnname. The better solution is to create full text indexing upon columnname.&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;ol style="MARGIN-TOP:0cm;" start="8"&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;Not specify SET NOCOUNT ON within database objects.&lt;br /&gt;It is advisable to put SET NOCOUNT ON within database objects to reduce network overhead, otherwise network bandwidth will be occupied with unnecessary chattiness communication between database tier and application tier.&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;ol style="MARGIN-TOP:0cm;" start="9"&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;Don’t use efficient cursor&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Times New Roman" size="3"&gt;I always find developers use less efficient cursor. Cursor itself gives overhead to database and potentially causes concurrency problem. It is preferable to create set based solution (with query) rather than cursor, but in some business requirement; it is impossible to use query. If you really need to use cursor; try to lightweight one by declaring local, readonly and one direction cursor. For example :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Times New Roman" size="3"&gt;DECLARE mycursor CURSOR LOCAL READ_ONLY FAST_FORWARD FOR select distinct city from dbo.Customers.&lt;/font&gt;&lt;/p&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;ol style="MARGIN-TOP:0cm;" start="10"&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;Don’t implement clustered index&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Times New Roman" size="3"&gt;A table which doesn’t have clustered index will have forwarding records when it is frequently updated. It will lead to fragmentation sooner.&lt;/font&gt;&lt;/p&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;ol style="MARGIN-TOP:0cm;" start="11"&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;Database is less normalized&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Times New Roman" size="3"&gt;Sign of less normalized database design is that need more business logic to get ad hoc information from database. Consider to review the database design when it happens.&lt;/font&gt;&lt;/p&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Times New Roman" size="3"&gt;By avoiding these common mistakes, you will have better performing database. If you have other points that will help to avoid database common mistakes, feel free to add it through comments.&lt;/font&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/common-mistakes-in-sql-practice.aspx&amp;amp;subject=Common Mistakes in SQL Practice" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/common-mistakes-in-sql-practice.aspx&amp;amp;t=Common+Mistakes+in+SQL+Practice" target="_blank" title="Submit Common Mistakes in SQL Practice to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/common-mistakes-in-sql-practice.aspx&amp;amp;title=Common+Mistakes+in+SQL+Practice" target="_blank" title="Submit Common Mistakes in SQL Practice to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/common-mistakes-in-sql-practice.aspx&amp;amp;phase=2" target="_blank" title="Submit Common Mistakes in SQL Practice to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/29/common-mistakes-in-sql-practice.aspx&amp;amp;title=Common+Mistakes+in+SQL+Practice" target="_blank" title="Add Common Mistakes in SQL Practice to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=59359" width="1" height="1"&gt;</content><author><name>Kasim.Wirama</name><uri>http://geeks.netindonesia.net/members/Kasim.Wirama.aspx</uri></author><category term="SQL Server" scheme="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>Tips to Detect Suboptimal Execution Plan</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/27/tips-to-detect-suboptimal-execution-plan.aspx" /><id>http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/27/tips-to-detect-suboptimal-execution-plan.aspx</id><published>2008-07-27T01:36:00Z</published><updated>2008-07-27T01:36:00Z</updated><content type="html">&lt;h2 style="MARGIN:10pt 0in 0pt;TEXT-ALIGN:center;" align="center"&gt;&lt;font face="Cambria" color="#4f81bd" size="4"&gt;Tips to Detect Suboptimal Execution Plan&lt;/font&gt;&lt;/h2&gt;
&lt;h4 style="MARGIN:10pt 0in 0pt;TEXT-ALIGN:center;" align="center"&gt;&lt;em&gt;&lt;font face="Cambria" color="#4f81bd"&gt;By : Kasim Wirama, MCDBA&lt;/font&gt;&lt;/em&gt;&lt;/h4&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;This posting, I would like to give important points that need to consider when reviewing an execution plan. With this information on this posting, you can assess whether your execution plan has potential performance problem. It answers your question why sometimes a query responds inconsistently.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;1.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;If you find nested loop operator, make sure outer query doesn’t give big input into nested loop operator because nested loop is less efficient for processing big input. When you find out inner query is in scan (clustered or nonclustered), try to add appropriate index on the inner query. When you find out bookmark lookup (key lookup), a query improvement chance is there to remove inefficient bookmark lookup by including columns on outer query index.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;2.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Beware when your execution plan has sort, hash aggregate and hash join operator, and particularly the query is the most accessed queries. As I already discuss these operators on recent postings, these operators take memory. The more frequent it’s accessed, the more possible there will be insufficient memory that will lead to spill data into tempdb database which will degrade performance significantly.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt 1in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l0 level2 lfo1;mso-add-space:auto;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;a.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;To detect memory problem with sort operator, in profiler select&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Error and Warnings event group, Sort Warnings, choose EventSubClass. When you find out EventSubClass is 2, it indicates sort operator is inefficient.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt 1in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l0 level2 lfo1;mso-add-space:auto;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;b.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;To detect memory problem with hash operator, in profiler select Error and Warnings event group, Hash Warnings, choose EventSubClass and IntegerData column. When you find out EventSubClass is 0, it indicates that there already happened normal spilling to tempdb disk; in addition IntegerData column shows how many times same data is spilled out to disk. In worst condition, EventSubClass is 1, it indicates that IntegerData has shown maximum number of times same data got spilled and normal spilling has turned out into bailout spilling.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;3.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;When your database undergoes concurrency issue (excessive lock, blocking or deadlock), consider figuring out efficient index to would give better access method to data for given query.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;4.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;In OLTP, avoid scan operator, it is much better to change scan operator to seek operator. It is useful when the operator actually needs a few row instead of a large number of rows in a table.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;5.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;In OLTP, parallelism is favored in order to reduce response time even though it takes more processor resource.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;6.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;In OLTP, avoid parallel merge join and reassess merging exchange; when you have parallel hash join, it would be scalable especially when you have multicore CPU or multi processor because it doesn’t claim more memory as degree of parallelism increases.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;7.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;When you have clustered and nonclustered index, it is best to put nonclustered index on separate physical drive; so it give less contention to your data file.&lt;/font&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/27/tips-to-detect-suboptimal-execution-plan.aspx&amp;amp;subject=Tips to Detect Suboptimal Execution Plan" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/27/tips-to-detect-suboptimal-execution-plan.aspx&amp;amp;t=Tips+to+Detect+Suboptimal+Execution+Plan" target="_blank" title="Submit Tips to Detect Suboptimal Execution Plan to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/27/tips-to-detect-suboptimal-execution-plan.aspx&amp;amp;title=Tips+to+Detect+Suboptimal+Execution+Plan" target="_blank" title="Submit Tips to Detect Suboptimal Execution Plan to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/27/tips-to-detect-suboptimal-execution-plan.aspx&amp;amp;phase=2" target="_blank" title="Submit Tips to Detect Suboptimal Execution Plan to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/27/tips-to-detect-suboptimal-execution-plan.aspx&amp;amp;title=Tips+to+Detect+Suboptimal+Execution+Plan" target="_blank" title="Add Tips to Detect Suboptimal Execution Plan to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=58956" width="1" height="1"&gt;</content><author><name>Kasim.Wirama</name><uri>http://geeks.netindonesia.net/members/Kasim.Wirama.aspx</uri></author><category term="SQL Server" scheme="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>Examine Database Backup Size</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/26/examine-database-backup-size.aspx" /><id>http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/26/examine-database-backup-size.aspx</id><published>2008-07-26T11:22:00Z</published><updated>2008-07-26T11:22:00Z</updated><content type="html">&lt;h2 style="MARGIN:10pt 0in 0pt;TEXT-ALIGN:center;" align="center"&gt;&lt;font face="Cambria"&gt;&lt;span style="FONT-SIZE:13.5pt;COLOR:#4f81bd;LINE-HEIGHT:115%;mso-ascii-font-family:Cambria;mso-hansi-font-family:Cambria;"&gt;Examine Database Backup Size&lt;/span&gt;&lt;span style="FONT-SIZE:18pt;LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/h2&gt;
&lt;h3 style="MARGIN:10pt 0in 0pt;TEXT-ALIGN:center;" align="center"&gt;&lt;span style="FONT-SIZE:12pt;COLOR:#4f81bd;LINE-HEIGHT:115%;mso-ascii-font-family:Cambria;mso-hansi-font-family:Cambria;"&gt;&lt;font face="Cambria"&gt;By : Kasim Wirama, MCDBA&lt;/font&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font face="Cambria"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font face="Calibri" size="3"&gt;I have seen Idera products several times intended for SQL Server use through several advertisements at SQL Server Magazine. One of its products is SQLSafe which has backup and restore functionality. It seems that Idera is generous to let SQL Server customers to try its core feature in freeware edition with same functionality as full feature edition does. You need full feature edition when have advanced backup/restore requirement such as backup encryption, table level recovery, stripped backup, policy-based backup, backup reporting, and integration with Tivoli Storage Manager. I am very interested to know what table level recovery feature can do precisely; I leave it for some time after I download free trial 14 days from its website. Back to topic, the core functionality that exists both SQLSafe freeware edition and SQLSafe (full feature) is that they are indeed high performance backup engine, it can be accessed through command line interface or extended stored procedures, and it is optimized in speed.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font face="Calibri" size="3"&gt;I would try to backup Adventureworks database (on SQL Server 2005). With SQLSafe freeware edition, I issue the following command line to backup adventureworks database to drive c:\. Note you can do backup not only by command line interface but also by extended stored procedures from SQL Safe so that you can schedule backup with SQLSafe in SQL Server job (one of SQL Server agent components). For more information about command line and its extended stored procedure, you can access its Command Line Interface documention from SQLSafe installation directory.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font face="Calibri" size="3"&gt;SQLSafeCmd backup AdventureWorks C:\BackupWithSQLSafe.bak&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font face="Calibri" size="3"&gt;Backup file, BackupWithSQLSafe.bak, is created with size 46.25 MB.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font face="Calibri" size="3"&gt;Now I create backup using native SQL Server 2005 backup TSQL command here :&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font face="Calibri" size="3"&gt;BACKUP DATABASE AdventureWorks TO DISK = ‘C:\ Conventional2005Backup.bak’&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font face="Calibri" size="3"&gt;Backup file, Conventional2005Backup.bak, is created with size 171.09 MB. (3.7 times bigger than that of SQLSafe).&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font face="Calibri" size="3"&gt;Now I restore AdventureWorks database from SQL Server 2005 to SQL Server 2008 RC0, and I change AdventureWorks database compatibility level from SQL Server 2005 (90) to SQL Server 2008 (100), and issue database backup with compression options (new feature in SQL Server 2008) with the following T-SQL command :&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font face="Calibri" size="3"&gt;BACKUP DATABASE AdventureWorks&lt;br /&gt;TO DISK =&amp;#39;C:\Conventional2008Backup_with_compression.bak&amp;#39;&lt;br /&gt;WITH COMPRESSION&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font face="Calibri" size="3"&gt;Backup file, Conventional2008Backup_with_compression.bak, is created with size 138.06 MB. Here is summary of Adventureworks database backup.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class="MsoNormalTable" style="BORDER-RIGHT:medium none;BORDER-TOP:medium none;BORDER-LEFT:medium none;BORDER-BOTTOM:medium none;BORDER-COLLAPSE:collapse;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt;" cellspacing="0" cellpadding="0" class="MsoNormalTable"&gt;

&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;"&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:black 1pt solid;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:black 1pt solid;WIDTH:167.4pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;Backup tools&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:black 1pt solid;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#d4d0c8;WIDTH:155.7pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;Backup size (MB)&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:1;"&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#d4d0c8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:black 1pt solid;WIDTH:167.4pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;SQL Safe&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#d4d0c8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#d4d0c8;WIDTH:155.7pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;46.25&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:2;"&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#d4d0c8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:black 1pt solid;WIDTH:167.4pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;SQL Server 2005 (no compression option available)&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#d4d0c8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#d4d0c8;WIDTH:155.7pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;171.09&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:3;mso-yfti-lastrow:yes;"&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#d4d0c8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:black 1pt solid;WIDTH:167.4pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;SQL Server 2008 RC0 (with compression option)&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#d4d0c8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#d4d0c8;WIDTH:155.7pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;138.06&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font face="Calibri" size="3"&gt;From the information above, space consumption saving is around 3 times between SQLSafe and SQL Server’s native backup. If you have other findings or you have tried backup using other products with backup size information, please kindly let me know. Feel free to try SQLSafe.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/26/examine-database-backup-size.aspx&amp;amp;subject=Examine Database Backup Size" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/26/examine-database-backup-size.aspx&amp;amp;t=Examine+Database+Backup+Size" target="_blank" title="Submit Examine Database Backup Size to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/26/examine-database-backup-size.aspx&amp;amp;title=Examine+Database+Backup+Size" target="_blank" title="Submit Examine Database Backup Size to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/26/examine-database-backup-size.aspx&amp;amp;phase=2" target="_blank" title="Submit Examine Database Backup Size to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/26/examine-database-backup-size.aspx&amp;amp;title=Examine+Database+Backup+Size" target="_blank" title="Add Examine Database Backup Size to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=58807" width="1" height="1"&gt;</content><author><name>Kasim.Wirama</name><uri>http://geeks.netindonesia.net/members/Kasim.Wirama.aspx</uri></author><category term="SQL Server" scheme="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>Dealing with Cardinality Estimation Issue</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/26/dealing-with-cardinality-estimation-issue.aspx" /><id>http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/26/dealing-with-cardinality-estimation-issue.aspx</id><published>2008-07-26T11:21:00Z</published><updated>2008-07-26T11:21:00Z</updated><content type="html">&lt;h2 style="MARGIN:10pt 0in 0pt;TEXT-ALIGN:center;" align="center"&gt;&lt;font face="Cambria" color="#4f81bd" size="4"&gt;Dealing with Cardinality Estimation Issue&lt;/font&gt;&lt;/h2&gt;
&lt;h4 style="MARGIN:10pt 0in 0pt;TEXT-ALIGN:center;" align="center"&gt;&lt;em&gt;&lt;font face="Cambria" color="#4f81bd"&gt;By : Kasim Wirama, MCDBA&lt;/font&gt;&lt;/em&gt;&lt;/h4&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;This posting, I would discuss about cardinality estimation issue that leads to suboptimal execution plan in SQL Server. It applies to all SQL Server versions. Generally, SQL&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Server always generate optimal execution plan, but sometimes it generates suboptimal one. Given a complex execution plan, how can I identify which operator is the root cause of the issue. You inspect value between Actual Number of Rows and Estimated Number of Rows in operator of the execution plan. If comparison between Actual and Estimated one is big enough, the operator has cardinality estimation issue. I will let you know how to deal with the issue here.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;When you find out cardinality estimation issue, try to track down the rightmost operator that begins to generate cardinality estimation issue. The problem handling is different between scan-seek operator and join operator. &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;For scan-seek operator, possible cause is improper statistics, too complex predicate (in WHERE clause). Make sure statistics supports predicate. Make sure your predicate is in SARG form (search arguments)-search Kalen Delaney’s article in SQL Server Magazine (http://www.sqlmag.com) for comprehensive discussion about SARG form. When the predicate is in SARG form, make multicolumn statistics. Execute the query to see whether there is no more cardinality estimation issue on the operator. When it still exists, do bigger resample or full scan on the statistics. Sometimes full scan doesn’t solve this issue, other alternatives is to simplify predicate or if it cannot, consider creating computed column and applies statistics on it.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;For cardinality issue on join operator, it might be caused by complex join or correlation between 2 tables. For example, join between customers and orders where predicate is on customers. Some customers might place more orders than others. In this case optimizer couldn’t generate accurate cardinality estimation. You have alternatives to put the join between customers and orders into temporary table so that optimizer could generate accurate cardinality estimation through compilation or you can use hints. SQL Server 2005 and later versions provides many hints. I have written about hints available in SQL Server 2005 in my blogs. You can use recompile option on stored procedure or individual statement in order to generate accurate cardinality estimation.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;By recognizing cardinality estimation issue, you know effective solution to address it. You are on the way to exceptional performance expert by understanding SQL Server query processing engine.&lt;/font&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2008/07/26/dealing-with-cardinality-estimation-issue.aspx&amp;amp;subject=Dealing with Cardinality Estimation Issue" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://