<?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>pmd media &#187; Datenbank</title>
	<atom:link href="http://blog.pmd-media.com/tag/datenbank/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.pmd-media.com</link>
	<description>it-consulting &#38; development</description>
	<lastBuildDate>Tue, 10 Jan 2012 10:15:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>HowTo: Verkleinern einer Microsoft SQL Server Datenbank</title>
		<link>http://blog.pmd-media.com/2009/10/08/howto-verkleinern-einer-microsoft-sql-server-datenbank</link>
		<comments>http://blog.pmd-media.com/2009/10/08/howto-verkleinern-einer-microsoft-sql-server-datenbank#comments</comments>
		<pubDate>Thu, 08 Oct 2009 22:00:26 +0000</pubDate>
		<dc:creator>Frank Piotrowsky</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[2005]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Performancesteigerung]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Skripting]]></category>
		<category><![CDATA[Speicherverkleinerung]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[T-SQL]]></category>

		<guid isPermaLink="false">http://blog.pmd-media.com/?p=191</guid>
		<description><![CDATA[
			
				
			
		
Der normale Weg, eine Microsoft SQL Server-Datenbank zu verkleinern ist über das Microsoft SQL Server Management Studio bzw. über den Befehl DBCC SHRINKDATABASE.
Doch was ist, wenn die Datei der Datenbank nicht kleiner wird? Was ist, wenn die Datenbank anzeigt, dass nur noch ein paar Megabyte Speicherplatz frei sind, obwohl Sie jede Menge Datensätze aus der [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.pmd-media.com%2F2009%2F10%2F08%2Fhowto-verkleinern-einer-microsoft-sql-server-datenbank"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.pmd-media.com%2F2009%2F10%2F08%2Fhowto-verkleinern-einer-microsoft-sql-server-datenbank&amp;source=FPiotrowsky&amp;style=normal&amp;service=bit.ly&amp;service_api=R_2ada418849661b0a351ca4eaa9f13404&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Der normale Weg, eine Microsoft SQL Server-Datenbank zu verkleinern ist über das Microsoft SQL Server Management Studio bzw. über den Befehl <em>DBCC SHRINKDATABASE</em>.<br />
Doch was ist, wenn die Datei der Datenbank nicht kleiner wird? Was ist, wenn die Datenbank anzeigt, dass nur noch ein paar Megabyte Speicherplatz frei sind, obwohl Sie jede Menge Datensätze aus der Datenbank gelöscht haben?<br />
Das ist mir mit einer Datenbank passiert. Inhalt: ca. 40 Mio. Datensätze, Größe: ca. 12 GB. Nachdem ich ca. 34 Mio. Datensätze gelöscht habe, zeigte die Datenbank über das SQL Server Management Studio an, dass gerade einmal 12 MB freier Speicher verfügbar war. <em>DBCC SHRINKFILE</em> oder <em>DBCC SHRINKDATABASE</em> haben keine Dateiverkleinerung erreicht. Die Größe blieb bei 12 GB.</p>
<h3>Warum?</h3>
<p>SQL Server schreibt die Daten in die Datenbank und erstellt sogenannte Seiten für die Indizes. Eine Seite hat eine bestimmte Größe. Ist eine Seite mit einer bestimmten Anzahl an Index-Einträgen gefüllt, dann wird eine neue Seite erstellt, auf die dann die nächsten Index-Daten geschrieben werden. So viel grob gesagt zur Technik.<br />
Die Indizes in meiner Datenbank waren also auf viele Seiten verteilt, und diese Seiten wiederum in der gesamten Datei. <em>DBCC SHRINKFILE</em> und <em>DBCC SHRINKDATABASE</em> können zwar Speicher in der Datei reorganisieren, allerdings nichts gegen die Fragmentation der Seiten tun.</p>
<h3>Die Lösung</h3>
<p>Um die Seiten zu reorganisieren müssen Sie die Indizes in der Datenbank neu aufbauen und können danach die Befehle DBCC SHRINKFILE oder DBCC DBCC SHRINKDATABASE  ausführen.</p>
<h4>2 Möglichkeiten</h4>
<p>Hierfür haben Sie 2 Möglichkeiten zur Verfügung.</p>
<ol>
<li>Über ein Skript</li>
<li>Über das Microsoft SQL Server Management Studio</li>
</ol>
<h4>Das Skript</h4>
<p>Das Skript, das Sie für die Ausführung der Reorganisation benötigen, finden Sie als Nächstes in diesem Post. Die Ausführung über das Microsoft SQL Server Management Studio finden Sie als Videotutorial in diesem Post.<br />
Das folgende Skript führt die Reorganisation der Indizes in der Datenbank aus und sorgt für eine Füllung der Seiten zu 90%.</p>
<pre>USE DatenbankName -- Geben Sie den Namen der Datenbank an, deren
                  -- Indizes neu aufgebaut werden sollen

DECLARE @TableName varchar(255)
DECLARE TableCursor CURSOR FOR
SELECT table_name FROM information_schema.tables
WHERE table_type = 'base table'

OPEN TableCursor

FETCH NEXT FROM TableCursor INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
DBCC DBREINDEX(@TableName,' ',90)
FETCH NEXT FROM TableCursor INTO @TableName
END

CLOSE TableCursor

DEALLOCATE TableCursor</pre>
<p>Da mit <em>DBCC DBREINDEX</em> immer nur einzelne Tabellen bearbeitet werden können, geht dieses Skript jede Tabelle einzeln durch.</p>
<h4>Die Reorganisation via Microsoft SQL Server Management Studio</h4>
<p><span class="youtube">
<object width="425" height="355">
<param name="movie" value="http://www.youtube.com/v/n6Y1hlqrflU?color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;loop=&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;rel=1" />
<param name="allowFullScreen" value="true" />
<embed wmode="opaque" src="http://www.youtube.com/v/n6Y1hlqrflU?color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;loop=&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;rel=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="355"></embed>
<param name="wmode" value="opaque" />
</object>
</span><p><a href="http://www.youtube.com/watch?v=n6Y1hlqrflU"><img src="http://img.youtube.com/vi/n6Y1hlqrflU/default.jpg" width="130" height="97" border=0></a></p><p><a href="http://www.youtube.com/watch?v=n6Y1hlqrflU">www.youtube.com/watch?v=n6Y1hlqrflU</a></p></p>
<p>Nach der Ausführung der Reorganisation funktioniert dann auch der <em>DBCC SHRINKDATABASE</em> Befehl:</p>
<pre>use DatenbankName
go
dbcc shrinkdatabase    (DatenbankName, NOTRUNCATE)
go
dbcc shrinkdatabase    (DatenbankName, TRUNCATEONLY)</pre>
<p>Danach war die Datenbank von 12 GB auf 2 GB geschrumpft.</p>
<h5>Achtung!</h5>
<p>Die Ausführung von <em>DBCC DBREINDEX</em> ist ein Offline-Vorgang, d.h. <strong>die Tabelle wird für die Zeit der Ausführung gesperrt und Benutzer können nicht darauf zugreifen</strong>. Deshalb empfehle ich, diesen Vorgang außerhalb der normalen Betriebszeiten auszuführen.</p>
<p>Wenn Sie Anregungen zu der Anleitung haben oder Kommentare, so zögern Sie nicht, hier zu kommentieren. Ich freue mich über Ihr Feedback.</p>
<div class="shr-publisher-191"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.pmd-media.com/2009/10/08/howto-verkleinern-einer-microsoft-sql-server-datenbank/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Companyweb funktioniert nicht mehr</title>
		<link>http://blog.pmd-media.com/2009/07/29/companyweb-funktioniert-nicht-mehr</link>
		<comments>http://blog.pmd-media.com/2009/07/29/companyweb-funktioniert-nicht-mehr#comments</comments>
		<pubDate>Wed, 29 Jul 2009 08:31:42 +0000</pubDate>
		<dc:creator>Frank Piotrowsky</dc:creator>
				<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[2005]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[companyweb]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://blog.pmd-media.com/?p=89</guid>
		<description><![CDATA[
			
				
			
		
Gestern ging es noch, doch heute funktioniert das Companyweb nicht mehr. Einfach so. Ohne Grund. Niemand hat etwas verändert&#8230;
Dieses Verhalten habe ich bei einem Microsoft Server 2008 festgestellt der Sharepoint hostet und die Daten für das companyweb in einer SQL-Server 2005 Datenbank auf einem weiteren Server speichert. Da dieses Phänomen regelmäßig auftritt (meistens mittwochs oder [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.pmd-media.com%2F2009%2F07%2F29%2Fcompanyweb-funktioniert-nicht-mehr"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.pmd-media.com%2F2009%2F07%2F29%2Fcompanyweb-funktioniert-nicht-mehr&amp;source=FPiotrowsky&amp;style=normal&amp;service=bit.ly&amp;service_api=R_2ada418849661b0a351ca4eaa9f13404&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Gestern ging es noch, doch heute funktioniert das Companyweb nicht mehr. Einfach so. Ohne Grund. Niemand hat etwas verändert&#8230;</p>
<p>Dieses Verhalten habe ich bei einem Microsoft Server 2008 festgestellt der Sharepoint hostet und die Daten für das companyweb in einer SQL-Server 2005 Datenbank auf einem weiteren Server speichert. Da dieses Phänomen regelmäßig auftritt (meistens mittwochs oder donnerstags&#8230;), widme ich diesem Problem einen extra Post.</p>
<p>Dienstags rollt Microsoft neue Updates aus. Sind hierbei Updates für einen Server 2008 vorhanden, die einen Neustart erfordern, kann das beschriebene Verhalten nach dem Neustart des Servers, der die SQL-Server-Dienste hostet, auftreten. Dann werden diese nicht (immer) neu gestartet, obwohl die Startart auf &#8220;Automatisch&#8221; gesetzt ist.</p>
<p>Wie diese neu gestartet werden, habe ich in meinem Post &#8220;<a title="SQL Server Dienste neu starten" href="http://blog.pmd-media.com/2009/07/29/sql-server-dienste-neu-starten/" target="_blank">SQL Server Dienste neu starten</a>&#8221; beschrieben.</p>
<div class="shr-publisher-89"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.pmd-media.com/2009/07/29/companyweb-funktioniert-nicht-mehr/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (user agent is rejected)

Served from: blog.pmd-media.com @ 2012-02-05 14:54:57 -->
