Automatisiertes T-SQL Unit Testing mit Jenkins, Docker tSQLt und dem JUnit Plugin

In den vorausgehenden Artikel zu Jenkins, Docker und SQL Server haben wir uns bisher ausschließlich drauf beschränkt. In dem heutigen Artikel werden wir unsere multi-branch Pipeline mit zwei simplen tSQLt unit tests erweitern. Der einzige Unterschied zur Vorgehensweise des vorherigen Artikels ist, dass wir dieses Mal zusätzlich das JUnit Plugin für Jenkins benötigen. Auch hier werden wir wieder das SQL Server 2017 Linux Image verwenden. Dabei kommt es leider zum Konflikt, da Linux nur mit Baugruppen kompatibel ist, die als SICHER (engl. SAFE) gekennzeichnet sind. tSQLt ist das nicht. Um die beiden Bausteine also trotzdem miteinander verwenden zu können, muss …

Weiterlesen …Automatisiertes T-SQL Unit Testing mit Jenkins, Docker tSQLt und dem JUnit Plugin

SQL Server & Docker: Volume Backup und Wiederherstellung

In diesem Artikel möchten wir das Erstellen und Wiederherstellen des Backups eines Docker Volumens das von einer SQL Server Installation genutzt wird, betrachten. Stellen wir uns zunächst folgende Ausgangssituation vor: Auf einem Docker Container läuft ein MS SQL Server 2017, der auf einem Volumen benötigte Daten gespeichert hat. Dieses Volumen, oder viel mehr die Daten auf diesem Volumen, sind persistent. Das bedeutet, dass auch nach einem Neustart des Containers die gespeicherten Informationen noch vorhanden sind. Tipp: Sollen die gespeicherten Daten nach einem Neustart verschwinden, kann auf folgende Weise die “-v” Flagge genutzt werden: docker-compose down -v. Hier die zur Situation zugehörige …

Weiterlesen …SQL Server & Docker: Volume Backup und Wiederherstellung

SQL Datenbanken reparieren mit DBCC CHECKDB

In diesem kurzen Beitrag wird das Database Console Command (DBCC) CheckDB Kommando für SQL Server umfassend erklärt und dessen Funktion an einem kleinen praktischen Beispiel verdeutlicht. Zunächst stellt sich die Frage: um was handelt es sich bei diesem Kommando genau? Das DBCC CECKDB Kommando dient dazu, Dinge wie die logische Integrität von Datenbankenobjekten, Indexbeziehungen und viele andere Strukturprüfungen durchzuführen und zu evaluieren. Schlägt eine dieser Überprüfungen fehl, wird dies auf der Datenbankkonsole ausgeben. Der beste Weg, um nun einen von DBCC CHECKDB gemeldeten Fehler zu beheben, besteht darin, die letzte bekannte gute Sicherung auszuführen. Ist diese jedoch nicht vorhanden oder …

Weiterlesen …SQL Datenbanken reparieren mit DBCC CHECKDB

SQL Server 2019 – Neuerungen in der Übersicht

Mit der Veröffentlichung von SQL Server 2019 feiert Microsoft das 25-jährige Jubiläum des relationalen Datenbankenmanagementsystems (RDMS). In diesem Artikel möchten wir Ihnen die Änderungen der jüngsten Veröffentlichung erklären. Das größte Augenmerk des Releases liegt vermutlich auf dem neuen Umgang bezüglich der Kompatibilität von SQL Servern mit verschiedenen Betriebssystemen und Programmiersprachen. Doch neben zahlreichen anderen Änderungen, hat auch die in SQL Server 2016 veröffentlichte PolyBase Neuerungen zu verzeichnen. Im Bezug auf Performanz und Sicherheit macht Microsoft seine Vorteile deutlich: SQL Server 2019 wird sowohl im Bezug auf OLTP Performanz basierend auf TPC-Benchmarks, als auch im Bezug auf Data-Warehousing basierend auf TPC-H-Benchmarks …

Weiterlesen …SQL Server 2019 – Neuerungen in der Übersicht

Die richtige Verwendung der In-Memory Optimized TempDB in SQL Server 2019

