Advanced Analytics on Sascha Dittmann https://draft.sascha-dittmann.de/tags/advanced-analytics/ Recent content in Advanced Analytics on Sascha Dittmann Hugo de-de Mon, 22 Dec 2014 00:01:00 +0100 Apache HBase mit Microsoft Azure HDInsight (Teil 2) https://draft.sascha-dittmann.de/posts/apache-hbase-mit-microsoft-azure-hdinsight-teil-2/ Mon, 22 Dec 2014 00:01:00 +0100 https://draft.sascha-dittmann.de/posts/apache-hbase-mit-microsoft-azure-hdinsight-teil-2/ <p>Nachdem ich bei meinem letzten Blog-Post über <a href="https://draft.sascha-dittmann.de/posts/apache-hbase-mit-microsoft-azure-hdinsight/">Apache HBase mit Microsoft Azure HDInsight</a> eine grobe Einführung in das Thema gegeben habe, möchte ich diesmal auf ein paar Grundlegende Konzepte eingehen&hellip;</p> <h2 id="aufbau-der-hbase-tabellen">Aufbau der HBase-Tabellen</h2> <p>Bei HBase-Tabellen sind die Spalten ein zentrales Element:</p> <ul> <li>Eine Spalte kann eine oder mehrere Zellen enthalten</li> <li>Eine oder mehrere Spalten setzten sich zu einer Zeile zusammen</li> <li>Eine oder mehrere Zeilen bilden eine Tabelle</li> </ul> <p>Jede Zeile hat einen eindeutigen Schlüssel (Row Key), wodurch sie über die API angesprochen werden kann (Dies ist ähnlich dem Primärschlüssel in einem RDBMS).</p> Apache HBase mit Microsoft Azure HDInsight (Teil 1) https://draft.sascha-dittmann.de/posts/apache-hbase-mit-microsoft-azure-hdinsight/ Tue, 16 Dec 2014 00:01:00 +0100 https://draft.sascha-dittmann.de/posts/apache-hbase-mit-microsoft-azure-hdinsight/ <p>Durch ein aktuelles Projekt, beschäftige ich mich intensiver mit <a href="http://hbase.apache.org/">Apache HBase</a>, was eine hervorragenden Gelegenheit bietet meinem Blog mal wieder etwas Leben einzuhauchen&hellip;</p> <h2 id="was-ist-apache-hbase">Was ist Apache HBase</h2> <p>Wir leben in einem Zeitalter, indem wir alle über das Internet verbunden sind und die Erwartungshaltung haben, dass Informationen (die wir suchen) überall und sofort zur Verfügung stehen.</p> <p>Aus diesem Grund haben sich Unternehmen darauf spezialisiert, uns zielgerichtet mit Informationen beliefern zu können.</p> <p>Plattformen wie Hadoop bzw. HDInsight stellen dafür nötige Softwarebasis zur Verfügung.</p> Big Data am SQLSaturday #230 - Rheinland 2013 https://draft.sascha-dittmann.de/posts/big-data-am-sqlsaturday-230-rheinland-2013/ Mon, 10 Jun 2013 13:17:00 +0100 https://draft.sascha-dittmann.de/posts/big-data-am-sqlsaturday-230-rheinland-2013/ <p>Nach dem großen Erfolg des ersten SQL Saturday in Deutschland (September 2012), findet am 13. Juli 2013 erneut diese kostenfreie Community-Veranstaltung statt.</p> <p>Nach München geht es diesmal zur <a href="http://www.fh-bonn-rhein-sieg.de/">Hochschule Bonn-Rhein-Sieg</a> nach Sankt Augustin.</p> <h2 id="was-ist-ein-sql-saturday">Was ist ein SQL Saturday</h2> <p>Der SQLSaturday ist eine kostenlose 1-Tages Konferenz für SQL Server Professionals und alle, die mehr über den Microsoft SQL Server erfahren wollen.</p> <p>Ursprünglich aus den USA kommend, wurden mittlerweile unter der Schirmherrschaft der PASS Global weit über 150 SQLSaturdays auf fast allen Kontinenten veranstaltet.</p> Apache Hadoop für Windows Azure - MapReduce mit C# https://draft.sascha-dittmann.de/posts/apache-hadoop-fuer-windows-azure-mapreduce-mit-csharp/ Fri, 27 Apr 2012 08:33:00 +0100 https://draft.sascha-dittmann.de/posts/apache-hadoop-fuer-windows-azure-mapreduce-mit-csharp/ <p>Nachdem ich in meinem Blog Post &ldquo;<a href="https://draft.sascha-dittmann.de/posts/apache-hadoop-fuer-windows-azure-mapreduce-mit-javascript/">Apache Hadoop für Windows Azure - MapReduce mit JavaScript</a>&rdquo; einen <a href="http://de.wikipedia.org/wiki/MapReduce">MapReduce</a>-Algorithmus mit JavaScript vorgestellt hatte, möchte ich diesmal das Ganze mit Microsoft Bordmitteln umsetzen.</p> <p>Auch hier kommt wieder die Developer Preview der <a href="http://www.hadooponazure.com/">Apache Hadoop-based Services for Windows Azure</a> zum Einsatz.</p> <h2 id="hadoop-streaming">Hadoop Streaming</h2> <p>MapReduce-Algorithmen lassen sich, dank der Streaming-Funktionalität des Apache Hadoop Frameworks, in jeder Programmiersprache umsetzen, die auf dem zu Grunde liegenden Betriebssystem ausführbar ist.</p> <p>Hadoop Streaming wurde standardmäßig für Text-Datenströme ausgelegt, obwohl in der Version 0.21.0 auch Binärströme implementiert wurden.</p> Apache Hadoop für Windows Azure - MapReduce mit JavaScript https://draft.sascha-dittmann.de/posts/apache-hadoop-fuer-windows-azure-mapreduce-mit-javascript/ Tue, 14 Feb 2012 07:56:00 +0100 https://draft.sascha-dittmann.de/posts/apache-hadoop-fuer-windows-azure-mapreduce-mit-javascript/ <p>Meine Reise mit der Developer Preview des neuen Cloud Speicherdienstes &ldquo;<a href="http://www.hadooponazure.com/">Apache™ Hadoop™-based Services for Windows Azure</a>&rdquo; geht weiter:</p> <p>Diesmal stehen die Interaktive Konsole und ein einfacher <a href="http://de.wikipedia.org/wiki/MapReduce">MapReduce</a>-Algorithmus mit JavaScript auf dem Plan.</p> <p>Im letzten Blog Post &ldquo;<a href="https://draft.sascha-dittmann.de/posts/apache-hadoop-dienste-fuer-windows-azure-developer-preview/">Apache Hadoop Dienste für Windows Azure (Developer Preview)</a>&rdquo; hatte ich von der Erstellung eines eigenen Hadoop Clusters berichtet.<br> Nachdem dieses dann einsatzbereit war, wollte ich mich auf den Weg zu ein wenig Quellcode machen.</p> <p>Doch eine grundlegende Frage beschäftigte mich:</p> Apache Hadoop Dienste für Windows Azure (Developer Preview) https://draft.sascha-dittmann.de/posts/apache-hadoop-dienste-fuer-windows-azure-developer-preview/ Tue, 07 Feb 2012 07:26:00 +0100 https://draft.sascha-dittmann.de/posts/apache-hadoop-dienste-fuer-windows-azure-developer-preview/ <p>Eine weitere <a href="http://de.wikipedia.org/wiki/NoSQL">NoSQL</a> Implementierung für die Windows Azure Plattform kündigt sich an:</p> <p>Zum bisherigen Key-Value-Pair Speicher, dem <a href="https://draft.sascha-dittmann.de/posts/erste-schritte-mit-windows-azure-der-table-storage/">Windows Azure Table Storage</a>, wird in Zukunft ein weiterer Speicher für große Datenmengen (<a href="http://de.wikipedia.org/wiki/Big_Data">Big Data</a>, <a href="http://de.wikipedia.org/wiki/Petabyte">Petabyte</a>-Bereich) hinzukommen.</p> <p>Dieser Speicherdienst baut auf dem <a href="http://hadoop.apache.org">Apache™ Hadoop™</a> Framework auf.</p> <p>Diese Meldung erreichte mich Ende Letzten Jahres und erweckte mein Interesse.</p> <p>Doch was ist eigentlich Hadoop?</p> <h2 id="apache-hadoop">Apache™ Hadoop™</h2> <p><a href="http://hadoop.apache.org">Apache™ Hadoop™</a> ist ein freies, in Java geschriebenes Framework für skalierbare, verteilt arbeitende Software. Es basiert auf dem bekannten <a href="http://de.wikipedia.org/wiki/MapReduce">MapReduce</a>-Algorithmus von Google Inc., sowie auf Vorschlägen des <a href="http://de.wikipedia.org/wiki/Google_File_System">Google-Dateisystems</a>. Hadoop wurde ursprünglich durch den Lucene-Erfinder <em>Doug Cutting</em> initiiert.</p> SQL Server Closeup #7: Internals Viewer SSMS Add-In https://draft.sascha-dittmann.de/posts/internals-viewer-ssms-add-in/ Mon, 28 Feb 2011 09:25:00 +0100 https://draft.sascha-dittmann.de/posts/internals-viewer-ssms-add-in/ <p>Vor einer Weile bin ich bei meinen SQL Server Internals Recherchen über ein nettes Tool mit dem Namen <strong>Internals Viewer</strong> gestolpert, dass ich in diesem Posting näher vorstellen möchte.</p> <p>In der aktuellen Version wurde die externe Applikation in das SQL Server Management Studio als Add-In integriert.<br> Nach der Installation erkennt man auf den ersten Blick &ldquo;nur&rdquo; ein weiteres Menü im SSMS:</p> <p><img src="https://storage.googleapis.com/cloud-blog/media/2011/02/SQLCloseup_007_01.png" alt="Internals Viewer Menü"></p> <p>Wenn man sich allerdings den Menüpunkt Allocation Map zu Gemüte führt, dann bekommt man, nachdem man sich zu einem SQL Server verbunden hat, eine grafische Übersicht über die Pages der ausgewählten Datenbank.</p> SQL Server Closeup #6: Ghost Data Records unter der Lupe https://draft.sascha-dittmann.de/posts/ghost-data-records-unter-der-lupe/ Sat, 26 Feb 2011 12:41:00 +0100 https://draft.sascha-dittmann.de/posts/ghost-data-records-unter-der-lupe/ <p>Nachdem in den letzten Postings der &ldquo;SQL Server Closeup&rdquo; Serie viel Theorie an der Reihe war, werden wir heute die Ghost Data Records einmal &ldquo;Live&rdquo; unter die Lupe nehmen.</p> <p>Hierzu benötigen wir natürlich als erstes eine Datenbank und eine Tabelle.</p> <p>Das Skript sieht hierfür wie folgt aus:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sql" data-lang="sql"><span class="line"><span class="cl"><span class="n">USE</span><span class="w"> </span><span class="p">[</span><span class="n">master</span><span class="p">]</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="k">GO</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="k">IF</span><span class="w"> </span><span class="n">DATABASEPROPERTY</span><span class="p">(</span><span class="s1">&#39;SQLServerCloseup&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;Version&#39;</span><span class="p">)</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k">BEGIN</span><span class="w"> </span><span class="k">ALTER</span><span class="w"> </span><span class="k">DATABASE</span><span class="w"> </span><span class="p">[</span><span class="n">SQLServerCloseup</span><span class="p">]</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">SINGLE_USER</span><span class="w"> </span><span class="k">WITH</span><span class="w"> </span><span class="k">ROLLBACK</span><span class="w"> </span><span class="k">IMMEDIATE</span><span class="p">;</span><span class="w"> </span><span class="k">DROP</span><span class="w"> </span><span class="k">DATABASE</span><span class="w"> </span><span class="p">[</span><span class="n">SQLServerCloseup</span><span class="p">];</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="k">END</span><span class="p">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="k">GO</span><span class="w"> </span><span class="k">CREATE</span><span class="w"> </span><span class="k">DATABASE</span><span class="w"> </span><span class="n">SQLServerCloseup</span><span class="p">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="k">GO</span><span class="w"> </span><span class="n">USE</span><span class="w"> </span><span class="p">[</span><span class="n">SQLServerCloseup</span><span class="p">];</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="k">GO</span><span class="w"> </span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="p">[</span><span class="n">dbo</span><span class="p">].[</span><span class="n">Produkte</span><span class="p">]</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="p">(</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">[</span><span class="n">ProduktID</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="nb">int</span><span class="p">]</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">[</span><span class="n">ProduktBezeichnung</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="nb">varchar</span><span class="p">](</span><span class="mi">50</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">CONSTRAINT</span><span class="w"> </span><span class="p">[</span><span class="n">PK_Produkte</span><span class="p">]</span><span class="w"> </span><span class="k">PRIMARY</span><span class="w"> </span><span class="k">KEY</span><span class="w"> </span><span class="n">CLUSTERED</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">(</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">[</span><span class="n">ProduktID</span><span class="p">]</span><span class="w"> </span><span class="k">ASC</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="p">)</span><span class="w"> </span></span></span></code></pre></div><p>Nachdem nun eine Tabelle zum Testen existiert, können Datensätze hinzugefügt und gelöscht werden.</p> SQL Server Closeup #5: Undokumentierter SQL Befehl DBCC PAGE https://draft.sascha-dittmann.de/posts/undokumentierter-sql-befehl-dbcc-page/ Wed, 23 Feb 2011 17:19:00 +0100 https://draft.sascha-dittmann.de/posts/undokumentierter-sql-befehl-dbcc-page/ <p>In diesem Posting möchte ich einen weiteren undokumentierten Befehl des SQL Servers vorstellen.<br> Heute ist der Befehl DBCC PAGE an der Reihe, mit dessen Hilfe man den Inhalt einer Page darstellen kann.</p> <p>Da standardmäßig der SQL Server die Ergebnisse des DBCC PAGE nicht an den Client sendet, muss vor dessen Verwendung das Trace Flag 3604 gesetzt werden, um dies zu ändern:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sql" data-lang="sql"><span class="line"><span class="cl"><span class="n">DBCC</span><span class="w"> </span><span class="n">TRACEON</span><span class="p">(</span><span class="mi">3604</span><span class="p">)</span><span class="w"> </span></span></span></code></pre></div><p>Da hierbei nichts gravierendes im SQL Server geändert wird, kann dieser Befehl auch auf Produktivsystemen angewendet werden.</p> SQL Server Closeup #4: Undokumentierter SQL Befehl DBCC IND https://draft.sascha-dittmann.de/posts/undokumentierter-sql-befehl-dbcc-ind/ Fri, 11 Feb 2011 18:13:00 +0100 https://draft.sascha-dittmann.de/posts/undokumentierter-sql-befehl-dbcc-ind/ <p>In den Tiefen des SQL Servers findet sich so mancher undokumentierter Befehl. Unter anderem gibt es eine Reihe von DBCC Befehlen, die einen Blick unter die Haube des SQL Servers erlauben.</p> <p>In diesem Posting möchte ich den SQL Befehl DBCC IND vorstellen, mit dessen Hilfe man einen Überblick über die Pages einer Datenbank ausgeben kann.</p> <p>Dieser Befehl gilt als Sicher und kann auch in Produktivumgebungen eingesetzt werden. Im Gegensatz zu anderen undokumentierten DBCC Befehlen, wie z.B. DBCC PAGE, muss bei DBCC IND nicht das Traceflag 3604 (Umleitung der Trace Ausgabe auf den Client) gesetzt werden, damit man eine Anzeige erhält.</p> SQL Server Closeup #3: Strukturen zur Speicherung von Daten – Speicherplatzverwaltung https://draft.sascha-dittmann.de/posts/strukturen-zur-speicherung-von-daten-speicherplatzverwaltung/ Thu, 10 Feb 2011 20:10:00 +0100 https://draft.sascha-dittmann.de/posts/strukturen-zur-speicherung-von-daten-speicherplatzverwaltung/ <p>Mit diesem Teil der &ldquo;SQL Server Closeup&rdquo; Serie schließe ich den Theorieteil der Strukturen zur Speicherung von Daten in der SQL Server Storage Engine ab.</p> <p>Heutiges Thema soll die Speicherplatzverwaltung, also das Allocation System, sein.</p> <h2 id="was-sind-extents">Was sind Extents</h2> <p>Extents sind ein logisches Konstrukt, dass 8 aufeinanderfolgende Pages gruppiert. Dies soll dazu dienen die Speicherverwaltung effizienter zu machen, indem auf den Speicherübersichtseiten (Allocation Bitmaps und Bytemaps), welche in regelmäßigen Intervallen angelegt werden, die Informationen pro Extent und nicht pro Page gespeichert werden.</p> SQL Syntax: @variable = column = expression https://draft.sascha-dittmann.de/posts/sql-syntax-variable-column-expression/ Wed, 02 Feb 2011 07:58:00 +0100 https://draft.sascha-dittmann.de/posts/sql-syntax-variable-column-expression/ <p>Fast jeder Datenbankentwickler hat bereits seine Erfahrungen mit Benutzerdefinierten Sequenzen, Künstlichen Schlüsseln (engl. Surrogate Keys) oder ähnlichen Mechanismen sammeln können.</p> <p>In solchen Fällen bekommt eine Spalte einen neuen Wert zugewiesen, und dieser Wert wird anschließend weiterverarbeitet.</p> <p>Dies möchte ich an folgenden Beispiel zeigen:</p> <ul> <li>In einer Lagerverwaltung soll der Bestand eines Artikels verändert werden können.</li> <li>Der neue Lagerbestand wird anschließend mittels Ausgabeparameter zurückgegeben.</li> </ul> <h1 id="der-klassische-lösungsansatz">Der klassische Lösungsansatz</h1> <p>Beim klassischen Lösungsansatz werden zwei SQL Befehle, die in einer expliziten Transaktion eingebettet sind, verwendet.</p> SQL Server Closeup #2: Strukturen zur Speicherung von Daten – Pages https://draft.sascha-dittmann.de/posts/strukturen-zur-speicherung-von-daten-pages/ Mon, 31 Jan 2011 16:45:00 +0100 https://draft.sascha-dittmann.de/posts/strukturen-zur-speicherung-von-daten-pages/ <p>Im den ersten Postings der &ldquo;SQL Server Closeup&rdquo; Serie möchte ich einen Überblick über die Strukturen zur Speicherung von Daten in der SQL Server Storage Engine geben.</p> <p>Im vorherigen Teil war das Thema Records an der Reihe. Hier wurden die verschiedenen Typen von Records sowie am Beispiel des Data Records die Struktur der Records beleuchtet. Dieses Mal werde ich mich dem Thema &ldquo;Pages&rdquo; widmen.</p> <h2 id="welche-typen-von-pages-gibt-es">Welche Typen von Pages gibt es?</h2> <h3 id="data-page">Data Page</h3> <p>Speichert ausschließlich Data Records.<br> Entweder als Heap oder als Blattknoten eines Index.</p> Anzahl der Tabellenzeilen schnell und einfach abfragen https://draft.sascha-dittmann.de/posts/anzahl-der-tabellenzeilen-schnell-und-einfach-abfragen/ Sun, 30 Jan 2011 13:21:00 +0100 https://draft.sascha-dittmann.de/posts/anzahl-der-tabellenzeilen-schnell-und-einfach-abfragen/ <h2 id="der-klassische-ansatz">Der klassische Ansatz</h2> <p>Die Fragestellung &ldquo;Wie viele Zeilen hat diese Tabelle&rdquo; taucht wohl bei jedem Entwickler immer mal wieder auf.</p> <p>Die Standardantwort lautet dann:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sql" data-lang="sql"><span class="line"><span class="cl"><span class="k">SELECT</span><span class="w"> </span><span class="k">COUNT</span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="k">FROM</span><span class="w"> </span><span class="p">[</span><span class="n">dbo</span><span class="p">].[</span><span class="n">Tabelle</span><span class="p">]</span><span class="w"> </span></span></span></code></pre></div><p>Allerdings können hierbei zwei Probleme auftreten:</p> <ol> <li>Der SQL Server muss zum Bearbeiten dieser Abfrage einen Table-Scan durchführen. Das kann bei Tabellen mit mehreren Millionen Datensätzen eine Weile dauern.</li> <li>Man kann mit dieser Abfrage nur jeweils eine Tabelle gleichzeitig abfragen. Was macht man aber, wenn man die Zeilenanzahl aller Tabellen einer Datenbank bestimmen möchte?</li> </ol> <p>Um das erste Problem zu lösen, kann man die Gespeicherte Prozedur sp_spaceused verwenden.<br> Ohne Parameter ausgeführt, zeigt diese den Speicherverbrauch der aktuellen Datenbank an.<br> Mit einem Tabellennamen als Parameter, wird der Speicherverbrauch der Tabelle inkl. Zeilenanzahl zurückgegeben.</p> SQL Server Closeup #1: Strukturen zur Speicherung von Daten – Records https://draft.sascha-dittmann.de/posts/strukturen-zur-speicherung-von-daten-records/ Tue, 11 Jan 2011 12:34:00 +0100 https://draft.sascha-dittmann.de/posts/strukturen-zur-speicherung-von-daten-records/ <p>Im den ersten Postings der &ldquo;SQL Server Closeup&rdquo; Serie möchte ich einen Überblick über die Strukturen zur Speicherung von Daten in der SQL Server Storage Engine geben. In diesem Teil werde ich mich dem Thema &ldquo;Records&rdquo; widmen.</p> <p>In dieser Serie werde ich oft die englischen Originalbegriffe verwenden bzw. mit angeben, um Übersetzungsfehler zu vermeiden und auch konsistent mit den Meldungen des SQL Servers zu sein.</p> <h2 id="ein-paar-grundbegriffe-vorab">Ein paar Grundbegriffe vorab</h2> <p>Zum besseren Verständnis möchte ich einige Begrifflichkeiten stark vereinfacht erklären, die im weiteren Verlauf dieser Serie detailierter beschrieben werden.</p> Neue Post-Serie: SQL Server Closeup https://draft.sascha-dittmann.de/posts/neue-post-serie-sql-server-closeup/ Mon, 03 Jan 2011 08:23:00 +0100 https://draft.sascha-dittmann.de/posts/neue-post-serie-sql-server-closeup/ <h2 id="neue-post-serie">Neue Post-Serie</h2> <p>Zum Start diesen Jahres, möchte ich eine Neuerung auf meinem Blog ankündigen:<br> In den nächsten Wochen und Monaten werde ich verstärkt die Interna des SQL Servers beleuchten.</p> <h2 id="warum-sollte-man-sich-mit-den-interna-des-sql-servers-auseinandersetzen">Warum sollte man sich mit den Interna des SQL Servers auseinandersetzen?</h2> <p>Es ist natürlich spannend, sich in neue Themen einzuarbeiten<br> Das Verständnis wie Daten vom SQL Server gespeichert, abgefragt und optimiert werden, …</p> <ul> <li>… bildet die Grundlage für eine performante und einfach verwaltbare Softwarearchitektur</li> <li>… erklärt warum manche Design-Entscheidungen schlecht sind</li> <li>… vereinfacht die Fehlersuche</li> </ul> <p>Somit wünschte ich nicht nur ein Frohes und Erfolgreiches Jahr 2011, sondern auch Viel Spaß beim Lesen der &ldquo;SQL Server Closeup&rdquo;-Serie!</p>