<?xml version="1.0" encoding="utf-8"?><!-- generator="b2evolution/6.11.7-stable" -->
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Uwe Ricken - Kategorie: "Optimierung / Performance"</title>
		<link>https://www.insidesql.org/blogs/uricken/</link>
		<atom:link rel="self" type="application/rss+xml" href="https://www.insidesql.org/blogs/uricken/?tempskin=_rss2" />
		<description>InsideSQL.org Blogs - Blogs über SQL Server</description>
		<language>de-DE</language>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<admin:generatorAgent rdf:resource="http://b2evolution.net/?v=6.11.7-stable"/>
		<ttl>60</ttl>
				<item>
			<title>Größe und Verwendung aller Datenbanken ermitteln</title>
			<link>https://www.insidesql.org/blogs/uricken/2014/10/23/groesse-und-verwendung-aller-datenbanken</link>
			<pubDate>Thu, 23 Oct 2014 14:30:00 +0000</pubDate>			<dc:creator>Uwe Ricken</dc:creator>
			<category domain="main">Tipps und Tricks</category>
<category domain="alt">Optimierung / Performance</category>
<category domain="alt">Skripting</category>			<guid isPermaLink="false">3738@https://www.insidesql.org/blogs/</guid>
						<description>&lt;p&gt;&lt;a href=&quot;http://db-berater.blogspot.de/2014/10/gre-und-verwendung-aller-datenbanken.html&quot;&gt;http://db-berater.blogspot.de/2014/10/gre-und-verwendung-aller-datenbanken.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Mit bestimmter Regelmäßigkeit werde ich beauftragt, vorhandene Microsoft SQL Server zu untersuchen, wenn zum Beispiel eine Performance-Analyse gemacht werden soll oder aber der Microsoft SQL Server einer generellen Untersuchung unterzogen werden soll. Das man dabei schon mal recht interessanteste Analysen vorfindet, habe ich bereits im Artikel “&lt;a href=&quot;http://db-berater.blogspot.de/2014/04/berater-dba-dev-dokumentation-ist-eine.html&quot; target=&quot;_blank&quot;&gt;Berater / DBA / DEV – Dokumentation ist eine Hauptleistungspflicht!&lt;/a&gt;” behandelt. Mit diesem Artikel möchte ich eine Artikelreihe beginnen, in der ich ein paar meiner im Alltag verwendeten Skripte vorstelle und deren Interpretation beschreibe.&lt;/p&gt;
&lt;div id=&quot;extendedEntryBreak&quot;&gt;&lt;/div&gt;&lt;a href=&quot;https://www.insidesql.org/blogs/uricken/2014/10/23/groesse-und-verwendung-aller-datenbanken#more3738&quot;&gt;Ganze Geschichte &amp;raquo;&lt;/a&gt;</description>
			<content:encoded><![CDATA[<p><a href="http://db-berater.blogspot.de/2014/10/gre-und-verwendung-aller-datenbanken.html">http://db-berater.blogspot.de/2014/10/gre-und-verwendung-aller-datenbanken.html</a></p><p>Mit bestimmter Regelmäßigkeit werde ich beauftragt, vorhandene Microsoft SQL Server zu untersuchen, wenn zum Beispiel eine Performance-Analyse gemacht werden soll oder aber der Microsoft SQL Server einer generellen Untersuchung unterzogen werden soll. Das man dabei schon mal recht interessanteste Analysen vorfindet, habe ich bereits im Artikel “<a href="http://db-berater.blogspot.de/2014/04/berater-dba-dev-dokumentation-ist-eine.html" target="_blank">Berater / DBA / DEV – Dokumentation ist eine Hauptleistungspflicht!</a>” behandelt. Mit diesem Artikel möchte ich eine Artikelreihe beginnen, in der ich ein paar meiner im Alltag verwendeten Skripte vorstelle und deren Interpretation beschreibe.</p>
<div id="extendedEntryBreak"></div><a href="https://www.insidesql.org/blogs/uricken/2014/10/23/groesse-und-verwendung-aller-datenbanken#more3738">Ganze Geschichte &raquo;</a>]]></content:encoded>
								<comments>https://www.insidesql.org/blogs/uricken/2014/10/23/groesse-und-verwendung-aller-datenbanken#comments</comments>
			<wfw:commentRss>https://www.insidesql.org/blogs/uricken/?tempskin=_rss2&#38;disp=comments&#38;p=3738</wfw:commentRss>
		</item>
				<item>
			<title>ISNULL als Prädikat – SEEK oder SCAN</title>
			<link>https://www.insidesql.org/blogs/uricken/2014/08/18/isnull-als-praedikat-seek-oder</link>
			<pubDate>Mon, 18 Aug 2014 04:08:00 +0000</pubDate>			<dc:creator>Uwe Ricken</dc:creator>
			<category domain="alt">Tipps und Tricks</category>