Mit der Veröffentlichung von SQL Server 2019 führt Microsoft eine ganze Reihe neuer Features und Verbesserungen ein. Eine dieser Erneuerungen ist die In-Memory Optimized TempDB. Die In-Memory-Datenbanktechnologie wurde erstmals mit SQL Server 2014 eingeführt. Sie erlaubt es, Daten direkt in den Arbeitsspeicher (RAM) abzulegen statt diese auf einer herkömmlichen Festplatte zu speichern. Dadurch lassen sich wesentlich höhere Zugriffsgeschwindigkeiten realisieren. Allerdings fallen hierdurch deutlich höhere Kosten an, da RAM als Festplattenspeicher erheblich teurer ist, was sich vor allem bei größeren Datenbanken bemerkbar macht. Als Teil der In-Memory Database führt Microsoft in SQL Server 2019 die Memory-Optimized TempDB ein. Die TempDB selbst …

Weiterlesen …Die richtige Verwendung der In-Memory Optimized TempDB in SQL Server 2019

Adaptive Abfrage Verarbeitung in SQL Server 2017

Mit der Veröffentlichung des SQL Servers 2017 wurden grundlegende Änderungen durchgeführt. Und obwohl ein Großteil der Arbeitszeit in die Entwicklung einer SQL Server Version, die auf verschiedenen Linux Distributionen genutzt werden kann, gibt es zusätzlich einige neue interessante Themen und Features. In dem heutigen Artikel wollen wir die adaptive Abfragen-Verarbeitung betrachten. Um die Verarbeitung von Abfragen zu verbessern, wird vor der Ausführung der Abfrage im Rahmen der Optimierung versucht, die Kardinalität (also die Ranggröße) der einzelnen Schritte des Ausführungsplans zu schätzen. Diese Information (falls akkurat genug geschätzt) kann dazu verwendet werden, beispielsweise die Ausführungsreihenfolge der Operationen anzupassen. Gelingt es jedoch …

Weiterlesen …Adaptive Abfrage Verarbeitung in SQL Server 2017

Automatisierte Plan Korrektur in SQL Server 2017

Mit der Veröffentlichung des SQL Servers 2017 wurden grundlegende Änderungen durchgeführt. Und obwohl ein Großteil der Arbeitszeit in die Entwicklung einer SQL Server Version, die auf verschiedenen Linux Distributionen genutzt werden kann, gibt es zusätzlich einige neue interessante Themen und Features. In diesem Artikel möchten wir die automatische Plan Korrektur betrachten. Sie ist eine Funktion zur Optimierung der Auswahl der Ausführungspläne. Bei Auftreten eines Problems wird dieses automatisch erkannt und durch das Erzwingen der Ausführung des letzten bekannten guten Plans behoben. Der SQL Server kann verschiedene Ausführungspläne zum Umsetzten der T-SQL-Abfragen verwenden. Dabei gibt es Unterschiede zwischen den Plänen basierend …

Weiterlesen …Automatisierte Plan Korrektur in SQL Server 2017

Beschleunigte Datenbank Wiederherstellung (ADR) mit SQL Server 2019

Mit dem SQL Server 2019 wurde von Microsoft ein neues Feature mit dem Namen ADR (Accelerated Database Recovery) vorgestellt. Eigentlich handelt es sich dabei nicht um ein neues Feature, sondern viel mehr um die Überarbeitung der Wiederherstellungs-Mechanismen, wie man sie aus den Vorgängerversionen kennt. Eine neue Komponente mit dem Namen Persistenter Versionsspeicher (PVS) wird benutzt, um Zeilen nach Änderungen über einen längeren Zeitraum noch verfügbar zu machen. In Verbindung mit sog. logischer Wiederherstellung kann die Transaktionsverarbeitung erheblich beschleunigt werden. Zusätzlich sorgt ein neuer sLog (eng. secondary log stream, also ein sekundärer Protokolldatenstrom) dafür, dass Wartezeiten im Prozess der Transaktionsverarbeitung verkürzt …

Weiterlesen …Beschleunigte Datenbank Wiederherstellung (ADR) mit SQL Server 2019

Java ausführen mit SQL Server 2019

Dank der Spracherweiterungen (engl. Language Extensions) des SQL Servers 2019 ist es möglich, externe Programme über den SQL Server ausführen zu lassen. In einem unserer vorherigen Artikel (hier) haben wir bereits beschrieben was Spracherweiterungen sind und was sie für den Umgang mit SQL Server 2019 bedeuten. In diesem Artikel betrachten wir die zu treffenden Vorkehrungen, um mit Hilfe einer solchen Spracherweiterung und Java ein simples “Hello World!”-Programm auf dem SQL Server auszuführen. Die zu dieser Anleitung gehörigen Quelldateien sind auch auf unserer Github-Seite zu finden. Voraussetzung: Um die Spracherweiterung auf dem SQL Server nutzen zu können, wird eine Installation der …

Weiterlesen …Java ausführen mit SQL Server 2019