<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Bob Duffy's Blobby Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/boduff/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/boduff/feed.xml</link>
    <description>SQL Server | BI | Dot.Net | Office |  Sharepoint | MCE | Database Stuff</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:20:28 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>PowerPivot RTM has arrived</title>
      <link>https://docs.microsoft.com/archive/blogs/boduff/powerpivot-rtm-has-arrived</link>
      <pubDate>Thu, 22 Apr 2010 15:47:38 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/boduff/2010/04/22/powerpivot-rtm-has-arrived/</guid>
      <description><![CDATA[I’m just back from the office 2010 roadshow. Phew four cities and six presentations on PowerPivot...]]></description>
      <content:encoded><![CDATA[<p>I’m just back from the office 2010 roadshow. Phew four cities and six presentations on PowerPivot later back at home with a nice cup of tea and my own bed for the night ;-)</p>  <p>A few people asked me how to get hold of the RC0 that I was using on the demo.</p>  <p>Well, no need – the full RTM is available to download. you will need:</p>  <p>1. Office 2010, available to MSDN or TechNet subscribers here</p>  <p><a title="https://msdn.microsoft.com/en-us/subscriptions/downloads/default.aspx" href="https://msdn.microsoft.com/en-us/subscriptions/downloads/default.aspx">https://msdn.microsoft.com/en-us/subscriptions/downloads/default.aspx</a></p>  <p>2. Powerpivot RTM available here </p>  <p><a title="https://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=e081c894-e4ab-42df-8c87-4b99c1f3c49b" href="https://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=e081c894-e4ab-42df-8c87-4b99c1f3c49b">https://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=e081c894-e4ab-42df-8c87-4b99c1f3c49b</a></p>  <p>You can also download SharePoint 2010 too from MSDN/TechNet</p>  <p><a title="https://msdn.microsoft.com/en-us/subscriptions/downloads/default.aspx" href="https://msdn.microsoft.com/en-us/subscriptions/downloads/default.aspx">https://msdn.microsoft.com/en-us/subscriptions/downloads/default.aspx</a></p>  <p>The one gotcha is you won’t be able to download the SQL 2008 R2 RTM bits for few weeks.</p>  <p>I have no idea if the SharePoint 2010 RTM will work with the Beta of SQL 2008 r2, but I am guessing its best not to try. Probably best to wait till you can marry up the server side bits and play with the client side bits for the next few weeks…</p>]]></content:encoded>
    </item>
    <item>
      <title>SCOM for SQL Folk on 27th May</title>
      <link>https://docs.microsoft.com/archive/blogs/boduff/scom-for-sql-folk-on-27th-may</link>
      <pubDate>Thu, 22 Apr 2010 14:53:03 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/boduff/2010/04/22/scom-for-sql-folk-on-27th-may/</guid>
      <description><![CDATA[I’m talking at the SQL Users group on “SCOM for SQL folk”. this session is based on my experiences...]]></description>
      <content:encoded><![CDATA[<p>I’m talking at the SQL Users group on “SCOM for SQL folk”. this session is based on my experiences with SCOM and working to get the product to do what we need it to do for managing SQL performance.</p>  <p>Often as a DBA or SQL consultant, SCOM is “forced upon” you by the operations team or corporate strategy.&#160; Lets face it there is no way a SQL guy would pick SCOM as his number one favourite tool for managing SQL Server, when there are many rich, specialist tools just focusing on helping manage SQL Server like Quest, Idera, Red gate, etc (sorry if I missed any!).</p>  <p>However, like it or hate it, SCOM is here to stay from a SQL perspective. Personally I like SCOM as it allows us take an enterprise view of operations and management. EG manage all out infrastructure and application through one common platform. Not only can SCOM manage SQL but also the other service that underpin SQL such as DNS, AD, network, switches, hardware, windows and distributed applications.</p>  <p>I love the work the manageability team is doing in SQL (err well not as much love for DAC but that’s another story), but I wish they would show the SCOM team some more love and hand over more IP on how to manage SQL Server, rather than taking such an insular approach into building manageability into individual products.</p>  <p>I’m no SCOM expert by any shake of the stick, but if you are a SQL guy struggling with SCOM, or someone using SCOM and struggling to manage SQL Performance this could be a session worth coming to.</p>  <p>the link to register is here (its free)</p>  <p><a title="https://mtug.ie/Default.aspx?TabId=38&amp;ctl=Details&amp;Mid=369&amp;ItemID=52&amp;ContainerSrc=%5bG%5dContainers%2f_default%2fNo+Container" href="https://mtug.ie/Default.aspx?TabId=38&amp;ctl=Details&amp;Mid=369&amp;ItemID=52&amp;ContainerSrc=%5bG%5dContainers%2f_default%2fNo+Container">https://mtug.ie/Default.aspx?TabId=38&amp;ctl=Details&amp;Mid=369&amp;ItemID=52&amp;ContainerSrc=%5bG%5dContainers%2f_default%2fNo+Container</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Time to get serious with encryption</title>
      <link>https://docs.microsoft.com/archive/blogs/boduff/time-to-get-serious-with-encryption</link>
      <pubDate>Thu, 22 Apr 2010 14:39:29 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/boduff/2010/04/22/time-to-get-serious-with-encryption/</guid>
      <description><![CDATA[just read an article indicating the some states in the US are making data encryption on disk and on...]]></description>
      <content:encoded><![CDATA[<p>just read an article indicating the some states in the US are making data encryption on disk and on the wire compulsory with some pretty hefty fines</p>  <p>(see <a title="https://www.sqlmag.com/article/sql-server/A-New-Law-that-Will-Change-the-Way-You-Build-Database-Applications.aspx" href="https://www.sqlmag.com/article/sql-server/A-New-Law-that-Will-Change-the-Way-You-Build-Database-Applications.aspx">https://www.sqlmag.com/article/sql-server/A-New-Law-that-Will-Change-the-Way-You-Build-Database-Applications.aspx</a>)</p>  <p>This pretty much means that soon you’ll need at least transparent data encryption and protocol encryption on every single SQL Server. Happy days for Microsoft in terms of the government practically forcing people to buy Enterprise Edition !!!</p>  <p>While I’ve been a big fan of SSL encryption on web servers to browsers, I was never fond of encrypting the pipe between the database and the app server. usually (on most systems I’ve been involved with locally here) the two boxes are like right next to each other, often with a private LAN. If someone had compromised the physical network at that point, network protocol encryption would be the least of your worries. But with increased security awareness I guess time are changing and we are going to eventually have encryption from disk to client regardless of level of threat.</p>  <p>lets hope no one passes a law saying that we have to have data encrypted in memory as well as on disk and on the wire!! An encrypted buffer pool would make querying fun…</p>]]></content:encoded>
    </item>
    <item>
      <title>SQL Immersion: Dublin 2010</title>
      <link>https://docs.microsoft.com/archive/blogs/boduff/sql-immersion-dublin-2010</link>
      <pubDate>Thu, 22 Apr 2010 12:35:36 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/boduff/2010/04/22/sql-immersion-dublin-2010/</guid>
      <description><![CDATA[The only local opportunity for advanced SQL training with sqlskills (Paul Randal and Kimberly Tripp)...]]></description>
      <content:encoded><![CDATA[<p>The only local opportunity for advanced SQL training with sqlskills (Paul Randal and Kimberly Tripp) is happening in June/July this. As far as I know this will be the only SQL Immersion in Europe this year.</p>  <p>If you are a SQL professional, attending a sqlskills course is really something you can’t miss to progress your technical skills. The SQL Immersion course is four days of exposure to the worlds best trainers and mentors on the SQL platform. </p>  <p>I was lucky enough to attend over a week of Paul and Kimberly Tripp during the <a title="https://www.microsoft.com/learning/en/us/certification/master.aspx" href="https://www.microsoft.com/learning/en/us/certification/master.aspx">Certified Master/Architect Program</a> and can testify that I learned more in these few weeks than years of self paced learning. </p>  <p>Here’s a piccie of the SQL Immersion last year – as you can see a bunch of smart looking SQL folk&#160; ;-)<a href="https://www.sqlskills.com/BLOGS/KIMBERLY/content/binary/SQLImmersionIrelandEventReport.pdf"><img alt="" src="https://www.sqlskills.com/BLOGS/KIMBERLY/image.axd?picture=2010%2f1%2fGroupShot-small.jpg" /></a></p>  <p>You can register for the SQL Immersion: Dublin 2010 event at this link here <a title="https://www.prodata.ie/Events/SQLImmersionDublin2010/" href="https://www.prodata.ie/Events/SQLImmersionDublin2010/">https://www.prodata.ie/Events/SQLImmersionDublin2010/</a></p>]]></content:encoded>
    </item>
    <item>
      <title>PowerPivot at the Office 2010 Roadshow for IT Pros</title>
      <link>https://docs.microsoft.com/archive/blogs/boduff/powerpivot-at-the-office-2010-roadshow-for-it-pros</link>
      <pubDate>Fri, 02 Apr 2010 07:29:31 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/boduff/2010/04/02/powerpivot-at-the-office-2010-roadshow-for-it-pros/</guid>
      <description><![CDATA[If you haven’t seen PowerPivot yet, there is a great opportunity at the Office + SharePoint 2010...]]></description>
      <content:encoded><![CDATA[<p>If you haven’t seen PowerPivot yet, there is a great opportunity at the Office + SharePoint 2010 Roadshow for IT Pros coming to Dublin, Galway, Cork and Belfast.</p>  <p>We have been working on making an Irish Centric Demo of PowerPivot along with the great new features in Reporting Services such as map based reports. Hopefully in just abbot 40 minutes we will build and entire BI solution, publish it to SharePoint and show off some cool new reporting features.</p>  <p>If you are working with BI or an Excel Power user / consumer, this is a not to miss event. Best of all its free!</p>  <p>Full details are in the link below</p>  <p><a title="https://blogs.technet.com/ieitpro/archive/2010/03/30/microsoft-office-sharepoint-2010-roadshow-for-it-pros.aspx" href="https://blogs.technet.com/ieitpro/archive/2010/03/30/microsoft-office-sharepoint-2010-roadshow-for-it-pros.aspx">https://blogs.technet.com/ieitpro/archive/2010/03/30/microsoft-office-sharepoint-2010-roadshow-for-it-pros.aspx</a></p>]]></content:encoded>
    </item>
    <item>
      <title>General Guidance for SQL Server on Virtualisation</title>
      <link>https://docs.microsoft.com/archive/blogs/boduff/general-guidance-for-sql-server-on-virtualisation</link>
      <pubDate>Wed, 31 Mar 2010 02:53:33 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/boduff/2010/03/31/general-guidance-for-sql-server-on-virtualisation/</guid>
      <description><![CDATA[I have been on about four engagements in a row this year where we are looking at SQL performance on...]]></description>
      <content:encoded><![CDATA[<p>I have been on about four engagements in a row this year where we are looking at SQL performance on VMWare or Hyper-V.</p>  <p>Here is a list of common things that you can do with virtualisation that may adversely affect SQL performance. Most of them also apply to physical environments, for example if you are consolidating SQL onto multiple instances.</p>  <ul>   <li><strong>Using a large Shared disk group for all virtual workloads</strong></li>    <li>Mounting the VHD to VMWare disk on a server file system (instead of pass though disks)</li>    <li>Using a large disk pool when only one controller can own the disk group (some SAN’s are limited in this way and some are not)</li>    <li>Overcommiting CPU</li>    <li>Overcommiting Memory </li>    <li>Not using 64k block size and allocation unit size</li>    <li>Not using Volume alignment (on guest and host)</li>    <li>Using dynamic disks (much better in Hyper-V R2, but still not generally recommended)</li>    <li>Not ensuring Logs are on dedicated spindles</li>    <li>Not using multiple HBA channels on larger workloads</li>    <li>Sharing a switch between data, network and CSV</li>    <li>Not using CPU affinity (some virtualisation platforms support affinity)</li>    <li>Not using an “enlightened” operating system (Hyper-V)</li>    <li>Running multiple VM’s on a single host slightly decreases throughout, but this is kinda the point of virtualisation so hard to avoid.</li>    <li>Running lots of SQL Servers on one host and having too few HBA cards or a low queue depth</li>    <li>Running 32 bit SQL Server guest on workloads that need lot of memory.</li>    <li>Not pre-sizing TempDB</li>    <li>not planning for database growth events </li> </ul>  <p>   <br /></p>  <p>The top one item (use of a shared disk group) is a very common configuration for disks, especially when using the clustered shared disk volumes. But we know they will adversely affect performance, so what to do ? ban these configurations?</p>  <p>A more practical approach may be to just accept that your latency for SQL Server will be slightly worse than it could be and to invest in making the disk infrastructure perform better, so we work out at the same performance on virtual environment as we would on the physical.</p>  <p>For example if you know that a shared disk volume is going to add 1ms+, can we add more spindles to the disk pool to take away 1ms + from the latency.</p>  <p>If we do need to use a shared disk pool, can we at least separate OLTP and reporting/data warehouse workloads into two disk pools. One might be suitable for RAID 5/6 with spikes in sequential IOPS and one might lean towards RAID 10 with mainly random IOPS and a larger reliance on writes.</p>  <p>If we are overcommiting CPU, as we have lots of SQL Servers only using 5% of CPU, can we dedicate CPU’s for the one mission critical ERP database.</p>  <p>If we are sharing Logs, can we at least dedicate a disk group to shared Logs and allocate a dedicated log disk to the 1 or two critical workloads.</p>  <p>Cindy Gross has a great blog article on troubleshooting SQL Server on VMWare and associated white papers which is well worth a read.</p>  <p><a title="https://blogs.msdn.com/cindygross/archive/2009/10/23/considerations-for-installing-sql-server-on-vmware.aspx" href="https://blogs.msdn.com/cindygross/archive/2009/10/23/considerations-for-installing-sql-server-on-vmware.aspx">https://blogs.msdn.com/cindygross/archive/2009/10/23/considerations-for-installing-sql-server-on-vmware.aspx</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Hidden Network Devices</title>
      <link>https://docs.microsoft.com/archive/blogs/boduff/hidden-network-devices</link>
      <pubDate>Fri, 19 Mar 2010 04:33:31 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/boduff/2010/03/19/hidden-network-devices/</guid>
      <description><![CDATA[One annoying thing about working with Hyper-V&#160; is you can end up with lots of “hidden” network...]]></description>
      <content:encoded><![CDATA[<p>One annoying thing about working with Hyper-V&#160; is you can end up with lots of “hidden” network devices. For example:</p>  <p>a) If you installed using a RIS server and legacy NIC   <br />b) If you moved a VHD between servers, the NIC gets a new MAC address and device    <br />c) If you use clustering and haven’t got the network setup identically&#160; on all nodes</p>  <p>d) If you use clustering and accidently use the old Hyper-V Manager instead of cluster manager</p>  <p>To remove the hidden NIC’s the steps are:   <br />1) Add system environment variable DEVMGR_SHOW_NONPRESENT_DEVICES with a value of 1</p>  <p>2) Open up device manager and select “show hidden” devices, then delete the offending NIC’s.</p>  <p>You can see how these invisible NIC’s clutter up tools like “bginfo” that show the system summary data by adding extra NIC’s with settings of “none” (see the DNS Server entries below)</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/boduff/WindowsLiveWriter/HiddenNetworkDevices_A1D8/image_2.png" original-url="https://blogs.msdn.com/blogfiles/boduff/WindowsLiveWriter/HiddenNetworkDevices_A1D8/image_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/boduff/WindowsLiveWriter/HiddenNetworkDevices_A1D8/image_thumb.png" original-url="https://blogs.msdn.com/blogfiles/boduff/WindowsLiveWriter/HiddenNetworkDevices_A1D8/image_thumb.png" width="513" height="433" /></a></p>]]></content:encoded>
    </item>
    <item>
      <title>Taking PowerPivot and Your Domain on the Demo Road</title>
      <link>https://docs.microsoft.com/archive/blogs/boduff/taking-powerpivot-and-your-domain-on-the-demo-road</link>
      <pubDate>Thu, 18 Mar 2010 16:23:06 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/boduff/2010/03/18/taking-powerpivot-and-your-domain-on-the-demo-road/</guid>
      <description><![CDATA[One of the current Technical Limitations of PowerPivot for SharePoint is the fact that the...]]></description>
      <content:encoded><![CDATA[<p>One of the current Technical Limitations of PowerPivot for SharePoint is the fact that the PowerPivot Server <strong>must</strong> be connected to a domain controller for full functionality. My holy grail has been to get PowerPivot Server working quickly in my humble laptop running Windows Hyper-V R2 – Not so easy when you need to either install it on a domain controller or also have a domain controller running on the Hyper-V host, and you only have 4gb ram.</p>  <p>I just plain feel dirty installing SharePoint or SQL on a domain controller, and those “all in one” demo builds generally perform like dogs.</p>  <p>Just to be greedy, I also want the demo environment to be able to fully authenticate with my nice workstation in the office as I hate working off laptops and want to seamlessly swap between using desktop with the Hyper-V image running on our SAN and running by itself on my laptop.</p>  <p>can this be done ? well to the rescue, two new features of Windows 2008 server: server core and Read Only Domain Controllers.</p>  <p><strong>Step 1 – Windows 2008 R2 Server Core</strong></p>  <p>The first thing I tried is Windows 2008 R2 Server “core”. One of the key changes in 2008 R2 is the introduction of the “sconfig” command line that enables you to do 90% of the setup required such as:</p>  <p>- computer name   <br />- networking    <br />- Enabling remote admin and Power shell, so you can go back to gui mode.    <br /></p>  <p>There are lots of guides on how to automate the “dcpromo” command to make the server a domain controller. <a title="https://windowsmvp.spaces.live.com/Blog/cns!80195647FE07388F!629.entry?sa=760842989" href="https://windowsmvp.spaces.live.com/Blog/cns!80195647FE07388F!629.entry?sa=760842989">https://windowsmvp.spaces.live.com/Blog/cns!80195647FE07388F!629.entry?sa=760842989</a>&#160;</p>  <p>Now this gets me a virtual server which only needs just over 512mb of RAM and takes up about 3gb of disk. BUT it has all the domain accounts on it for the entire domain or if I use a child domain for the lab servers the entire child domain – not so good in terms of size and also in terms of security.</p>  <p>If you are not clustering the domain controller you only need standard edition, which uses a bit less disk space. </p>  <p>One gotcha I found is for 2008 R2, it would not work for me unless the domain was in “2008R2” functional mode. This was a bummer as our main domain controllers are not R2 and I couldn't mess with them, but luckily I could raise the domain functional level in the lab child domain to “2008R2” and leave the parent domain as “2008”.</p>  <p><strong>Step 2 – Read Only Domain Controller</strong></p>  <p>Windows 2008+ introduces a new role of “Read Only Domain Controller”. This allows me to only replicate the 2-3 service accounts needed to the offline domain controller and also does not store the passwords locally, so great for security. its also a lot lighter on resources than a full domain controller.</p>  <p>Now I have a fully working Domain Controller letting me take virtual images from the lab to offline on my laptop while still keeping domain authentication and only needing about 400mb of ram and 3gb of disk space ;-)))</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/boduff/image_29D1253E.png" original-url="https://blogs.msdn.com/blogfiles/boduff/image_29D1253E.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/boduff/image_thumb_13F71714.png" original-url="https://blogs.msdn.com/blogfiles/boduff/image_thumb_13F71714.png" width="608" height="464" /></a> </p>  <p>Haven’t got the setup fully working yet with Powerpivot, but it is showing much promise…</p>]]></content:encoded>
    </item>
    <item>
      <title>The Last SQL Academy in this series goes out in style</title>
      <link>https://docs.microsoft.com/archive/blogs/boduff/the-last-sql-academy-in-this-series-goes-out-in-style</link>
      <pubDate>Thu, 18 Mar 2010 03:15:23 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/boduff/2010/03/18/the-last-sql-academy-in-this-series-goes-out-in-style/</guid>
      <description><![CDATA[The last topic in the series is entitled “SQL 2008 R2 – Next Generation Business Intelligence”. We...]]></description>
      <content:encoded><![CDATA[<p>The last topic in the series is entitled “SQL 2008 R2 – Next Generation Business Intelligence”. We hope to cover three main improvements in the SQL 2008 R2 release:</p>  <p>a) PowerPivot for Excel    <br />b) PowerPivot for SharePoint     <br />c) Reporting Enhancements</p>  <p>As usual we hope for it to have a lot of demos and the more questions and the better ;-)))</p>  <p>I was just over Seattle last month and grabbed a session with Dave Wickert who is one of the leading authorities on all things PowerPivot and Analysis Services. He really helped go a bit deeper behind the scenes, especially on how authentication works (what no Kerberos!!) works, what drives the need for SharePoint Enterprise Edition and Active Directory from a Technical Perspective. He runs the popular site <a href="https://www.powerpivotgeek.com">www.powerpivotgeek.com</a> if you want to read more.</p>  <p>This topic is fiercely popular, sp hopefully a full house…</p>]]></content:encoded>
    </item>
    <item>
      <title>How good is Data Compression in SQL 2008</title>
      <link>https://docs.microsoft.com/archive/blogs/boduff/how-good-is-data-compression-in-sql-2008</link>
      <pubDate>Tue, 23 Feb 2010 15:32:13 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/boduff/2010/02/23/how-good-is-data-compression-in-sql-2008/</guid>
      <description><![CDATA[Data compression in SQL 2008 is best for data warehouses, where they tend to be very IO constrained...]]></description>
      <content:encoded><![CDATA[<p>Data compression in SQL 2008 is best for data warehouses, where they tend to be very IO constrained and can take a wee hit on CPU and latency.</p>  <p><font color="#004080"><strong>So how much space will you save with data compression?</strong></font> Well I just took a sample table from our SCOM data warehouse and applied compression. Results are below. The total size went from 1.7 Gb to about 740 MB. Not bad&#160; for one table and its supporting NC indexes.</p>  <table border="1" cellspacing="0" cellpadding="0" width="371"><tbody>     <tr>       <td width="98">         <p><b><font size="2">Type</font></b></p>       </td>        <td width="77">         <p><b><font size="2">Rows</font></b></p>       </td>        <td width="69">         <p><b><font size="2">Total (Kb)</font></b></p>       </td>        <td width="56">         <p><b><font size="2">Data Space</font></b></p>       </td>        <td width="69">         <p><b><font size="2">Index Space</font></b></p>       </td>     </tr>      <tr>       <td width="98">         <p><font size="2">Uncompressed</font></p>       </td>        <td width="77">         <p><font size="2">10,006,556</font></p>       </td>        <td width="69">         <p><font size="2">1,714,632</font></p>       </td>        <td width="56">         <p><font size="2">700,352</font></p>       </td>        <td width="69">         <p><font size="2">1,010,544</font></p>       </td>     </tr>      <tr>       <td width="98">         <p><font size="2">PAGE compression</font></p>       </td>        <td width="77">         <p><font size="2">10,006,556</font></p>       </td>        <td width="69">         <p><font size="2">739,744</font></p>       </td>        <td width="56">         <p><font size="2">289,360</font></p>       </td>        <td width="69">         <p><font size="2">450,112</font></p>       </td>     </tr>      <tr>       <td width="98">         <p><font size="2">ROW compression</font></p>       </td>        <td width="77">         <p><font size="2">10,006,556</font></p>       </td>        <td width="69">         <p><font size="2">1,027,672</font></p>       </td>        <td width="56">         <p><font size="2">387,832</font></p>       </td>        <td width="69">         <p><font size="2">639,576</font></p>       </td>     </tr>   </tbody></table>  <p>In total the data warehouse went from 17GB to 10 GB when all the tables and indexes were compressed with page compression.</p>  <p><font color="#004080"><strong>How long does it take to compress?</strong></font> Well on a two core laptop and a modest disk drive the 17GB database took 30 minutes.</p>  <p><font color="#004080"><strong>Which Compression is better page or row ? </strong></font>It depends – while page compression seems to always give better compression, if your query only wants one row in a page the whole page needs to be uncompressed, so you’ll take a cpu and latency hit. If you are doing a large table scan then page compression should work great.</p>  <p><font color="#004080"><strong>How can you compress and entire database at once ?</strong></font> AFAIK you have to compress each table and index separately. Here is a quick script to generate code to compress an entire database in one go. Just don’t try this on your 3TB data warehouse in one go…</p>  <pre class="csharpcode"><span class="kwrd">select</span> <span class="str">'ALTER '</span> + <span class="kwrd">case</span> <span class="kwrd">when</span> si.type =1 <span class="kwrd">then</span> <span class="str">'INDEX ['</span> + si.name + <span class="str">'] ON '</span> <span class="kwrd">else</span> <span class="str">'TABLE '</span> <span class="kwrd">END</span> +  <span class="str">' ['</span> + s.name + <span class="str">'].['</span> + o.name + <span class="str">'] REBUILD PARTITION=ALL WITH (DATA_COMPRESSION=PAGE); '</span> 
<span class="kwrd">from</span> sys.indexes  si
<span class="kwrd">inner</span> <span class="kwrd">join</span> sys.objects o <span class="kwrd">on</span> o.object_id =si.object_id
<span class="kwrd">inner</span> <span class="kwrd">join</span> sys.schemas s <span class="kwrd">on</span> s.schema_id=o.schema_id 
<span class="kwrd">where</span> si.type&gt;0 <span class="kwrd">and</span> o.type=<span class="str">'U'</span>
<span class="kwrd">order</span> <span class="kwrd">by</span> s.name, o.name, si.index_id</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>]]></content:encoded>
    </item>
  </channel>
</rss>