<category domain="alt">Optimierung / Performance</category>
<category domain="main">Level 200</category>			<guid isPermaLink="false">3709@https://www.insidesql.org/blogs/</guid>
						<description>&lt;p&gt;&lt;a href=&quot;http://db-berater.blogspot.de/2014/08/isnull-als-predikat-seek-oder-scan.html&quot;&gt;http://db-berater.blogspot.de/2014/08/isnull-als-predikat-seek-oder-scan.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Im Gespräch mit einem Kunden haben wir uns über NON SARGable Abfragen unterhalten. Dabei ist unter anderem ausgeführt worden, dass Funktionen grundsätzlich zu Index-Scans führen, da sie immer jede Zeile überprüfen müssen. Dieses Thema habe ich im Artikel “&lt;a href=&quot;http://db-berater.blogspot.de/2012/11/optimierung-von-datenbankmodellensargab.html&quot; target=&quot;_blank&quot;&gt;Optimierung von Datenbankmodellen – SARGable Abfragen&lt;/a&gt;” bereits ausführlich behandelt. Viele Funktionen arbeiten tatsächlich nach diesem Prinzip; dennoch ist z. B. die Arbeitsweise von ISNULL als Prädikat davon abhängig, wie das Attribut in der Tabelle definiert wird.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;a href=&quot;https://www.insidesql.org/blogs/uricken/2014/08/18/isnull-als-praedikat-seek-oder#more3709&quot;&gt;Ganze Geschichte &amp;raquo;&lt;/a&gt;</description>
			<content:encoded><![CDATA[<p><a href="http://db-berater.blogspot.de/2014/08/isnull-als-predikat-seek-oder-scan.html">http://db-berater.blogspot.de/2014/08/isnull-als-predikat-seek-oder-scan.html</a></p><p>Im Gespräch mit einem Kunden haben wir uns über NON SARGable Abfragen unterhalten. Dabei ist unter anderem ausgeführt worden, dass Funktionen grundsätzlich zu Index-Scans führen, da sie immer jede Zeile überprüfen müssen. Dieses Thema habe ich im Artikel “<a href="http://db-berater.blogspot.de/2012/11/optimierung-von-datenbankmodellensargab.html" target="_blank">Optimierung von Datenbankmodellen – SARGable Abfragen</a>” bereits ausführlich behandelt. Viele Funktionen arbeiten tatsächlich nach diesem Prinzip; dennoch ist z. B. die Arbeitsweise von ISNULL als Prädikat davon abhängig, wie das Attribut in der Tabelle definiert wird.</p>
<p></p><a href="https://www.insidesql.org/blogs/uricken/2014/08/18/isnull-als-praedikat-seek-oder#more3709">Ganze Geschichte &raquo;</a>]]></content:encoded>
								<comments>https://www.insidesql.org/blogs/uricken/2014/08/18/isnull-als-praedikat-seek-oder#comments</comments>
			<wfw:commentRss>https://www.insidesql.org/blogs/uricken/?tempskin=_rss2&#38;disp=comments&#38;p=3709</wfw:commentRss>
		</item>
				<item>
			<title>Verwendung von Variablen statt Literalen</title>
			<link>https://www.insidesql.org/blogs/uricken/2014/07/20/verwendung-von-variablen-statt-literalen</link>
			<pubDate>Sun, 20 Jul 2014 16:18:00 +0000</pubDate>			<dc:creator>Uwe Ricken</dc:creator>
			<category domain="alt">Tipps und Tricks</category>
