<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SQL Maniak</title><link>https://sqlmaniak.blog/de/</link><description>Recent content on SQL Maniak</description><generator>Hugo</generator><language>de-DE</language><lastBuildDate>Wed, 04 Nov 2026 08:00:00 +0100</lastBuildDate><atom:link href="https://sqlmaniak.blog/de/index.xml" rel="self" type="application/rss+xml"/><item><title>Tabellen ohne Ausfallzeit zusammenführen: Wenn aus zwei Datenmodellen eines wird</title><link>https://sqlmaniak.blog/de/posts/tabellen-zusammenfuehren-ohne-ausfallzeit/</link><pubDate>Wed, 04 Nov 2026 08:00:00 +0100</pubDate><guid>https://sqlmaniak.blog/de/posts/tabellen-zusammenfuehren-ohne-ausfallzeit/</guid><description>&lt;p&gt;Eine Tabelle aufzuteilen ist eine Richtung der Schema-Evolution. Manchmal möchten wir nach Jahren den umgekehrten Weg gehen: mehrere Strukturen in einem gemeinsamen Modell zusammenführen.&lt;/p&gt;&#10;&lt;h2 id="beispiel"&gt;Beispiel&lt;/h2&gt;&#10;&lt;p&gt;Wir haben:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;RetailCustomer&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;BusinessCustomer&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;Und möchten zu folgendem Modell wechseln:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Customer&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="das-neue-modell"&gt;Das neue Modell&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dbo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CustomerV2&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;CustomerId&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;bigint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NOT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;PRIMARY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;CustomerType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;varchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NOT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;DisplayName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;nvarchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NOT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;TaxId&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;nvarchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="zuerst-die-semantik-zuordnen"&gt;Zuerst die Semantik zuordnen&lt;/h2&gt;&#10;&lt;p&gt;Eine Zusammenführung ist nicht einfach nur ein &lt;code&gt;UNION ALL&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Eine Tabelle ohne Big Bang aufteilen: Aus einem Datenmodell werden zwei</title><link>https://sqlmaniak.blog/de/posts/tabelle-aufteilen-ohne-big-bang/</link><pubDate>Wed, 28 Oct 2026 08:00:00 +0100</pubDate><guid>https://sqlmaniak.blog/de/posts/tabelle-aufteilen-ohne-big-bang/</guid><description>&lt;p&gt;Nehmen wir an, dass die Tabelle &lt;code&gt;Customer&lt;/code&gt; im Laufe der Jahre auf mehrere Dutzend Spalten angewachsen ist.&lt;/p&gt;&#10;&lt;p&gt;Einen Teil der Adressdaten möchten wir in eine eigene Tabelle auslagern.&lt;/p&gt;&#10;&lt;h2 id="die-neue-tabelle"&gt;Die neue Tabelle&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dbo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CustomerAddress&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;CustomerId&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NOT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;AddressType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;varchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NOT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;AddressLine1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;nvarchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NOT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;City&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;nvarchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NOT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PostalCode&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;nvarchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;CONSTRAINT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PK_CustomerAddress&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;PRIMARY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CustomerId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;AddressType&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="schritt-1--die-neue-struktur-ergänzen-ohne-die-alte-zu-entfernen"&gt;Schritt 1 — Die neue Struktur ergänzen, ohne die alte zu entfernen&lt;/h2&gt;&#10;&lt;p&gt;Die bisherigen Spalten bleiben bestehen. Die neue Tabelle erweitert zunächst das Datenmodell.&lt;/p&gt;</description></item><item><title>Kontakt</title><link>https://sqlmaniak.blog/de/contact/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sqlmaniak.blog/de/contact/</guid><description>&lt;h2 id="nachricht-senden"&gt;Nachricht senden&lt;/h2&gt;&#10;&lt;p&gt;Über dieses Formular können Sie Fragen zu SQL Server, technischen Themen, Schulungen oder Beratung stellen.&lt;/p&gt;&#10;&lt;form class="contact" action="https://formspree.io/f/mzzjpewn" method="POST"&gt;&#10; &lt;input type="hidden" name="_subject" value="Neue Nachricht von SQLManiak (DE)"&gt;&#10; &lt;input type="text" name="_gotcha" style="display:none" tabindex="-1" autocomplete="off" aria-hidden="true"&gt;&#10; &lt;label&gt;Name&#10; &lt;input type="text" name="name" autocomplete="name" required&gt;&#10; &lt;/label&gt;&#10; &lt;label&gt;E-Mail&#10; &lt;input type="email" name="_replyto" autocomplete="email" required&gt;&#10; &lt;/label&gt;&#10; &lt;label&gt;Nachricht&#10; &lt;textarea name="message" rows="6" required&gt;&lt;/textarea&gt;&#10; &lt;/label&gt;&#10; &lt;p class="meta"&gt;Das Kontaktformular wird über Formspree verarbeitet. Beachten Sie die &lt;a href="https://sqlmaniak.blog/polityka-prywatnosci/" lang="pl" hreflang="pl"&gt;Datenschutzerklärung (auf Polnisch)&lt;/a&gt; sowie die &lt;a href="https://formspree.io/legal/privacy-policy/"&gt;Datenschutzerklärung von Formspree&lt;/a&gt;. Bitte senden Sie keine Passwörter oder vertraulichen Daten.&lt;/p&gt;&#10; &lt;button type="submit"&gt;Nachricht senden&lt;/button&gt;&#10;&lt;/form&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Sie erreichen mich auch über:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;💼 &lt;a href="https://www.linkedin.com/in/sqlmaniak"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;💻 &lt;a href="https://github.com/marcinpytlik/SQLManiak"&gt;GitHub&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;style&gt;&#10;form.contact{max-width:640px;padding:1rem;background:var(--card);border:1px solid var(--border);border-radius:12px}&#10;form.contact label{display:block;margin-bottom:.6rem}&#10;form.contact input,form.contact textarea{width:100%;padding:.6rem;border:1px solid var(--border);border-radius:8px;background:inherit;color:inherit}&#10;form.contact button{margin-top:.8rem;padding:.55rem 1rem;border-radius:8px;border:1px solid var(--border);cursor:pointer;background:var(--accent);color:#000}&#10;&lt;/style&gt;</description></item><item><title>Leistungen und Schulungen</title><link>https://sqlmaniak.blog/de/leistungen/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sqlmaniak.blog/de/leistungen/</guid><description>&lt;section class="offer-hero"&gt;&#10;&lt;p class="offer-eyebrow"&gt;SQL Server · .NET · Azure · PowerShell · Monitoring · Beratung und Schulungen&lt;/p&gt;&#10;&lt;h2&gt;Praxisorientierte technische Unterstützung für SQL Server und angrenzende Technologien&lt;/h2&gt;&#10;&lt;p class="offer-lead"&gt;Ich arbeite mit bestehenden Produktionsumgebungen, in denen Verfügbarkeit, vorhersehbare Betriebsabläufe und fundierte Entscheidungen wichtig sind. Dazu gehören Konfigurationsprüfungen, die Analyse technischer Probleme und umsetzbare Empfehlungen. Außerdem biete ich praxisorientierte technische Schulungen an.&lt;/p&gt;&#10;&lt;div class="offer-actions"&gt;&#10;&lt;a class="offer-button offer-button--primary" href="https://www.malt.com/profile/marcinpytlik" target="_blank" rel="noopener noreferrer"&gt;Mein Malt-Profil&lt;/a&gt;&#10;&lt;a class="offer-button offer-button--secondary" href="https://sqlmaniak.blog/de/contact/"&gt;Direkt Kontakt aufnehmen&lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;/section&gt;&#10;&lt;h2 id="beratung-und-assessments"&gt;Beratung und Assessments&lt;/h2&gt;&#10;&lt;section class="offer-section"&gt;&#10;&lt;div class="offer-grid"&gt;&#10;&lt;article class="offer-card"&gt;&#10;&lt;p class="offer-card__eyebrow"&gt;01 · Performance&lt;/p&gt;&#10;&lt;h3&gt;SQL Server Health Check &amp; Performance Review&lt;/h3&gt;&#10;&lt;p&gt;Analyse von Performance, Konfiguration und möglichen Engpässen in SQL Server.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Wait Statistics, CPU, I/O und Arbeitsspeicher&lt;/li&gt;&#10;&lt;li&gt;Query Store, Ausführungspläne und aufwendige Abfragen&lt;/li&gt;&#10;&lt;li&gt;Indizes, Statistiken, tempdb, Blocking und Deadlocks&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p class="offer-result"&gt;&lt;strong&gt;Ergebnis:&lt;/strong&gt; Diagnose und priorisierte Handlungsempfehlungen.&lt;/p&gt;&#10;&lt;/article&gt;&#10;&lt;article class="offer-card"&gt;&#10;&lt;p class="offer-card__eyebrow"&gt;02 · Hochverfügbarkeit&lt;/p&gt;&#10;&lt;h3&gt;High Availability &amp; FCI Review&lt;/h3&gt;&#10;&lt;p&gt;Bewertung der Hochverfügbarkeitsarchitektur und der Betriebsprozesse.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Failover Cluster Instances, Windows Server Failover Clustering und Availability Groups&lt;/li&gt;&#10;&lt;li&gt;Quorum, Storage, Netzwerk, Dienstkonten und Patching&lt;/li&gt;&#10;&lt;li&gt;Failover-Prozesse, Single Points of Failure und Betriebsrisiken&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p class="offer-result"&gt;&lt;strong&gt;Ergebnis:&lt;/strong&gt; technische und betriebliche Empfehlungen zur Hochverfügbarkeit.&lt;/p&gt;&#10;&lt;/article&gt;&#10;&lt;article class="offer-card"&gt;&#10;&lt;p class="offer-card__eyebrow"&gt;03 · Wiederherstellung&lt;/p&gt;&#10;&lt;h3&gt;Backup, Recovery &amp; Disaster Recovery Assessment&lt;/h3&gt;&#10;&lt;p&gt;Prüfung, ob Backup- und Recovery-Prozesse die geschäftlichen Wiederherstellungsziele erfüllen können.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;FULL-, DIFF- und LOG-Backups, Aufbewahrung und Kontinuität der Log-Backup-Kette&lt;/li&gt;&#10;&lt;li&gt;RPO/RTO-Ziele und Restore-Tests&lt;/li&gt;&#10;&lt;li&gt;Integritätsprüfungen, Wiederherstellungsszenarien und Monitoring&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p class="offer-result"&gt;&lt;strong&gt;Ergebnis:&lt;/strong&gt; Bewertung des Wiederherstellungsplans und dokumentierte Lücken und Risiken.&lt;/p&gt;&#10;&lt;/article&gt;&#10;&lt;/div&gt;&#10;&lt;/section&gt;</description></item><item><title>Über mich</title><link>https://sqlmaniak.blog/de/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sqlmaniak.blog/de/about/</guid><description>&lt;h2 id="hallo-ich-bin-marcin-"&gt;Hallo, ich bin Marcin 👋&lt;/h2&gt;&#10;&lt;p&gt;Ich arbeite als DBA und Engineer mit &lt;strong&gt;SQL Server 2016–2022&lt;/strong&gt;. Zu meinen Themen gehören Query Store, Extended Events, Always On, Performance-Tuning und Sicherheit.&lt;/p&gt;&#10;&lt;p&gt;Besonders interessieren mich Monitoring mit Grafana, InfluxDB und Telegraf, die Automatisierung administrativer Aufgaben mit PowerShell und die Weitergabe von praxisorientiertem Fachwissen.&lt;/p&gt;&#10;&lt;h3 id="was-sie-auf-diesem-blog-finden"&gt;Was Sie auf diesem Blog finden&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;📊 Praxisbeispiele zu DMVs, Extended Events und Query-Tuning&lt;/li&gt;&#10;&lt;li&gt;🛡️ Sicherheitschecklisten und bewährte Vorgehensweisen&lt;/li&gt;&#10;&lt;li&gt;🔧 Dashboards und Skripte zum Herunterladen&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="technische-umgebung"&gt;Technische Umgebung&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;🔧 Produktion und Labor: Windows Server 2022, SQL Server 2022 Developer, Docker Desktop&lt;/li&gt;&#10;&lt;li&gt;📊 Monitoring: InfluxDB 2.x, Telegraf, Grafana&lt;/li&gt;&#10;&lt;li&gt;🧰 Werkzeuge: VS Code, PowerShell, GitHub Actions&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="kontakt"&gt;Kontakt&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;📧 &lt;a href="mailto:marcin.pytlik@pracowniait.com"&gt;marcin.pytlik@pracowniait.com&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;💼 &lt;a href="https://www.linkedin.com/in/sqlmaniak"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;💻 &lt;a href="https://github.com/marcinpytlik/SQLManiak"&gt;GitHub&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Wenn ein Artikel Dateien zum Herunterladen enthält, finden Sie diese im Abschnitt &lt;strong&gt;Downloads&lt;/strong&gt; am Ende des Artikels.&lt;/p&gt;</description></item></channel></rss>