 




<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SQL Server with Mr. Denny &#187; Indexing</title>
	<atom:link href="http://itknowledgeexchange.techtarget.com/sql-server/tag/indexing/feed/" rel="self" type="application/rss+xml" />
	<link>http://itknowledgeexchange.techtarget.com/sql-server</link>
	<description></description>
	<lastBuildDate>Fri, 17 May 2013 17:04:01 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>NOLOCK is not a turbo button</title>
		<link>http://itknowledgeexchange.techtarget.com/sql-server/nolock-is-not-a-turbo-button/</link>
		<comments>http://itknowledgeexchange.techtarget.com/sql-server/nolock-is-not-a-turbo-button/#comments</comments>
		<pubDate>Wed, 23 Jan 2013 09:00:26 +0000</pubDate>
		<dc:creator>Denny Cherry</dc:creator>
				<category><![CDATA[CREATE INDEX]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Execution Plans]]></category>
		<category><![CDATA[Indexing]]></category>
		<category><![CDATA[SELECT statement]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[T/SQL]]></category>
		<category><![CDATA[Tables]]></category>

		<guid isPermaLink="false">http://itknowledgeexchange.techtarget.com/sql-server/?p=1574</guid>
		<description><![CDATA[All to often when talking to developers they put the WITH (NOLOCK) table hint in place to speed up queries without understanding what the table hint does.  I&#8217;ve even run across companies that have policies in place that every select statement must have the WITH (NOLOCK) table hint. The WITH (NOLOCK) table hint isn&#8217;t a [...]]]></description>
				<content:encoded><![CDATA[<p>All to often when talking to developers they put the WITH (NOLOCK) table hint in place to speed up queries without understanding what the table hint does.  I&#8217;ve even run across companies that have policies in place that every select statement must have the WITH (NOLOCK) table hint.</p>
<p>The WITH (NOLOCK) table hint isn&#8217;t a go faster button for SQL Server.  It has actual implications to the data which is being returned by the query.  The biggest of these implications is that the data might not be correct.  You see the WITH (NOLOCK) table hint uses dirty reads to return the data, so it basically ignores the locks which other queries have taken.  This is why the query appears to run faster, because the query isn&#8217;t being blocked any more.  The proper approach would be to find the query which is causing the extended blocking and figure out why it is taking so long to run, and fix the performance problems of that query.</p>
<p>The only go faster button that is available in SQL Server is the CREATE INDEX statement.  Anything else isn&#8217;t truly a go faster button, and has other side effects which must be understood before being implemented.</p>
<p>Denny</p>
<!-- wpms-network-global-inserts -->]]></content:encoded>
			<wfw:commentRss>http://itknowledgeexchange.techtarget.com/sql-server/nolock-is-not-a-turbo-button/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fixing a table that has overflowed its primary key</title>
		<link>http://itknowledgeexchange.techtarget.com/sql-server/fixing-a-table-that-has-overflowed-its-primary-key/</link>
		<comments>http://itknowledgeexchange.techtarget.com/sql-server/fixing-a-table-that-has-overflowed-its-primary-key/#comments</comments>
		<pubDate>Wed, 21 Nov 2012 09:00:38 +0000</pubDate>
		<dc:creator>Denny Cherry</dc:creator>
				<category><![CDATA[Clustered Index]]></category>
		<category><![CDATA[Data Types]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Design]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Stored Procedures]]></category>
		<category><![CDATA[T/SQL]]></category>
		<category><![CDATA[Tables]]></category>

		<guid isPermaLink="false">http://itknowledgeexchange.techtarget.com/sql-server/?p=2179</guid>
		<description><![CDATA[During TechEd Europe I got a very scary phone call.  A very large table was throwing errors that the value being inserted into the primary key column was overflowing the data type that makes up that column.  In this case the data type in question was INT, so we were trying to stick the number [...]]]></description>
				<content:encoded><![CDATA[<p>During TechEd Europe I got a very scary phone call.  A very large table was throwing errors that the value being inserted into the primary key column was overflowing the data type that makes up that column.  In this case the data type in question was INT, so we were trying to stick the number 2,147,483,648 into the column and that number just doesn’t fit.  The error that we got looked something like this:</p>
<blockquote><p>System.Data.SqlClient.SqlException: Error 8115, Level 16, State 1, Procedure <em>SomeStoredProcedure</em>, Line 103, Message: Arithmetic overflow error converting IDENTITY to data type int.  Uncommittable transaction is detected at the end of the batch. The transaction is rolled back.</p></blockquote>
<p>Ourshort term solution was quick and easy, to change identity seed of the column from 0 to the lowest possible number, in this case -2,147,483,648 which got us back up and running pretty quickly.  This however isn’t a very long term solution for this system.  The application is only about 3 or 4 years old, and has been growing very quickly over the last year or so.  We estimated based on the last few weeks worth of data that we would run out of negative numbers within about 12 months at the most.  We sent an estimate of 9 months to the business when we advised them that the system was back up and running.  We also told them that we wanted this fixed within 5-6 months to be save because if we didn’t get this fixed before running out of negative numbers there wouldn’t be any short term fix and that we’d be looking at a multi-day outage to fix the problem.</p>
<p>We couldn’t just rush into a database side fix, as the fix in this case is to change the data type from INT to BIGINT.  As the application does use this column in a couple of places the .NET application needed to be reviewed to ensure that anything that was looking for an INT was corrected to handle the BIGINT correctly.</p>
<p>Based on the amount of data within the table (about 300 Gigs) it was decided that taking an outage to make the change in place wasn’t really an option as doing the size change in place would require somewhere around a 5 day outage to remove and rebuild all the non-clustered indexes.  To make things a little more complex there is a second table which has a 1=1 relationship with this table, and the second table is even larger (about 800 Gigs), though thankfully the second table doesn’t have any non-clustered indexes.</p>
<p>The solution that was decided on was to move the data from the current table to a table with a BIGINT data type while the application was running.  To do this meant that we needed to get all the data copied over to the new table and in sync while the old table was being used.  It was decided that the easiest way to do this would be to use triggers.  In this case instead of one complex trigger to handle all insert, update and delete operations three separate triggers were used for each of the two tables.  First I created two new tables, with the exact same schema as the old tables, with the exception that the new tables used the bigint data type for the primary key instead of the int data type for the primary key and the new table was setup with the ident being the next available positive number.  Once that was done the triggers were setup.  The insert trigger is pretty basic.  Take the data that was just loaded and stick it into the new table.</p>
<blockquote><p>CREATE TRIGGER t_MyTable1_insert ON dbo.MyTable1<br />
FOR INSERT<br />
AS<br />
SET IDENTITY_INSERT MyTable1_bigint ON<br />
INSERT INTO MyTable1_bigint<br />
(Col1, Col2, Col3, Col4…)<br />
SELECT Col1, Col2, Col3, Col4<br />
FROM inserted<br />
SET IDENTITY_INSERT MyTable1_bigint OFF<br />
GO</p></blockquote>
<p><span style="color: #000000;">The update and delete triggers required a little more logic.  The trick with the triggers was that I needed to avoid doing massive implicit data conversions.  In order to ensure that SQL was doing what I wanted (which it should be doing anyway, but it made me feel better doing explicit conversions) I explicit conversions into place for the JOIN predicates as shown.  The update trigger is shown first, then the delete trigger.</span></p>
<blockquote><p>CREATE TRIGGER t_MyTable1_update ON dbo.MyTable1<br />
FOR UPDATE<br />
AS<br />
UPDATE MyTable1_bigint<br />
SET MyTable1_bigint.[Col2] = inserted.[Col2],<br />
MyTable1_bigint.[Col3] = inserted.[Col3],<br />
MyTable1_bigint.[Col4] = inserted.[Col4],<br />
…<br />
FROM inserted<br />
WHERE cast(inserted.Col1 as bigint) = MyTable1_bigint.Col1<br />
GO</p></blockquote>
<blockquote><p>CREATE TRIGGER t_MyTable1_delete ON dbo.MyTable1<br />
FOR DELETE<br />
AS<br />
DELETE FROM MyTable1_bigint<br />
WHERE Col1 in (SELECT cast(Col1 as bigint) FROM deleted)<br />
GO</p></blockquote>
<p><span style="color: #000000;">Once these tables were up and running all the new data changes were being loaded into the table.  At this point it was just a matter of coping the existing data into the table.  There are a few ways that this can be done.  In this case I opted for an SSIS package with a single data pump task, and two data transformations within the data pump task with one transformation for each table.</span></p>
<p><span style="color: #000000;">In order to make the load as fast as possible I used the fast load option and loaded 1000 rows at a time.  Within the data task if there was an error I redirected the rows to another data pump task which simply dropped the rows into the same table, but this time going row by row.  Any failures from that import were simply ignored.  While handling failed rows like this is time consuming it is easier than running T-SQL scripts to verify which rows are needed and which rows aren’t needed.  SSIS also gives an easy option to ignore the foreign key relationship between the two tables so if the child table gets rows first that isn’t a problem as we know that the parent table will catch up.  The SSIS package looked like this:</span></p>
<p><span style="color: #000000;"><a href="http://itknowledgeexchange.techtarget.com/sql-server/fixing-a-table-that-has-overflowed-its-primary-key/ssis/" rel="attachment wp-att-2186"><img class="alignnone size-full wp-image-2186" src="http://cdn.ttgtmedia.com/ITKE/uploads/blogs.dir/20/files/2012/08/ssis.jpg" alt="" width="480" height="365" /></a></span></p>
<p><span style="color: #000000;">When all is said and done and the data is in sync between the new and old tables, the current tables will be dropped and the new tables will be renamed and put into place so that the application can continue to run without issue, with just a few minutes of downtime.</span></p>
<p><span style="color: #000000;">So why did this happen?  When the applications database was being designed the developers didn’t think about how many rows the database was going to get over time, so they didn’t account for needing to support more than 2.1 billion rows over time.  If I (or another data architect) had been involved in the project at it’s start this hopefully would have been caught at design time.  However when the application was first being designed the company was brand new and didn’t have the funds for a data architect to help with the application design so this problem was missed.</span></p>
<p><span style="color: #000000;">Hopefully you never hit this problem, but if you do this helps you get out of it.</span></p>
<p><span style="color: #000000;">Denny</span></p>
<!-- wpms-network-global-inserts -->]]></content:encoded>
			<wfw:commentRss>http://itknowledgeexchange.techtarget.com/sql-server/fixing-a-table-that-has-overflowed-its-primary-key/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>VMware vCenter Performance Tuning</title>
		<link>http://itknowledgeexchange.techtarget.com/sql-server/vmware-vcenter-performance-tuning/</link>
		<comments>http://itknowledgeexchange.techtarget.com/sql-server/vmware-vcenter-performance-tuning/#comments</comments>
		<pubDate>Mon, 04 Jun 2012 14:00:34 +0000</pubDate>
		<dc:creator>Denny Cherry</dc:creator>
				<category><![CDATA[Index Performance]]></category>
		<category><![CDATA[Nonclustered Index]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[vCenter]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://itknowledgeexchange.techtarget.com/sql-server/vmware-vcenter-performance-tuning/</guid>
		<description><![CDATA[As hopefully everyone that is using VMware&#8217;s vSphere in either data center knows VMware&#8217;s vCenter runs off of a Microsoft SQL Server database (by default).  Now as good as they guys at VMware are at building a virtualization platform there database leave a little to be desired.  I&#8217;ve identified a couple of indexes which when [...]]]></description>
				<content:encoded><![CDATA[<p>As hopefully everyone that is using VMware&#8217;s vSphere in either data center knows VMware&#8217;s vCenter runs off of a Microsoft SQL Server database (by default).  Now as good as they guys at VMware are at building a virtualization platform there database leave a little to be desired.  I&#8217;ve identified a couple of indexes which when created against the VMware vSphere 5.0 database will improve the health of the SQL Server database.</p>
<p>The first index is on the dbo.VPX_PROPERTY_BULLETIN database.  On the system that I happen to be looking at this week not having this index caused the SQL Server to scan this table 6977 times since the database was last restarted about 7 days before I began looking at the system.  This table on this SQL Server only contains about 3000 records, but this system is pretty small.  Just 4 hosts, 4 data stores and about 100 guests at the moment.  The larger this table is the more impact not having this query will have.</p>
<p>CREATE INDEX mrdenny_OPERATION_TYPE ON dbo.VPX_PROPERTY_BULLETIN<br />
([OPERATION_TYPE])<br />
INCLUDE ([OBJECT_MOID], [GEN_NUMBER])<br />
WITH (FILLFACTOR=70, ONLINE=OFF, PAD_INDEX=ON)</p>
<p>The nice thing about this index is that is also fills the requirements of another index which is needed by the SQL Server.</p>
<p>The second index to create is built on the same table, but on different columns.  While the query which needs this index is run MUCH less often, SQL estimates (on this system at least) that adding it will improve the query performance by 69.94%.  In my mind that&#8217;s very much worth it, even if the query is only being run a few times a week.</p>
<p>CREATE INDEX mrdenny_OBJECT_MOID ON dbo.VPX_PROPERTY_BULLETIN<br />
([OBJECT_MOID])<br />
INCLUDE ([GEN_NUMBER])<br />
WITH (FILLFACTOR=50, ONLINE=OFF, PAD_INDEX=ON)</p>
<p>The third index that I&#8217;ve identified which needs to be created is against the VPX_LIC_USAGE table.  This table has something to do with the licensing and the size of the table on your system will vary.  This vCenter system has over 16k rows in the table but this system has only been installed for a couple of months at this point.  As your vSphere installation ages it appears that this table will continue to grow and grow.  Best I can tell there&#8217;s a couple of rows entered into this table every hour for each host in the farm.  Needless to say this table will grow quite large when you&#8217;ve got a large VMware vSphere farm.</p>
<p>CREATE INDEX mrdenny_SAMPLE_TIMESTAMP ON dbo.VPX_LIC_USAGE<br />
([SAMPLE_TIMESTAMP])<br />
INCLUDE ([SAMPLE_TS])<br />
WITH (FILLFACTOR=100, ONLINE=OFF)</p>
<p>As you look at these three indexes which I recommend that you create on your vSphere database you&#8217;ll notice that there is an ONLINE=OFF flag.  If your vCenter database is running the Enterprise Edition of SQL Server then you can change that on ONLINE=ON which will allow the indexes to be created online instead of causing blocking while the indexes are being created.  If you don&#8217;t have the Enterprise edition of SQL Server then you can&#8217;t create in the indexes online.  There should be no impact to the vCenter system if you create the indexes while the system is up and running.  The worse that will happen is that queries which are already running slowly will run a little slower than normal.</p>
<p>You&#8217;ll notice that I&#8217;ve listed this indexes to all start with mrdenny.  This is so that these indexes can be easily identified as coming from my blog (in case the next admin wonders where they are from) and so that you never have to worry about the index names colliding with names that VMware would try and use.</p>
<p>Denny</p>
<!-- wpms-network-global-inserts -->]]></content:encoded>
			<wfw:commentRss>http://itknowledgeexchange.techtarget.com/sql-server/vmware-vcenter-performance-tuning/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fixing Performance in Vendor Apps</title>
		<link>http://itknowledgeexchange.techtarget.com/sql-server/fixing-performance-in-vendor-apps/</link>
		<comments>http://itknowledgeexchange.techtarget.com/sql-server/fixing-performance-in-vendor-apps/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 14:00:11 +0000</pubDate>
		<dc:creator>Denny Cherry</dc:creator>
				<category><![CDATA[Indexing]]></category>
		<category><![CDATA[Social Commentary]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://itknowledgeexchange.techtarget.com/sql-server/fixing-performance-in-vendor-apps/</guid>
		<description><![CDATA[Lots of people out there manage 3rd party vendor apps.  However as anyone who has managed a vendor app can tell you, you don&#8217;t really manage the app.  You simply backup the vendor database (assuming that they allow you to backup the database) and call the vendor when there are performance problems.  Doing anything other [...]]]></description>
				<content:encoded><![CDATA[<p>Lots of people out there manage 3rd party vendor apps.  However as anyone who has managed a vendor app can tell you, you don&#8217;t really manage the app.  You simply backup the vendor database (assuming that they allow you to backup the database) and call the vendor when there are performance problems.  Doing anything other than this will basically invalidate your support agreement with the vendor and prevent you from upgrading in the future.</p>
<p>Now in reality many of these 3rd party vendors don&#8217;t have anyone no staff who knows much about SQL Server, or databases in general.  You sure don&#8217;t get the ability to talk to anyone that these 3rd party vendors have on staff that actually do know anything about databases.  So when you start seeing performance problems you basically have a few different options.</p>
<p>1. Call their support line and talk to someone who thinks there is an &#8220;E&#8221; in SQL (they spell it sequel).</p>
<p>2. Leave the system with performance problems.</p>
<p>3. Fix the performance problem and hope that the vendor doesn&#8217;t notice the indexes that you created.</p>
<p>Obviously option #2 probably isn&#8217;t the one that the business unit that uses the application is going to accept.  #1 is what they want you to do, but that&#8217;s probably going to be less than useful possibly taking days or weeks in order to get the issue resolved.</p>
<p>In reality #3 is the option that you want to go with, but there is that little problem of the support agreement to deal with.  Obviously I would never recommend invalidating your support agreement &#8230; but when you need to get your production application back up and running, you need to get the system back up and running.  Now you can&#8217;t do crazy things like change the database schema but usually that isn&#8217;t needed to get everything back up and running.</p>
<p>Usually it&#8217;s something as simple as updating statistics or creating a new index.  Now you need to hide this index from the vendor so that they don&#8217;t complain that you&#8217;ve &#8220;broken&#8221; the system by fixing it.  That&#8217;s why I recommend creating the indexes so that they are easy to identify later.  When I create indexes in a vendor system I prefix them with something that the vendor will never use, like my name.  This way I can quickly query for all the indexes and drop them the next time I need to let the vendor into the database (don&#8217;t forget to script them out first so you can but them back afterwards).</p>
<p>While the vendor will probably complain that you&#8217;ve added these indexes they can&#8217;t actually say that you&#8217;ve done anything damaging if you&#8217;ve removed them as well.  Not to mention they probably won&#8217;t actually be able to find out if you&#8217;ve created and dropped indexes if you&#8217;ve removed them already.</p>
<p>While this probably isn&#8217;t the best way to have to deal with 3rd party vendor applications it is the reality of dealing with 3rd party vendors.</p>
<p>Denny</p>
<p style="text-align: center"><a href="http://sqlexcursions.com/napa-2011-sign-up"><img class="aligncenter size-full wp-image-1838" src="http://cdn.ttgtmedia.com/ITKE/uploads/blogs.dir/20/files/2011/11/2012-napa-banner-plus-sql-denali1.jpg" alt="" width="500" height="61" /></a></p>
<!-- wpms-network-global-inserts -->]]></content:encoded>
			<wfw:commentRss>http://itknowledgeexchange.techtarget.com/sql-server/fixing-performance-in-vendor-apps/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Slide Deck From Buena Park .NET User Group</title>
		<link>http://itknowledgeexchange.techtarget.com/sql-server/slide-deck-from-buena-park-net-user-group/</link>
		<comments>http://itknowledgeexchange.techtarget.com/sql-server/slide-deck-from-buena-park-net-user-group/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 14:00:39 +0000</pubDate>
		<dc:creator>Denny Cherry</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Indexing]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://itknowledgeexchange.techtarget.com/sql-server/slide-deck-from-buena-park-net-user-group/</guid>
		<description><![CDATA[Last week on Wednesday night I had the privilege of presenting a session to the Buena Park .NET User Group.  The session that I gave was &#8220;Indexing for the .NET Developer&#8221;.  The abstract for the session is: &#8220;In this session we will be looking at the best and worse practices for indexing tables within your [...]]]></description>
				<content:encoded><![CDATA[<p>Last week on Wednesday night I had the privilege of presenting a session to the <a href="http://www.socaldotnet.org/">Buena Park .NET User Group</a>.  The session that I gave was &#8220;Indexing for the .NET Developer&#8221;.  The abstract for the session is:</p>
<p>&#8220;In this session we will be looking at the best and worse practices for indexing tables within your SQL Server 2008 databases.  We will also be looking into the new indexing features that are available in SQL Server 2008 (and SQL Server 2005) and how you the .NET developer can make the best use of them to get your code running its best.&#8221;</p>
<p>If you would like to download the slide deck that I presented from you can <a href="http://mrdenny.com/wp-content/uploads/2011/11/Table-indexing-for-the-.NET-Developer.pptx">download it here</a>.</p>
<p>I hope that you enjoyed the presentation.  I look forward to seeing you at my next presentation.</p>
<p>Denny</p>
<!-- wpms-network-global-inserts -->]]></content:encoded>
			<wfw:commentRss>http://itknowledgeexchange.techtarget.com/sql-server/slide-deck-from-buena-park-net-user-group/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Slide Decks for #sqlsat95</title>
		<link>http://itknowledgeexchange.techtarget.com/sql-server/slide-decks-for-sharp-sqlsat95/</link>
		<comments>http://itknowledgeexchange.techtarget.com/sql-server/slide-decks-for-sharp-sqlsat95/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 19:13:52 +0000</pubDate>
		<dc:creator>Denny Cherry</dc:creator>
				<category><![CDATA[Clustering]]></category>
		<category><![CDATA[Indexing]]></category>
		<category><![CDATA[SQL Saturday]]></category>
		<category><![CDATA[SQL Saturday 95]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://itknowledgeexchange.techtarget.com/sql-server/slide-decks-for-sharp-sqlsat95/</guid>
		<description><![CDATA[This last weekend was SQL Saturday 95, and it was a great event.  I was speaking during 5 sessions.  Three were my own sessions, and two were panels (one panel I did solo as my co-presenter got sick and couldn&#8217;t make it).  For my three sessions you&#8217;ll find my slide decks below. Table Indexing for [...]]]></description>
				<content:encoded><![CDATA[<p>This last weekend was SQL Saturday 95, and it was a great event.  I was speaking during 5 sessions.  Three were my own sessions, and two were panels (one panel I did solo as my co-presenter got sick and couldn&#8217;t make it).  For my three sessions you&#8217;ll find my slide decks below.</p>
<p><a href="http://mrdenny.com/wp-content/uploads/2011/09/Table-indexing-for-the-.NET-Developer.pptx">Table Indexing for the .NET Developer</a></p>
<p><a href="http://mrdenny.com/wp-content/uploads/2011/09/Indexing-Internals.pptx">Indexing Internals</a></p>
<p><a href="http://mrdenny.com/wp-content/uploads/2011/09/SQL-Server-Clustering-101.pptx">SQL Server Clustering 101</a></p>
<p>I hope that everyone had as good a time at SQL Saturday as I did.</p>
<p>Denny</p>
<p>P.S. Something to note, don&#8217;t leave early after your raffle ticket is drawn.   We had so many great prizes that we ran out of raffle tickets and had  to start drawing evals from the box for prize winners, so you might have  won something else if you stuck around till the end.</p>
<!-- wpms-network-global-inserts -->]]></content:encoded>
			<wfw:commentRss>http://itknowledgeexchange.techtarget.com/sql-server/slide-decks-for-sharp-sqlsat95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lookout Dallas, here I come&#8230;</title>
		<link>http://itknowledgeexchange.techtarget.com/sql-server/lookout-dallas-here-i-come/</link>
		<comments>http://itknowledgeexchange.techtarget.com/sql-server/lookout-dallas-here-i-come/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 16:21:18 +0000</pubDate>
		<dc:creator>Denny Cherry</dc:creator>
				<category><![CDATA[Indexing]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://itknowledgeexchange.techtarget.com/sql-server/lookout-dallas-here-i-come/</guid>
		<description><![CDATA[I&#8217;m pleased to say that I&#8217;m one of the great speakers who will be presenting at the Dallas Tech Fest on August 12th and 13th at the University of Texas at Dallas.  Sadly I won&#8217;t be able to join everyone on the 12th, I&#8217;ve got commitments in Redmond until 5:30pm Pacific Time on Friday, but [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m pleased to say that I&#8217;m one of the great speakers who will be presenting at the <a href="http://dallastechfest.com/">Dallas Tech Fest</a> on August 12th and 13th at the <a href="http://maps.google.com/maps/place?ftid=0x864c21ff930851a7:0x41d7c23648645233&amp;q=University+of+Texas+at+Dallas+800+Drive+A+Richardson,+TX+75080&amp;hl=en&amp;cad=src:ppiwlink&amp;ei=LHM4TsCwHZS2zgSWn-GbBQ&amp;dtab=0">University of Texas at Dallas</a>.  Sadly I won&#8217;t be able to join everyone on the 12th, I&#8217;ve got commitments in Redmond until 5:30pm Pacific Time on Friday, but I&#8217;m taking a flight on Friday night so that I can see everyone on Saturday and present my two sessions.</p>
<p>Currently I&#8217;m presenting &#8220;Indexing Internals&#8221; at 12:45pm on Saturday and then at 2:15pm on Saturday I&#8217;ll be presenting &#8220;Optimizing SQL Server Performance in a Virtual Environment&#8221;.  The schedule is subject to change, but hopefully won&#8217;t as I really like those time slots.  Tickets for the two day conference are just $100 and are on sale through August 10th.  Just go to the <a href="http://dallastechfest.com/">Dallas Tech Fest home page </a>and you&#8217;ll see the Event Bright order form right there in the middle of the page.  It should be an awesome event, I can&#8217;t wait to speak there for the first time.</p>
<p>Anyway, I can&#8217;t wait to see everyone; I&#8217;ll be there until Sunday afternoon when I have to head back to DFW so I can head home.</p>
<p>See you there,<br />
Denny</p>
<!-- wpms-network-global-inserts -->]]></content:encoded>
			<wfw:commentRss>http://itknowledgeexchange.techtarget.com/sql-server/lookout-dallas-here-i-come/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Slide decks from Dallas Tech Fest Sessions</title>
		<link>http://itknowledgeexchange.techtarget.com/sql-server/slide-decks-from-dallas-tech-fest-sessions/</link>
		<comments>http://itknowledgeexchange.techtarget.com/sql-server/slide-decks-from-dallas-tech-fest-sessions/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 14:00:35 +0000</pubDate>
		<dc:creator>Denny Cherry</dc:creator>
				<category><![CDATA[In Person Events]]></category>
		<category><![CDATA[Indexing]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://itknowledgeexchange.techtarget.com/sql-server/slide-decks-from-dallas-tech-fest-sessions/</guid>
		<description><![CDATA[This last Saturday I spoke at Dallas Tech Fest, where I had two great groups in my two sessions.  As promised here are the slide decks for the two sessions which I presented. Index Internals Optimizing SQL Server Performance in a Virtual Environment I hope everyone had as good a time at the conference that [...]]]></description>
				<content:encoded><![CDATA[<p>This last Saturday I spoke at Dallas Tech Fest, where I had two great groups in my two sessions.  As promised here are the slide decks for the two sessions which I presented.</p>
<p><a href="http://www.mrdenny.com/downloads/2011.08.13_DallasTechFest/Indexing Internals.zip">Index Internals</a></p>
<p><a href="http://www.mrdenny.com/downloads/2011.08.13_DallasTechFest/Optimizing SQL Server Performance in a Virtual Environment.zip">Optimizing SQL Server Performance in a Virtual Environment</a></p>
<p>I hope everyone had as good a time at the conference that I had.</p>
<p>Denny</p>
<!-- wpms-network-global-inserts -->]]></content:encoded>
			<wfw:commentRss>http://itknowledgeexchange.techtarget.com/sql-server/slide-decks-from-dallas-tech-fest-sessions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Excursions and Index Internals #sqlexcursions</title>
		<link>http://itknowledgeexchange.techtarget.com/sql-server/sql-excursions-and-index-internals/</link>
		<comments>http://itknowledgeexchange.techtarget.com/sql-server/sql-excursions-and-index-internals/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 14:00:17 +0000</pubDate>
		<dc:creator>Denny Cherry</dc:creator>
				<category><![CDATA[Indexing]]></category>
		<category><![CDATA[SQL Excursions]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://itknowledgeexchange.techtarget.com/sql-server/sql-excursions-and-index-internals/</guid>
		<description><![CDATA[The fourth session that I&#8217;ll be giving at SQL Excursions will be on index internals. In this session we&#8217;ll dig into the internal structures of indexes.  We will explore the differences between clustered and non-clustered indexes, what&#8217;s laid out within each page of the indexes and how the SQL Server uses the data within the [...]]]></description>
				<content:encoded><![CDATA[<p>The <a href="http://sqlexcursions.com/napa-sql-excursion-session-topics">fourth session</a> that I&#8217;ll be giving at <a href="http://sqlexcursions.com/">SQL Excursions</a> will be on index internals.</p>
<p>In this session we&#8217;ll dig into the internal structures of indexes.  We will explore the differences between clustered and non-clustered indexes, what&#8217;s laid out within each page of the indexes and how the SQL Server uses the data within the indexes to find rows quickly.</p>
<p>Knowing how indexes actually work is key to understanding why indexes improve query performance.  Knowing that indexes will help performance is good (and hopefully you know this), but knowing how the index actually works is even more important so that you can make proper indexes so that you aren&#8217;t making extra indexes that aren&#8217;t needed as having to many indexes will actually slow down SQL Server not make it faster.</p>
<p>If you haven’t <a href="http://sqlexcursions.com/napa-2011-sign-up">signed up yet</a>, now is the time.</p>
<p><a href="http://sqlexcursions.com/napa-2011-sign-up">See you in Napa</a> September 22nd-24th,</p>
<p>Denny</p>
<!-- wpms-network-global-inserts -->]]></content:encoded>
			<wfw:commentRss>http://itknowledgeexchange.techtarget.com/sql-server/sql-excursions-and-index-internals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My SoCal Code Camp slide decks</title>
		<link>http://itknowledgeexchange.techtarget.com/sql-server/my-socal-code-camp-slide-decks/</link>
		<comments>http://itknowledgeexchange.techtarget.com/sql-server/my-socal-code-camp-slide-decks/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 14:00:51 +0000</pubDate>
		<dc:creator>Denny Cherry</dc:creator>
				<category><![CDATA[Data Encryption]]></category>
		<category><![CDATA[Encryption]]></category>
		<category><![CDATA[In Person Events]]></category>
		<category><![CDATA[Indexing]]></category>
		<category><![CDATA[SoCal Code Camp]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server 11]]></category>
		<category><![CDATA[SQL Server 2012]]></category>

		<guid isPermaLink="false">http://itknowledgeexchange.techtarget.com/sql-server/my-socal-code-camp-slide-decks/</guid>
		<description><![CDATA[So this last weekend was the 13th SoCal Code Camp (the 6th at this location).  I presented three different sessions at this code camp.  My slide decks can be downloaded below. SQL Server Indexing for the .NET Developer Using SQL Denali&#8217;s Always On Where should I be encrypting my data If you attended the sessions [...]]]></description>
				<content:encoded><![CDATA[<p>So this last weekend was the 13th SoCal Code Camp (the 6th at this location).  I presented three different sessions at this code camp.  My slide decks can be downloaded below.</p>
<p><a href="http://www.mrdenny.com/downloads/2011.01.29_SoCalCodeCamp/SQL Server Indexing for the Client Developer.pptx">SQL Server Indexing for the .NET Developer</a></p>
<p><a href="http://www.mrdenny.com/downloads/2011.01.29_SoCalCodeCamp/Using SQL Denali's Always On.pptx">Using SQL Denali&#8217;s Always On</a></p>
<p><a href="http://www.mrdenny.com/downloads/2011.01.29_SoCalCodeCamp/Where should I be encrypting my data.zip">Where should I be encrypting my data</a></p>
<p>If you attended the sessions please rate my presentations on <a href="http://speakerrate.com/mrdenny">SpeakerRate.com/mrdenny</a>.</p>
<p>Thanks,</p>
<p>Denny</p>
<!-- wpms-network-global-inserts -->]]></content:encoded>
			<wfw:commentRss>http://itknowledgeexchange.techtarget.com/sql-server/my-socal-code-camp-slide-decks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
