SQL Server Query Tuning mit Statistics Time und Statistics IO

Es gibt sehr viele Mittel und Wege die Leistung von SQL Server T-SQL Code zu optimieren. Doch wie kann man sich sicher sein, dass gewisse Änderungen den Code tatsächlich effizienter und schneller machen und nicht etwa das Gegenteil bewirken, den Code langsamer machen oder gar beschädigen? Natürlich kann die Ausführungszeit einer Abfrage überprüft werden, doch reicht dies wirklich aus, um festzustellen ob eine Verbesserung vorliegt? Ist eine Abfrage beispielsweise nach 1-2 Sekunden beendet, so reicht die Genauigkeit der Zeitangabe für eine tatsächliche Verifizierung einer Verbesserung nicht aus. Dinge wie Caching und Parallelität können die Statistik der Ausführungszeiten von Abfragen durchaus …

Weiterlesen …SQL Server Query Tuning mit Statistics Time und Statistics IO

Resumable Online Index Create and Rebuild Operations

Anders als beim SQL Server 2017, bei dem nur eine wiederaufnehmbare Online-Indexwiederherstellung durchgeführt werden kann, verfügt SQL Server 2019 über die Funktion Resumable Online Index Create. Doch wofür wird diese Funktion genau gebraucht? Angenommen, wir müssen einen Index für eine sehr große Tabelle mit über einer Millionen Zeilen erstellen. Das Erstellen dieses Index würde einige Zeit in Anspruch nehmen. Während der Erstellung des Index könnte ein unerwarteter Fehler auftreten, es könnte zu Leistungsproblemen oder einem Failover kommen, und die Anweisung zum Erstellen des Indexes muss abgebrochen werden. Dies würde sehr viel Zeit, Ressourcen und Nerven kosten, da der Index anschließend …

Weiterlesen …Resumable Online Index Create and Rebuild Operations

SQL Server Datenbanken Verschlüsselung unter der Beachtung der Datenschutz-Grundverordnung mit DbDefence

In diesem Beitrag wollen wir uns mit einem der wichtigsten, aber oft außer Acht gelassenem, Thema der Informatik widmen, dem Datenschutz. 90% aller Daten dieser Welt sind in den letzten zwei Jahren entstanden und es werden jeden Tag mehr und mehr. In einer Zeit, in der das Wachstum einer gigantischen Ansammlung an Daten, die meistens unternehmenskritische Informationen enthalten, kein Ende kennt und sich stetig fortsetzt, ist der Schutz dieser Daten von essenzieller Bedeutung. Aus diesem Grund hat die Europäische Union die sogenannte Datenschutz-Grundverordnung (DSGVO) erlassen, die ab dem 25. Mai 2018 angewendet wird. Bei der DSGVO handelt es sich um …

Weiterlesen …SQL Server Datenbanken Verschlüsselung unter der Beachtung der Datenschutz-Grundverordnung mit DbDefence

Log Shipping für SQL Server auf Linux

Wir stellen uns ein Szenario vor, in dem wir über eine SQL Server Instanz auf einem Linux Centos 7 Server verfügen. Ist es nun möglich, eine Disaster Recovery Solution einzurichten, mit der wir Backups auf einer sekundären Instanz automatisch wiederherstellen können? Die Antwort lautet: Ja! Und genau darum geht es in diesem Beitrag. Wir wollen uns anhand eines praktischen Beispiels genau anschauen, wie wir innerhalb einer Linux Centos 7 Umgebung eine solche Disaster Recovery Solution konfigurieren können. Wofür das alles? Um zu überprüfen, ob eine Datenbank Sicherung einwandfrei funktioniert oder gar beschädigt ist, bleibt uns als einzige Möglichkeit, die Sicherung …

Weiterlesen …Log Shipping für SQL Server auf Linux

Windows Authentifizierung für SQL Server auf Ubuntu 18.04

In diesem Beitrag wollen wir uns anhand eines praktischen Beispiels anschauen, wie wir einen Ubuntu 18.04 Server in eine Micosoft Active Directory Domäne hinzufügen und anschließend SQL Server für die Active Directory Authentifizierung konfigurieren können. Wir verwenden hierfür einen frischen Ubuntu 18.04 Server und einen Windows Server 2019, der uns als Domain Controller dient und uns die Domäne madafa.local bereitstellt.   Um nun erfolgreich eine Active Directory Authentifizierung für einen SQL Server auf unserer Ubuntu Maschine zu konfigurieren, werden wir: den Ubuntu 18.04 der Domäne madafa.local hinzufügen, einen SQL Server auf unserer Ubuntu Maschine installieren, ein Key Tab File für …

