<?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>tim laqua dot com &#187; database</title>
	<atom:link href="http://timlaqua.com/tag/database/feed/" rel="self" type="application/rss+xml" />
	<link>http://timlaqua.com</link>
	<description>Thoughts and Code from Tim Laqua</description>
	<lastBuildDate>Sun, 09 May 2010 15:25:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Locating Rampant Database Growth</title>
		<link>http://timlaqua.com/2010/03/locating-rampant-database-growth/</link>
		<comments>http://timlaqua.com/2010/03/locating-rampant-database-growth/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 17:40:02 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Scripts & Code]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[tsql]]></category>

		<guid isPermaLink="false">http://timlaqua.com/?p=358</guid>
		<description><![CDATA[Every now and then you get a helpful alert from one of your database servers about disk space being low (you're monitoring that, right?), or a bunch of autogrowth alerts (you're monitoring that too, right?) - but what happens when you get these for a database that you don't expect growth in? Further, what happens [...]]]></description>
			<content:encoded><![CDATA[<p>Every now and then you get a helpful alert from one of your database servers about disk space being low (you're monitoring that, right?), or a bunch of autogrowth alerts (you're monitoring that too, right?) - but what happens when you get these for a database that you don't expect growth in?  Further, what happens when that database is growing rampantly (say like 1GB/hr in my case) and it's a canned database from a 3rd party product?  This time it was the database that SolarWinds uses for collection - and apparently it was collecting a lot of something that it wasn't collecting before.</p>
<ol>
<li>you send out an email asking the end users of the system (IT in this case) if anything changed</li>
<li>adjust so said system stops trying to fill up your drives</li>
</ol>
<p>Unfortunately, there's often quite a few possibilities for "why" a database is growing - and when it's a canned product, you don't always have the best understanding of why it does what it does when it does it.  As a Database Admin, you can help diagnose the problem by letting everyone know what exactly is growing:<br />
<span id="more-358"></span><br />
First, figure out what table is growing:<br />
<em>spSpaceUsed.sql</em></p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #808080; font-style: italic;">#Temp_SpSpaceUsed</span>
	<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#91;</span>name<span style="color: #66cc66;">&#93;</span> VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">,</span><span style="color: #66cc66;">&#91;</span>rows<span style="color: #66cc66;">&#93;</span> INT
	<span style="color: #66cc66;">,</span><span style="color: #66cc66;">&#91;</span>reserved<span style="color: #66cc66;">&#93;</span> VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">,</span><span style="color: #66cc66;">&#91;</span><span style="color: #993333; font-weight: bold;">DATA</span><span style="color: #66cc66;">&#93;</span>	VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">,</span><span style="color: #66cc66;">&#91;</span>index_size<span style="color: #66cc66;">&#93;</span> VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">,</span><span style="color: #66cc66;">&#91;</span>unused<span style="color: #66cc66;">&#93;</span> VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">,</span><span style="color: #66cc66;">&#91;</span>CreatedTime<span style="color: #66cc66;">&#93;</span> DATETIME <span style="color: #993333; font-weight: bold;">DEFAULT</span> GETDATE<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
EXEC sp_msforeachtable <span style="color: #ff0000;">'INSERT INTO #Temp_SpSpaceUsed ([name],[rows],[reserved],[data],[index_size],[unused]) EXEC sp_spaceused [?]'</span>
&nbsp;
WAITFOR DELAY <span style="color: #ff0000;">'00:01:00'</span>
&nbsp;
EXEC sp_msforeachtable <span style="color: #ff0000;">'INSERT INTO #Temp_SpSpaceUsed ([name],[rows],[reserved],[data],[index_size],[unused]) EXEC sp_spaceused [?]'</span>
&nbsp;
;WITH SpSpaceUsed <span style="color: #993333; font-weight: bold;">AS</span>
<span style="color: #66cc66;">&#40;</span>
	<span style="color: #993333; font-weight: bold;">SELECT</span> 
		<span style="color: #66cc66;">&#91;</span>name<span style="color: #66cc66;">&#93;</span>
		<span style="color: #66cc66;">,</span>CAST<span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">LEFT</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#91;</span><span style="color: #993333; font-weight: bold;">DATA</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">,</span> LEN<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#91;</span><span style="color: #993333; font-weight: bold;">DATA</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">-</span> <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> INT<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> <span style="color: #66cc66;">&#91;</span><span style="color: #993333; font-weight: bold;">DATA</span><span style="color: #66cc66;">&#93;</span>
		<span style="color: #66cc66;">,</span><span style="color: #66cc66;">&#91;</span>CreatedTime<span style="color: #66cc66;">&#93;</span>
		<span style="color: #66cc66;">,</span>ROW_NUMBER<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> OVER <span style="color: #66cc66;">&#40;</span>PARTITION <span style="color: #993333; font-weight: bold;">BY</span> <span style="color: #66cc66;">&#91;</span>name<span style="color: #66cc66;">&#93;</span> <span style="color: #993333; font-weight: bold;">ORDER</span> <span style="color: #993333; font-weight: bold;">BY</span> <span style="color: #66cc66;">&#91;</span>CreatedTime<span style="color: #66cc66;">&#93;</span> <span style="color: #993333; font-weight: bold;">ASC</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> <span style="color: #66cc66;">&#91;</span>RowNumber<span style="color: #66cc66;">&#93;</span>
	<span style="color: #993333; font-weight: bold;">FROM</span> <span style="color: #808080; font-style: italic;">#Temp_SpSpaceUsed	</span>
<span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">SELECT</span> 
	 a<span style="color: #66cc66;">.</span><span style="color: #66cc66;">&#91;</span>name<span style="color: #66cc66;">&#93;</span>
	<span style="color: #66cc66;">,</span>b<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">DATA</span> <span style="color: #66cc66;">-</span> a<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">DATA</span> <span style="color: #993333; font-weight: bold;">AS</span> <span style="color: #66cc66;">&#91;</span>GrowthKB<span style="color: #66cc66;">&#93;</span>
	<span style="color: #66cc66;">,</span><span style="color: #66cc66;">&#40;</span>CAST<span style="color: #66cc66;">&#40;</span>b<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">DATA</span> <span style="color: #66cc66;">-</span> a<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">DATA</span> <span style="color: #993333; font-weight: bold;">AS</span> FLOAT<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">/</span> DateDiff<span style="color: #66cc66;">&#40;</span>MILLISECOND<span style="color: #66cc66;">,</span> a<span style="color: #66cc66;">.</span>CreatedTime<span style="color: #66cc66;">,</span> b<span style="color: #66cc66;">.</span>CreatedTime<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">1000.0</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">60.0</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">60.0</span> <span style="color: #993333; font-weight: bold;">AS</span> <span style="color: #66cc66;">&#91;</span>GrowthKBPerHour<span style="color: #66cc66;">&#93;</span>
<span style="color: #993333; font-weight: bold;">FROM</span> SpSpaceUsed a
	<span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> SpSpaceUsed b
		<span style="color: #993333; font-weight: bold;">ON</span> a<span style="color: #66cc66;">.</span><span style="color: #66cc66;">&#91;</span>name<span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">=</span> b<span style="color: #66cc66;">.</span><span style="color: #66cc66;">&#91;</span>name<span style="color: #66cc66;">&#93;</span>
			<span style="color: #993333; font-weight: bold;">AND</span> a<span style="color: #66cc66;">.</span>RowNumber <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span>
			<span style="color: #993333; font-weight: bold;">AND</span> b<span style="color: #66cc66;">.</span>RowNumber <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">2</span>
<span style="color: #993333; font-weight: bold;">ORDER</span> <span style="color: #993333; font-weight: bold;">BY</span>
	GrowthKBPerHour <span style="color: #993333; font-weight: bold;">DESC</span>
&nbsp;
<span style="color: #993333; font-weight: bold;">DROP</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #808080; font-style: italic;">#Temp_SpSpaceUsed</span></pre></div></div>

<p>Next, look at the culprit (assuming there's one table doing all the damage - I've found that's usually the case) and try to decipher the column names.  Finally, run a few queries against the table - WITH(NOLOCK) of course - hey, this table is pretty busy.  Now try and see where all the action is coming from.  In this case, one of the columns was [IP] so I just did a COUNT(1) by IP for the last hour's records.  Sure enough, 99% of the records were coming from a single IP, sent that IP off to the guys who know what IPs mean, and they knew exactly which change caused the growth.</p>
<p>Bottom line - nobody knows everything about everything, but we can learn pretty quick with the right information.</p>
]]></content:encoded>
			<wfw:commentRss>http://timlaqua.com/2010/03/locating-rampant-database-growth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Locating All Checked Out Excel Documents in SharePoint (WSS 3.0)</title>
		<link>http://timlaqua.com/2008/10/locating-all-checked-out-excel-documents-in-sharepoint-wss-30/</link>
		<comments>http://timlaqua.com/2008/10/locating-all-checked-out-excel-documents-in-sharepoint-wss-30/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 18:12:53 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Scripts & Code]]></category>
		<category><![CDATA[checkin]]></category>
		<category><![CDATA[checkout]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[t-sql]]></category>

		<guid isPermaLink="false">http://timlaqua.com/?p=49</guid>
		<description><![CDATA[SELECT DirName, LeafName, tp_Email, CheckoutDate, IsCheckoutToLocal FROM AllDocs d WITH&#40;nolock&#41; INNER JOIN Webs w WITH&#40;nolock&#41; ON d.WebId = w.Id INNER JOIN Sites s WITH&#40;nolock&#41; ON w.SiteId = s.Id INNER JOIN UserInfo u WITH&#40;nolock&#41; ON &#40;s.Id=u.tp_SiteID AND u.tp_ID=CheckoutUserId&#41; WHERE d.Type &#60;&#62; 1 AND &#40;LeafName LIKE '%.xls' OR LeafName LIKE '%.xlsx'&#41; AND &#40;LeafName NOT LIKE '%template%'&#41; AND [...]]]></description>
			<content:encoded><![CDATA[
<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> 
	DirName<span style="color: #66cc66;">,</span>
	LeafName<span style="color: #66cc66;">,</span>
	tp_Email<span style="color: #66cc66;">,</span> 
	CheckoutDate<span style="color: #66cc66;">,</span> 
	IsCheckoutToLocal
<span style="color: #993333; font-weight: bold;">FROM</span>     
	AllDocs d <span style="color: #993333; font-weight: bold;">WITH</span><span style="color: #66cc66;">&#40;</span>nolock<span style="color: #66cc66;">&#41;</span> 
	<span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> Webs w <span style="color: #993333; font-weight: bold;">WITH</span><span style="color: #66cc66;">&#40;</span>nolock<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">ON</span> d<span style="color: #66cc66;">.</span>WebId <span style="color: #66cc66;">=</span> w<span style="color: #66cc66;">.</span>Id
	<span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> Sites s <span style="color: #993333; font-weight: bold;">WITH</span><span style="color: #66cc66;">&#40;</span>nolock<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">ON</span> w<span style="color: #66cc66;">.</span>SiteId <span style="color: #66cc66;">=</span> s<span style="color: #66cc66;">.</span>Id
	<span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> UserInfo u <span style="color: #993333; font-weight: bold;">WITH</span><span style="color: #66cc66;">&#40;</span>nolock<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">ON</span> <span style="color: #66cc66;">&#40;</span>s<span style="color: #66cc66;">.</span>Id<span style="color: #66cc66;">=</span>u<span style="color: #66cc66;">.</span>tp_SiteID <span style="color: #993333; font-weight: bold;">AND</span> u<span style="color: #66cc66;">.</span>tp_ID<span style="color: #66cc66;">=</span>CheckoutUserId<span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">WHERE</span>
	d<span style="color: #66cc66;">.</span>Type <span style="color: #66cc66;">&lt;&gt;</span> <span style="color: #cc66cc;">1</span> 
	<span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span>LeafName <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%.xls'</span> <span style="color: #993333; font-weight: bold;">OR</span> LeafName <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%.xlsx'</span><span style="color: #66cc66;">&#41;</span> 
	<span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span>LeafName <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%template%'</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #993333; font-weight: bold;">AND</span> DeleteTRansactionId <span style="color: #66cc66;">=</span> CAST<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span> <span style="color: #993333; font-weight: bold;">AS</span> VARBINARY<span style="color: #66cc66;">&#41;</span>
	<span style="color: #993333; font-weight: bold;">AND</span> IsCurrentVersion <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span>
	<span style="color: #993333; font-weight: bold;">AND</span> IsCheckoutToLocal <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span>
<span style="color: #993333; font-weight: bold;">ORDER</span> <span style="color: #993333; font-weight: bold;">BY</span>
	tp_Email <span style="color: #993333; font-weight: bold;">ASC</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://timlaqua.com/2008/10/locating-all-checked-out-excel-documents-in-sharepoint-wss-30/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
