Posts

Showing posts from 2017

SQL Server In-Memory OLTP - max() vs. ident_current()

Image
Während eines Performance Driven Development Advanced Trainings kam eine interessante Fragestellung auf. Die Aufgabenstellung war einen einfachen lesenden Workload zu erzeugen, um die Geschwindigkeit von In-Memory OLTP zu testen. Folgender Code wurde vorgeschlagen: declare @max int select @max = max(id) from t1_old declare @i int = rand()*@max select * from t1_old where id >= @i and id <= @i+rand()*250 Sehr unverdächtig! Das offensichtliche Problem in der Where Clause lassen wir für den Moment mal unkommentiert. Das lösen wir weiter unten noch auf. Ich fand den Vorschlag ganz okay, da er echte Probleme der Qualität von T-SQL Code aufzeigte. Die physikalische Struktur hinter t1_old ist ein Clustered Index mit der ID als Clusterkey. Ein Test mit einer interaktiven Variante unseres Werkzeuges SQLPressure ergab, bei einer Steigerung von 20 Threads alle 5 Sekunden, dass sich der Workload bei 300 Threads mit einem Durchsatz von ungefähr 5000 einpendelt.

PSG Performance Driven Development für den SQL Server

In den letzten Monaten wurde ich häufig danach gefragt, was denn dieses Performance Driven Development (PSG PDD) eigentlich sei? Und welche Technologien wir damit meinen? In erster Linie verstehen wir unter der Performance Driven Development Methode weniger einen Technologie Ansatz, als vielmehr einen Rahmen an Maßnahmen, damit das Thema Performance im Laufe einer Software Entwicklung den Stellenwert er- und behält, welcher bei Projektstart als notwendig erachtet wurde. Entstanden ist die Idee zu der Methode u.a. aus dem Feedback unserer Schulungskunden. Es wurde uns zwar attestiert, dass die Teilnehmer unserer Workshops und Schulungen einen deutlichen Knowhow Fortschritt machen würden, dennoch wäre es für den einzelnen Entwickler immer wieder schwierig sei neues Wissen auch so einzusetzen, dass die Projekte bzw. Produkte davon wirklich partizipieren. Der Alltag von Entwicklern sei ja stark getrieben durch ein agiles geprägtes Umfeld und Stakeholder, für die diese grundlegenden t

Was ist eigentlich SQL Server Performance? Und überhaupt?

Neulich wurde ich gefragt, was ich denn die letzten Monate so gemacht hätte. Es wäre ja recht ruhig um mich herum geworden.Keine Sorge! Natürlich bin ich dem Microsoft SQL Server und der Data Platform treu geblieben, auch wenn ich wieder öfters über den Tellerrand blicken durfte. Womit habe ich mich also die letzten Monate so beschäftigt? Zum einen bin ich in letzter Zeit immer wieder jenseits der reinen Vermittlung von technischen Features unterwegs. Vielmehr zeigt sich, dass unsere Kunden davon profitieren, dass wir unsere Technologie- und Projekt-Erfahrung in vermittelbare Konzepte und Prinzipien überführt haben. Also neben dem “Was gibt es?” kommen wir im Rahmen unserer Methoden Schulungen immer häufiger auf das “Warum?” und “Wie im Team?” zu sprechen.  Zum anderen führen wir immer mehr Microsoft Kunden an die “neuen” Themen heran. Wir konzentrieren uns dabei zurzeit auf Azure IaaS und In-Memory OLTP. Wesentlich für uns ist dabei wiederum die Einsicht, dass die reine Vermittl