<category domain="alt">Optimierung / Performance</category>
<category domain="main">Level 300</category>			<guid isPermaLink="false">3701@https://www.insidesql.org/blogs/</guid>
						<description>&lt;p&gt;&lt;a href=&quot;http://db-berater.blogspot.de/2014/07/verwendung-von-variablen-statt-literalen.html&quot;&gt;http://db-berater.blogspot.de/2014/07/verwendung-von-variablen-statt-literalen.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Im Forum eines von mir sehr geschätzten MVP-Kollegen wurde eine Frage bezüglich der Verwendung von Variablen anstelle von Literalen gestellt (&lt;a href=&quot;http://www.donkarl.com/forum/forums/thread-view.asp?tid=1088&amp;amp;mid=3107#M3107&quot; target=&quot;_blank&quot;&gt;hier&lt;/a&gt;). Das Problem war, dass die Abfrage sich deutlich verlangsamte, wenn Variablen statt Literale verwendet wurden. Warum dieses Verhalten für Microsoft SQL Server jedoch korrekt ist, soll der folgende Artikel zeigen.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;a href=&quot;https://www.insidesql.org/blogs/uricken/2014/07/20/verwendung-von-variablen-statt-literalen#more3701&quot;&gt;Ganze Geschichte &amp;raquo;&lt;/a&gt;</description>
			<content:encoded><![CDATA[<p><a href="http://db-berater.blogspot.de/2014/07/verwendung-von-variablen-statt-literalen.html">http://db-berater.blogspot.de/2014/07/verwendung-von-variablen-statt-literalen.html</a></p><p>Im Forum eines von mir sehr geschätzten MVP-Kollegen wurde eine Frage bezüglich der Verwendung von Variablen anstelle von Literalen gestellt (<a href="http://www.donkarl.com/forum/forums/thread-view.asp?tid=1088&amp;mid=3107#M3107" target="_blank">hier</a>). Das Problem war, dass die Abfrage sich deutlich verlangsamte, wenn Variablen statt Literale verwendet wurden. Warum dieses Verhalten für Microsoft SQL Server jedoch korrekt ist, soll der folgende Artikel zeigen.</p>
<p></p><a href="https://www.insidesql.org/blogs/uricken/2014/07/20/verwendung-von-variablen-statt-literalen#more3701">Ganze Geschichte &raquo;</a>]]></content:encoded>
								<comments>https://www.insidesql.org/blogs/uricken/2014/07/20/verwendung-von-variablen-statt-literalen#comments</comments>
			<wfw:commentRss>https://www.insidesql.org/blogs/uricken/?tempskin=_rss2&#38;disp=comments&#38;p=3701</wfw:commentRss>
		</item>
				<item>
			<title>Sortierungskonflikte – Auswirkungen auf Ausführungspläne</title>
			<link>https://www.insidesql.org/blogs/uricken/2014/05/31/sortierungskonflikte-auswirkungen-auf-ausfuehrungsplaene</link>
			<pubDate>Sat, 31 May 2014 05:42:00 +0000</pubDate>			<dc:creator>Uwe Ricken</dc:creator>
			<category domain="alt">Tipps und Tricks</category>