Weiterlesen …Windows Authentifizierung für SQL Server auf Ubuntu 18.04

SQL Server mit Kubernetes auf Linux (Teil 2)

Wir haben erfolgreich einen SQL Server Container auf Linux bereitgestellt, der in einem Pod auf Kubernetes ausgeführt wird. Den Pod haben wir mithilfe eines Service verfügbar gemacht. Dies ist für den Anfang auch nicht schlecht, allerdings können wir noch persistenten Speicher für unsere Daten bereitstellen. Weiterhin könnten wir mittels YAML ein “geheimes” Objekt erstellen, das unser Datenbank Passwort speichert. In diesem Folgebeitrag wollen wir also unsere bisheriges Kubernetes Setup-Kenntnisse um die eben genannten Features erweitern. Persistenter Speicher Als Erstes wollen wir uns um den persistenten Speicher für unsere Daten kümmern. Hierfür verwenden wir ein von Kubernetes bereitgestelltes Objekt namens Persistent …

Weiterlesen …SQL Server mit Kubernetes auf Linux (Teil 2)

SQL Server mit Kubernetes auf Linux (Teil 1)

In diesem Beitrag wollen wir uns mit der Bereitstellung von SQL Server in Kombination mit Kubernetes auf einem Ubuntu Server auseinandersetzen. Hierfür wollen wir anhand eines praktischen Beispiels zwei Kubernetes Objekte, einen Pod und einen SQL Server Service erstellen. Haben wir das alles auf einem Cluster zum Laufen gebracht, werden wir uns mittels des Azure Data Studios mit diesem verbinden. Als Umgebung werden wir einen Ubuntu 18.04 Server mit MicroK8s verwenden. MicroK8s installieren und Konfigurieren Bevor wir mit der Bereitstellung unseres Kubernetes Clusters beginnen können, müssen wir zunächst MicroK8s installieren und konfigurieren. Bei MicroK8s handelt es sich um eine zertifizierte …

Weiterlesen …SQL Server mit Kubernetes auf Linux (Teil 1)

SQL Server Hochverfügbarkeitsgruppen mit Ubuntu

In diesem Beitrag wollen wir uns einmal anschauen, wie sich mithilfe von Pacemaker Cluster eine SQL Server Hochverfügbarkeitsgruppe auf Ubuntu 18.04 konfigurieren lässt. Hierfür erstellen wir ein Cluster aus 3 Knoten, wobei jeder Knoten ein eigener Ubuntu 18.04 Server ist. Zur Übersicht hier einmal die Nodes mit ihrem Computernamen und ihrer virtuellen IP: UBSQL01 – 172.17.1.69 UBSQL02 – 172.17.1.72 UBSQL03 – 172.17.1.74 Nachdem wir unsere 3 Ubuntu Maschinen erfolgreich erstellt haben, wollen wir als Erstes überprüfen, ob wir uns von UBSQL01 mit UBSQL02 und UBSQL03 via ssh verbinden können. Hierfür loggen wir uns zunächst auf UBSQL01 ein und verbinden uns …

Weiterlesen …SQL Server Hochverfügbarkeitsgruppen mit Ubuntu

Datenbanken reparieren mit CheckDB – Teil 2

In diesem Beitrag wollen wir uns noch einmal mit dem DBCC CHECKDB Kommando beschäftigen und untersuchen, wie sich REPAIR_ALLOW_DATA_LOSS im Falle einer einzelnen beschädigten Zeile verhält. Existiert beispielsweise aufgrund eines Seiten-CHECKSUM-Fehlers eine beschädigte Zeile in einer Datenbank und wir reparieren diese mit REPAIR_ALLOW_DATA_LOSS, würden wir hier nur die beschädigte Zeile, oder gar noch mehr Daten verlieren? Der Datenverlust von CHECKDB mit REPAIR_ALLOW_DATA_LOSS kann, abhängig von der Art der Beschädigung, unterschiedlich stark variieren. Im Falle eines CHECKSUM-Fehlers, verursacht durch eine einzelne beschädigte Zeile, wird bei einer Reparatur, die Datenverlust zulässt, dennoch die gesamte Datenseite freigegeben. CHECKSUM selbst wird auf Seitenebene und …

Weiterlesen …Datenbanken reparieren mit CheckDB – Teil 2