<category domain="main">Optimierung / Performance</category>
<category domain="alt">Level 400</category>
<category domain="alt">Level 200</category>			<guid isPermaLink="false">3688@https://www.insidesql.org/blogs/</guid>
						<description>&lt;p&gt;&lt;a href=&quot;http://db-berater.blogspot.de/2014/05/sortierungskonflikte-auswirkungen-auf.html&quot;&gt;http://db-berater.blogspot.de/2014/05/sortierungskonflikte-auswirkungen-auf.html&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;image_block&quot;&gt;Erst im letzten Artikel “&lt;a href=&quot;http://db-berater.blogspot.de/2014/05/warum-korrekte-datentypen-fur-where.html&quot; target=&quot;_blank&quot;&gt;Warum korrekte Datentypen für WHERE-Klauseln wichtig sind&lt;/a&gt;” habe ich die Auswirkungen von erforderlichen Typenkonvertierungen auf das Ausführungsverhalten beschrieben. Kaum geschrieben kam dann auch ein “echter” Fall diese Woche, der zunächst unerklärlich war; ein Blick auf die Ausführungspläne hat dann aber sehr schnell gezeigt, dass ein &lt;strong&gt;falsch gelöster&lt;/strong&gt; “Sortierungskonflikt” die Ursache für das sehr schlechte Ausführungsverhalten der Abfrage war.&lt;/p&gt;&lt;a href=&quot;https://www.insidesql.org/blogs/uricken/2014/05/31/sortierungskonflikte-auswirkungen-auf-ausfuehrungsplaene#more3688&quot;&gt;Ganze Geschichte &amp;raquo;&lt;/a&gt;</description>
			<content:encoded><![CDATA[<p><a href="http://db-berater.blogspot.de/2014/05/sortierungskonflikte-auswirkungen-auf.html">http://db-berater.blogspot.de/2014/05/sortierungskonflikte-auswirkungen-auf.html</a></p><p class="image_block">Erst im letzten Artikel “<a href="http://db-berater.blogspot.de/2014/05/warum-korrekte-datentypen-fur-where.html" target="_blank">Warum korrekte Datentypen für WHERE-Klauseln wichtig sind</a>” habe ich die Auswirkungen von erforderlichen Typenkonvertierungen auf das Ausführungsverhalten beschrieben. Kaum geschrieben kam dann auch ein “echter” Fall diese Woche, der zunächst unerklärlich war; ein Blick auf die Ausführungspläne hat dann aber sehr schnell gezeigt, dass ein <strong>falsch gelöster</strong> “Sortierungskonflikt” die Ursache für das sehr schlechte Ausführungsverhalten der Abfrage war.</p><a href="https://www.insidesql.org/blogs/uricken/2014/05/31/sortierungskonflikte-auswirkungen-auf-ausfuehrungsplaene#more3688">Ganze Geschichte &raquo;</a>]]></content:encoded>
								<comments>https://www.insidesql.org/blogs/uricken/2014/05/31/sortierungskonflikte-auswirkungen-auf-ausfuehrungsplaene#comments</comments>
			<wfw:commentRss>https://www.insidesql.org/blogs/uricken/?tempskin=_rss2&#38;disp=comments&#38;p=3688</wfw:commentRss>
		</item>
				<item>
			<title>Warum korrekte Datentypen für WHERE-Klauseln wichtig sind</title>
			<link>https://www.insidesql.org/blogs/uricken/2014/05/25/warum-korrekte-datentypen-fuer-where</link>
			<pubDate>Sun, 25 May 2014 15:38:00 +0000</pubDate>			<dc:creator>Uwe Ricken</dc:creator>
			<category domain="alt">Tipps und Tricks</category>
<category domain="main">Optimierung / Performance</category>
<category domain="alt">Level 300</category>			<guid isPermaLink="false">3686@https://www.insidesql.org/blogs/</guid>
						<description>&lt;p&gt;&lt;a href=&quot;http://db-berater.blogspot.de/2014/05/warum-korrekte-datentypen-fur-where.html&quot;&gt;http://db-berater.blogspot.de/2014/05/warum-korrekte-datentypen-fur-where.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;In einer Anfrage in den Microsoft Foren (&lt;a href=&quot;http://social.msdn.microsoft.com/Forums/sqlserver/en-US/4ba53981-dc00-41ef-93a7-f6006c966ae2/sp-reads?forum=sqldatabaseengine&quot; target=&quot;_blank&quot;&gt;link&lt;/a&gt;) ging es darum, warum Microsoft SQL Server trotz einer SEEK-Operation alle Datenseiten einer Tabelle durchsucht hat. Tatsächlich kann eine SEEK-Operation die vollständige Tabelle betreffen, wenn bestimmte Voraussetzungen nicht erfüllt sind. Wie wichtig zum Beispiel die korrekte Verwendung von Datentypen bei Einschränkungen sind, zeigt der nachfolgende Artikel.&lt;/p&gt;&lt;a href=&quot;https://www.insidesql.org/blogs/uricken/2014/05/25/warum-korrekte-datentypen-fuer-where#more3686&quot;&gt;Ganze Geschichte &amp;raquo;&lt;/a&gt;</description>
			<content:encoded><![CDATA[<p><a href="http://db-berater.blogspot.de/2014/05/warum-korrekte-datentypen-fur-where.html">http://db-berater.blogspot.de/2014/05/warum-korrekte-datentypen-fur-where.html</a></p><p>In einer Anfrage in den Microsoft Foren (<a href="http://social.msdn.microsoft.com/Forums/sqlserver/en-US/4ba53981-dc00-41ef-93a7-f6006c966ae2/sp-reads?forum=sqldatabaseengine" target="_blank">link</a>) ging es darum, warum Microsoft SQL Server trotz einer SEEK-Operation alle Datenseiten einer Tabelle durchsucht hat. Tatsächlich kann eine SEEK-Operation die vollständige Tabelle betreffen, wenn bestimmte Voraussetzungen nicht erfüllt sind. Wie wichtig zum Beispiel die korrekte Verwendung von Datentypen bei Einschränkungen sind, zeigt der nachfolgende Artikel.</p><a href="https://www.insidesql.org/blogs/uricken/2014/05/25/warum-korrekte-datentypen-fuer-where#more3686">Ganze Geschichte &raquo;</a>]]></content:encoded>
								<comments>https://www.insidesql.org/blogs/uricken/2014/05/25/warum-korrekte-datentypen-fuer-where#comments</comments>
			<wfw:commentRss>https://www.insidesql.org/blogs/uricken/?tempskin=_rss2&#38;disp=comments&#38;p=3686</wfw:commentRss>
		</item>
			</channel>
</rss>
