#1 Powerplan – SQL Server konfigurieren mit Powershell

Ich möchte in den folgenden Beiträgen auf meine Erfahrung bzw meinen Umstieg auf die Konfiguration des SQL Servers mittels Powershell eingehen und einige Beispiele (hier zum Beispiel den Powerplan) präsentieren. Es kommt immer wieder vor, dass wir verschiedenste Ausprägungen des SQL Server installieren sollen, eines haben aber alle im Grunde genommen gemeinsam… eine auf den Best-Practices beruhende Grundkonfiguration. Diese muss auf jedem SQL Server ausgerollt werden, damit dieser performant läuft. Bisher haben wir das immer manuell oder mit T-SQL gemacht, nun wird es aber Zeit diese Methode umzustellen auf eine etwas einfachere bzw zentralere Variante. Die Konfiguration des SQL Servers mit Powershell sowie ich es hier vorstelle, muss nicht für jede Umgebung passen, seht es bitte nur als Leitfaden an. Des Weiteren werde ich hier nur auf meine „Snippets“ eingehen und nicht mein ganzes Skript vorstellen, es gehört natürlich ein gewisser Powershell Rahmen (Synopsis, Hilfe etc) um das Snippet, damit es überall von jedem ausgeführt werden kann.

Powershell against “Balanced” Powerplan

Seit dem Windows 2008R2 Betriebssystem werden die Power Pläne immer mit dem Default-Powerplan „Balanced“ ausgerollt, dies kann aber unter Umständen zu starken Performance-Einbussen führen. Bei der Ausführung von einfachen Skripten oder Programmen ist die Wahrscheinlichkeit der Performance-Reduzierung eher sehr gering, allerdings je komplexer die auszuführenden Anwendungen sind, desto mehr die Server-Ressourcen genutzt werden müssen, desto mehr wird man die Nachteile des „Balanced“-Modes spüren. Im Balance-Powerplan wird zum Beispiel die Taktung des Prozessors und die Energieaufnahme der einzelnen Kerne reduziert, dadurch kann die Leistung der CPU nicht voll genutzt werden. Erst wenn man den Powerplan umkonfiguriert auf „High Performance“ kommt man in den Genuss der vollen CPU-Leistung.

Windows Server Powerplan für mehr Performance anpassen

Nun kann man sich lange durch die Einstellungen der Power Optionen des Windows Betriebssystemes klicken:

1. Start => Control Panel
2. Control Panel => Power Options (notfalls das Wort „Power“ in das Suchfeld eingeben)
3. Per default ist die Auswahl der einzelnen Powerpläne disabled, man muss also erst auf den Link „Change settings that are currently unavailable“ klicken.
4. Nun kann man den Powerplan „High Performance“ auswählen.
5. Power Option Fenster schliessen

Man könnte dies aber – wie der Beitragstitel andeutet – auch mit Powershell ändern, dies vereinfacht bei Wiederholungen die Änderung am jeweiligen Server.

function SetPowerPlan([string]$PreferredPlan) 
{ 
    Try
    {
        Write-Host "Setting Powerplan to $PreferredPlan" 
        $HighPerf = powercfg -l | %{if($_.contains("High performance")) {$_.split()[3]}}
        $CurrPlan = $(powercfg -getactivescheme).split()[3]
        if ($CurrPlan -ne $HighPerf) {powercfg -setactive $HighPerf}
    } 
    Catch
    {
        Write-Host "Setting the value of powerplan properties failed." -ForegroundColor Red
    }
}

Man muss zwar den leichten Umweg über die „Kommandozeile“ nehmen, diese lässt sich mit Powershell aber recht einfach „auslesen“ und weiter verarbeiten bzw manipulieren.
Also erst die ID des „High Performance“ Powerplan ermitteln, dann auch die ID des aktuellen Powerplans, beide IDs miteinander vergleichen, bei Anweichungen wird über die powercfg.exe der neue Powerplan aktiviert.

Wie ich mittlerweile gelernt habe… typisch Powershell… kurz, einfach und wirksam 😉
Ich kann nur jedem empfehlen sich mit Powershell für den SQL Server zu beschäftigen, in den nächsten Beiträgen werde ich noch einige Snippets veröffentlichen.

Morgen finden erst einmal die Pre-Cons im Rahmen des SQLSaturday München #555 statt, auch hier werde ich wieder viel zum Thema Automatisierung auf SQL Servern mittels Powershell erfahren. Garantiert wieder mit vielen neuen Ideen für weitere Anwendungen von Powershell im täglichen Einsatz.

Powershell meets SQL Server – Backup einer Remote Datenbank

Auf dem SQLSaturday #525 in St. Augustin hatte ich bereits das Vergnügen Andre Kamann zu lauschen, was er alles mit Powershell und dem SQL Server anstellt, meinen zweiten Kontakt zu Andre hatte ich jetzt beim SQLGrillen in Lingen, bei dem er uns die wesentliche Vereinfachung eines Rollouts des Ola Hallengren Skriptes näher brachte. Irgendwie hat mich diese „Vereinfachung“ inspiriert… ich bin eigentlich auch eher ein „fauler Hund“ und versuche mir mit Tools, Skripten  oder eigenen unterstützenden Webseiten das DBA Leben zu erleichtern. Heute kam dann ein Ticket zu mir, bei dem es um ein einfaches Backup einer Datenbank ging, der Kunde hat Probleme mit seiner Applikation und möchte nun eine Kopie der Datenbank an den Software-Hersteller schicken. Solche Aufgaben haben wir immer wieder, daher dachte ich heute morgen an Andre und seine Powershell-Skripte.
Viele werden jetzt sagen, so ein Backup ist doch recht einfach => entweder auf den Server per RDP oder von seiner Workstation mit dem SQL Server Management Studio verbinden, dann die Datenbank auswählen und mit der rechten Maus „Tasks => Backup => …“ Klar das geht, ABER da wir hier meistens über Citrix Steppingsstones oder Admingates in die Kundennetze müssen, erleichtert es uns die Arbeit schon um einiges, wenn wir den einen oder anderen Hop reduzieren können.

Mein Powershell-Template

Da dies meine ersten Schritte mit Powershell-Skripten sind, musste ich mich erst damit auseinandersetzen, wie man am besten ein solches Powershell Skript strukturell aufbaut. Hierzu habe ich auf diesen Powershell Blogs gelesen und keinen „Standard“ ausfindig machen können, aber überall konnte ich mir ein wenig abschauen und somit einen „ersten Wurf“ eines Powershell Skript Templates erstellen. Natürlich muss sich dieser noch in der täglichen Arbeit bewähren und eventuell angepasst werden, aber erst einmal kann ich (denke ich zumindest) damit arbeiten.

Angefangen habe ich natürlich mit einem Header

# #############################################################################
# DBA - SCRIPT - POWERSHELL
# NAME: template.ps1
# 
# AUTHOR: Björn Peters, SQL-aus-Hamburg.de
# DATE: 2016/08/24
# EMAIL: info@sql-aus-hamburg.de
# 
# COMMENT: This script will....
#
# VERSION HISTORY
# 1.0 2016.08.24 Initial Version.
# 
#
# OPEN POINTS TO ADD
# -Add a Function to ...
# -Fix the...
# 
# #############################################################################

Aus dem Tagesgeschäft weiß ich bzw habe ich die Erkenntnis gezogen, dass es für den DBA/Ausführenden am einfachsten ist, wenn die ggfs manuell zu konfigurierenden Parameter (wenn sie nicht übergeben werden) ganz oben stehen sollten, damit man sie möglichst schnell findet und einfach editieren kann. Also kommt direkt in meinem Powershell Skript Template nach dem Header ein Abschnitt zur Konfiguration des Skriptes.

# --- CONFIG ---#
# Script Path/Directories
$ScriptPath = (Split-Path ((Get-Variable MyInvocation).Value).MyCommand.Path)
$ScriptPluginPath = $ScriptPath + "\plugin\"
$ScriptToolsPath = $ScriptPath + "\tools\"
$ScriptOutputPath = $ScriptPath + "\Output\"
# Date Format
$DateFormat = Get-Date -Format "ddMMyyyy_HHmmss"
# -- END CONFIG ---#

Jetzt kommen wir zu einem der wichtigsten, aber am meisten vernachlässigten Abschnitten eines solchen Powershell Skriptes… der Hilfe.
Bei meinen Recherchen bin ich immer wieder über den Widerspruch gestolpert, dass man auf der einen Seite möglichst sein Skript kurz und übersichtlich gestalten soll, auf der anderen Seite aber gut dokumentiert und erläutert. Natürlich kann man aus einem Skript mehrere Versionen machen, eine zum Ausführen und eine zum Weitergeben… aber das führt meist zu Fehlern da man garantiert nicht immer alle Änderungen in beiden Daten ausführt => also bitte gleich richtig machen und einen Hilfe-Abschnitt integrieren und ausführlich beschreiben.

# --- HELP ---#
<#
.SYNOPSIS
Cmdlet help is awesome.

.DESCRIPTION
This Script does a ton of beautiful things!

.PARAMETER

.INPUTS

.OUTPUTS

.EXAMPLE

.LINK
https://www.sql-aus-hamburg.de
#>
# --- END HELP ---#

Zu guter letzt bleiben nur noch die Abschnitte für die einzelnen Funktionen und das eigentliche Powershell Skript. Früher (zu meinen VB / VBA Zeiten) hatte ich gelernt, dass man die Funktionen immer nach unten schreibt und den eigentlichen Programmcode nach oben. Aber dies scheint (zumindest für Powershell) mittlerweile überholt zu sein, also kommen die Funktionsaufrufe, die eigentliche Logik des Skriptes nach unten.

# --- FUNCTIONS ---#
Param(

)

BEGIN {

}

PROCESS {

}

END {

}
# --- END FUNCTIONS ---#

# --- SCRIPT ---#

Quellen und großen Dank an :
http://www.lazywinadmin.com/2012/03/powershell-my-script-template.html
Bei Francois habe ich die meisten Dinge (nachdem ich sie auch anderweitig unter „Best Practices“ für Powershell Skripte gelesen hatte) in einem Template gefunden und für mich am besten geeignet befunden. Also habe ich sein Template nahezu 1:1 übernommen.

Mein erstes Powershell Skript

Nun zum eigentlichen SQL Server Backup Skript, welches ich mit Powershell umsetzen wollte.
Also ich wollte mit „Bordmitteln“ von einer zentralen Maschine ein Backup auf einem Remote SQL Server erstellen, welches ich dann „einfach“ für den Kunden oder Drittdienstleister kopieren und bereitstellen konnte. Was liefert also die SQL Server Installation von Haus aus für Möglichkeiten? Natürlich die SQL Server Management Objects (SMO), welche im Rahmen der Management Tools Installation mitinstalliert werden .

Welche Parameter möchte ich denn angeben bzw übergeben, damit mein Backup erfolgreich läuft…

  • Servername
  • Instanzname
  • Datenbankname
  • SQL-Login => Username/Passwort

Nach einigem Nachdenken kamen noch zwei weitere Parameter dazu… => CopyOnly (True/False) und OpenInExplorer (True/False)

Param(
          [Parameter(Mandatory=$true)][string]$ServerName,
          [string]$InstanceName,
          [Parameter(Mandatory=$true)][string]$DatabaseName,
          [string]$SQLUserName,
          [string]$SQLPwd,
          [switch]$CopyOnly = $True,
          [switch]$OpenInExplorer = $False
)

Also BEGIN der Funktion

Erst einmal alle Parameter überpüfen, zusammensetzen und ggfs umsetzen, so dass sie im Skript bzw T-SQL Befehl verwendet werden können.
Vielleicht kann man das optimaler/sicherer gestalten (Anmerkungen/Tips hierzu bitte über die Kommentarfunktion), aber ich wollte ja einen schnellen Erfolg. Zu Beginn der Funktion prüfe ich also, ob es sich um eine Named-Instance oder Default-Instance handelt, wie der User sich anmelden möchte => Windows Authentifizierung oder SQL Login, on das Backup als Copy-Only-Backup erstellt werden soll und natürlich den Zielort des Backups (Default Backup Directory).

BEGIN {
	"Starting Backup on $($ServerName)"
        
        [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | out-null
        [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo") | out-null
		
        $CommonParameters = ''

        if ($InstanceName) {
	    $SQLServer = $ServerName + "\" + $InstanceName
        } else {
            $SQLServer = $ServerName
        }

        $SQLSvr = New-Object 'Microsoft.SqlServer.Management.SMO.Server' $SQLServer
        if ($SQLUserName -and $SQLPwd) {
            $SQLSvr.ConnectionContext.LoginSecure=$false;
            $SQLSvr.ConnectionContext.Login=$SQLUserName
            $SQLSvr.ConnectionContext.Password=$SQLPwd
        }

	$BackupDir = $SQLSvr.Settings.BackupDirectory "BackupName - $($BackupDir)\$($DatabaseName)_db_$($DateFormat).bak"

        if ($CopyOnly -eq $True) { $CommonParameters += " -CopyOnly" }

}

Nun kommt der PROCESS

Wie der Name schon sagt, hier geschieht der eigentliche Prozess, also die eigentlich Hauparbeit… Im Falle eines Backup-Skriptes werden hier die Backup Befehle ausgeführt. Da dies mein Einstieg in die Powershell Programmierung ist, es gibt bestimmt Wege dies anders bzw optimaler zu gestalten, aber für mich funktionierte das erst einmal ganz gut so. Wenn also der String $CommonParameters leer oder Null ist wird der einfache Backup Befehl ausgeführt ansonsten werden die WITH-Parameter an den Backup Befehl angehängt. Ansonsten passiert in diesem PROCESS Schritt nicht viel 😉

PROCESS {
        IF([string]::IsNullOrWhiteSpace($CommonParameters)) {
            Backup-SqlDatabase -InputObject $SqlServer -Database $DatabaseName -BackupFile "$($BackupDir)\$($DatabaseName)_db_$($DateFormat).bak"
        } else {
		    Backup-SqlDatabase -InputObject $SqlServer -Database $DatabaseName -BackupFile "$($BackupDir)\$($DatabaseName)_db_$($DateFormat).bak" $CommonParameters
        }
	}

Alles hat ein ENDe

Eigentlich wäre hier nun alles zu Ende, wir haben ein Backup auf einem Remote SQL Server in das Default Backup Verzeichnis geschrieben… hier könnten wir es abholen und dem Anforder zur Verfügung stellen. Aber ich bin ein wenig faul… also was liegt näher als den letzten Schritt noch etwas zu vereinfachen.
Also habe ich in den END Abschnitt einfach einen Explorer Aufruf mit dem Zielpfad (Default Backup Verzeichnis) hinzugefügt, so muss ich nicht erst lange suchen und hin und her klicken, sondern der Explorer öffnet sich direkt mit dem Zielpfad und ich brauche die Datei nur noch weg zu kopieren. 😉

END {
        "Finished Backup on $($ServerName)"
        if ($OpenInExplorer -eq $True) { 
            $NewBackupDir = "\\$($ServerName)\"
            $NewBackupDir += $BackupDir.Replace(':\', '$\')
            Invoke-Item $NewBackupDir 
        }
	}
}
# --- END FUNCTIONS ---#

Zum Abschluss im Skript muss natürlich noch der ganze Ablauf einmal gestartet werden, also rufe ich als „letzte“ Zeile des Skriptes schnell die Funktion auf… FERTIG.

Vielen Dank nochmal an Andre für die Inspiration.

SQLGrillen 2016 – erneut erfolgreiche SQL-Trainings im Emsland

Gestern (19.August 2016) lud die SQLPass Regionalgruppe Emsland um William Durkin (b|t) zum zweiten SQLGrillen nach Lingen ein. William und sein Team haben es nach 2015 wieder geschafft einen großartigen Event auf die Beine zu stellen. Beim SQLGrillen geht es um die Vermittlung von Wissen in einem ungezwungenen Rahmen mit Gleichgesinnten neue Ideen und Entwicklungen rund um den SQL Server bzw die Microsoft Data Plattform zu diskutieren.

Die RG Emsland und das das IT Zentrum Lingen boten eine große und interessante Auswahl von Themen wie zum Beispiel „Securing SQL Server Recommended Practices“ von John Martin, „Statistics with T-SQL“ mit Dejan Sarka oder „SQL Server & Application Security For Developers“ von Mladen Prajdić. Auch zwischen den einzelnen Session blieb genügend Zeit um sich den Sprechern und Teilnehmern über die verschiedensten Themen, Alltags-Probleme oder neue Features auszutauschen.

Für das leibliche Wohl wurde nicht nur nach den Sessions gedacht, sondern auch schon während des gesamten Tages… es gab ausreichend Snacks, Kuchen und Getränke. Das Highlight war natürlich das abschließende SQLGrillen im Innenhof des IT Zentrums mit einer gehörigen Portion Fleisch, Würstchen, leckeren Salaten und sogar vegetarischen Gerichten sowie Bier (mit oder ohne Alkohol). Aus meiner Sicht eine sehr gelungene Veranstaltung, die alle SQL Server Interessierten im Norden anspricht, auch wenn der Weg nach Lingen etwas lang und „erschwerlich“ ist.

Anreise zum SQLGrillen

Mein SQLGrillen begann natürlich mit der Anreise nach Lingen, laut Google Maps sollte meine Fahrt über ~270 und ~3 Stunden gehen. Was Google und ich nicht wussten, war die Tatsache dass die letzten ~90km über eine Bundesstraße in Richtung holländische Grenze mit sehr sehr viel LKW-Verkehr geht. Dieser LKW-Verkehr in Verbindung mit landwirtschaftlicher Erntezeit führte zu einer Durchschnittsgeschwindigkeit von etwa 50km/h auf dieser Bundesstraße 213 und nicht mehr 3 Stunden Anreise sondern fast 4 Stunden… Ok, im nächsten Jahr weiß ich es besser und werde mir einen anderen Weg aussuchen, die Bremer Teilnehmer haben mir hierzu schon Tips gegeben. Also falls ihr das nächste Jahr auch zum SQLGrillen nach Lingen wollt… fahrt nicht über die B213 oder plant etwas mehr Zeit ein.

Sessions beim SQLGrillen

Man kann leider nicht immer an jeder Session teilnehmen, so musste ich mich für die „Wichtigeren“ entscheiden.

Uwe Ricken – Entzauberung von „Clustered Indexen“

Uwe erklärte mit vielen Bewegung und Emotionen – somit sehr unterhaltsam und kurzweilig – den Unterschied zwischen Heaps und Clustered Indexen, deren Vor- und Nachteile und Einsatzszenarien. Seine anschaulichen Demos unterstrichen seine Präsentation und Worte sehr gut. Mehr Informationen zu Heaps und Clustered Indexen findet man auf dem Blog von Uwe, wo er ebenfalls sehr spannend die Welt der Indexe erläutert.

Der @dbBerater startet die erste Session über Heaps und Clustered Indizes beim #SQLGrillen Emsland - Danke an Thomas Hütter für das Bild

Frank Geisler – Power BI 2.0

Frank brachte uns einen Einstieg in die Welt von Power BI, seinen Tools wie den Power BI Desktop und Möglichkeiten. Er zeigte die Historie der Tools, den aktuellen Stand der Entwicklung und anhand einer Demo (Analyse / Visualisierung von Webseiten-Daten) die verschiedenen Möglichkeiten Datenquellen miteinander zu verknüpfen und deren Daten in einem Dashboard übersichtlich grafisch mittels verschiedener Diagramme darzustellen.

Power BI 2.0 - Power BI Desktop

Oliver Engels planschte im Azure Data Lake

Dieses Mal musste Oliver seine Session alleine halten, da Tillmann verhindert war und sogar auch noch auf Wunsch der Teilnehmer statt auf deutsch seine Session auf Englisch halten. Oliver brachte den interessierten Zuhörern die Einsatzmöglichkeiten des Azure Datalakes näher, welche Möglichkeiten und Szenarien sich mittels Azure Datalake Analytics und Azure Datalake im Bereich Big Data realisieren lassen. Anhand seiner Erfahrungen mit diesem Produkte konnte er auch aus dem Nähkästchen plaudern und so einige „Haken/Schwächen“ aufzeigen, aber auch die Möglichkeiten dieser großartigen Tool-Landschaft aufzeigen.

Oliver Engels und Tillmann Eitelberg - Die SSIS Toolboyz planschen im Azure Data Lake

Andre Essing – SQL Server 2016 New Features – Stretched Database

Andre Essing eröffnete uns die Welt des neuen Features im SQL Server 2016 „Stretched Database“. Welche Möglichkeiten und Einsatzmöglichkeiten dieses neue Feature bringt, was eventuelle Fallstricke sind und wies ebenso auf Vor- und Nachteile hin. Seine Erläuterungen unterstrich er mit passenden Demonstrationen am „lebenden“ Objekt. Er migrierte live Tabellendaten seines On-Premise SQL Servers in die Azure Cloud und wieder zurück, um die Einfachheit dieses Features zu demonstrieren.

Andre Essing - SQL Server 2016 New Features - Stretched Database

André Kamman – Manage Ola Hallengren’s scripts with PowerShell

Den Abschluss vor dem SQLGrillen bildete dann André Kamman mit seinen Ausführungen zu den Einsatzmöglichkeiten von Powershell zum Ausrollen und Überprüfen der Maintenance-Solution von Ola Hallengren. André zeigte uns seine Powershell-Skripte mit denen er die Skripte automatisiert auf eine Vielzahl von Servern ausrollt und konfiguriert, ebenso die Überprüfung der verwendeten Werte wie Cleanup-Time oder Backup-Pfaden. Zu guter letzt vermittelte er einen eindruckvollen Einblick über die Verwendung seiner Skripte zur Analyse/Überprüfung der gesamten SQL-Server Umgebung mittels der Diagnose-Skripte von Glenn Berry, welche er ebenfalls mit Powershell auf einer Vielzahl von Servern ausführte und die Ergebnisse direkt in eine gut strukturierte und lesbare Excel-Datei exportierte.

André Kamman - Manage Ola Hallengren's scripts with PowerShell

Fazit zum SQLGrillen

Bleibt nur „Vielen Dank“ an William, seinem Team, all seinen Helfern und Sprechern zu sagen. Ihr habt erneut einen großen Event für die Community auf die Beine gestellt, macht bitte weiter so. Ich werde das SQLGrillen 2017 auf jeden Fall wieder einplanen und freue mich schon jetzt auf noch mehr großartigen Content und noch mehr Teilnehmer… (2015 => ~25, 2016 => ~60, 2017 => ???)

 

PASS RG Hamburg – Treffen Juli 2016 – Master Data Services

Conny und Sascha laden am Mittwoch, den 13. Juli 2016 wieder alle Microsoft Data Platform Interessierten herzlich zu einem spannenden Abend bei Microsoft ein, dieses Mal mit dem Thema „Master Data Services“. Das regelmäßige Treffen der PASS Regionalgruppe Hamburg findet auch diesen Monat wieder in der MICROSOFT Niederlassung Hamburg statt. Termin: Mittwoch, 13 . Juli 2016, 18:30 Uhr bis ca. 20:30 Uhr

Master Data Services 2016: Was gibt es neues bei den Masterdaten?

Diesen Abend wird Christoph Seck etwas über die Master Data Services im SQL Server 2016 erzählen.

Endlich (aka „Ja, sie leben noch“), es tut sich wieder etwas bei den MDS.

• Kaskadierende Parameter
• Aufregendes bei den Business Rules
• Modellübergreifende Referenzen
• Entrümpeln des Hierarchieunwesens

Etc. etc. Das schauen wir uns alles genau an und riskieren dann auch den einen oder anderen Blick unter die DB Haube.

für die BI Freunde: SCD2 in der Luxusvariante

Unter dem Begriff Slowly Changing Dimensions (deutsch: sich langsam verändernde Dimensionen) werden im Data-Warehousing Methoden zusammengefasst, um Änderungen in Dimensionstabellen zu erfassen und gegebenenfalls historisch zu dokumentieren. Im Wesentlichen unterscheidet man drei Verfahren, die nach Kimball (Lit.: Kimball, 2002) in Typen unterteilt werden. Allen gemein ist, dass vorhandene Datensätze über den Primärschlüssel mit neuen Datensätzen verbunden werden, um Änderungen in der Tabelle zu speichern. Technische Schlüssel sind aktuell nicht Gegenstand des Artikels.

Typ 2 ist ein komplexes Verfahren, um Dimensionstabellen oder einzelne Attribute der Tabelle zu historisieren, um zu jedem Zeitpunkt die dann gültigen Ausprägungen der Tabelle ermitteln zu können. Dies wird erreicht, indem zu jedem Datensatz ein Gültigkeitsintervall abgelegt wird. Um die Eindeutigkeit des PK zu gewährleisten, ist dieser um zumindest eines der Intervallattribute zu erweitern. In der Regel wird ein unten abgeschlossenes Intervall verwendet, indem der aktuell gültige Satz als unendlich gültig gekennzeichnet ist. Grundlage ist der Vergleich der vorhandenen Datensätze mit den neuen Datensätzen aus einer vollständigen und periodischen Extraktion über den fachlichen Primärschlüssel ohne das Gültigkeitsattribut oder die -attribute.

Quelle: https://de.wikipedia.org/wiki/Slowly_Changing_Dimensions

Christoph works as a BI Architect for KI Performance. With SQL Server and its BI Stack he is dealing for more than 15 years.
He is cofounder and chapter leader of the German PASS chapter of Hannover, Visiting Lecturer at the University of Hildesheim and regular speaker at conferences and German PASS events on DWH topics and agile project management.

 

Also wie bereits oben erwähnt trifft sich die SQL PASS RGV Hamburg:

Donnerstag, 11. Februar 2016, 18:30 Uhr bis ca. 20:30 Uhr in der MICROSOFT Niederlassung Hamburg (Adresse unten)

Microsoft Deutschland GmbH
Geschäftsstelle Hamburg
Gasstraße 6a
22761 Hamburg

Kostenlose Parkplätze befinden sich hinter dem Gebäude. Der Parkplatz ist über die Rampe mit dem Schild “Microsoft Kunden” erreichbar.
Nur wenige Minuten zu Fuß ist der S-Bahnhof Bahrenfeld entfernt (S1/S11).

Ansprechpartner vor Ort: MS Empfangs-Team, Cornelia Matthesius und Sascha Lorenz.

Wir bitten um eine vorherige Anmeldung per Email an: rgv_Hamburg@sqlpass.de

Wichtig: Wir benötigen die Anmeldungen möglichst 2 Tage vor dem Treffen, da wir uns bei Microsoft treffen können und dort Besucherausweise ausgestellt werden. Spontane Teilnehmer sind dennoch herzlich willkommen.

Im Namen von Conny & Sascha Vielen Dank und viele Grüße an alle Interessenten.

SQL PASS – Termin-Highlights 2016

Die Newsletter Redaktion der SQL PASS Deutschland hat in ihrem letzten Newsletter auf mehrere sehr interessante Veranstaltungen rund um den SQL Server hingewiesen, dieser spannenden Termine möchte ich euch nicht vorenthalten.

1. PASS Essentials – SQL Workshops

Pass Essentials Workshops Logo
Die PASS Essentials SQL Workshops bieten eine intensive Auseinandersetzung zu speziellen SQL Themen und die Gelegenheiten für Fragen und Antworten, sowie Experten die Möglichkeit, sich in einem speziellen Themengebiet zu profilieren. Zur Zeit sind zwei Workshops im Norden geplant:

1. Machine Learning mit Dr. Michael Baumann

Dauer: 1 Tag
Ort: Hannover, Netz-Weise IT-Training und Beratung
Datum: 21.10.2016, 09.00-16.30 Uhr

Herr Dr. Michael Baumann möchte euch etwas zum Thema Machine Learning näher bringen, um den Einstieg zu erleichern. Der Workshop wird wie folgt beschrieben:

Sie erlangen ein Basis Verständnis über allgemeine Statistik, einen Überblick zum Einsatz von Advanced Analytics und den neuesten technischen Stand zu Komponenten im Data Science Umfeld. Unternehmen die am Beginn von Data Analytics Projekten stehen erhalten so einen optimalen Einstiegspunkt. Technologisch liegt der Fokus auf Statistik Programmiersprachen wie R und Python (OpenSource) sowie der Microsoft Cortana Analytics Suite.

Voraussetzungen:
Jeder Schulungsteilnehmer benötigt seinen eigenen Laptop, mit einem aktuellen Webbrowser wie bspw. Microsoft Internet Explorer, Edge oder Google Chrome sowie eine LAN/WLAN Verbindungsmöglichkeit.
Grundkenntnisse in SQL Server Data Tools oder Excel Data Mining Addins sind von Vorteil aber nicht notwendig

Kursinhalte:

  1. Einführung und allgemeiner Überblick
  2. Wozu ist das ganze gut?
  3. Wie erstreckt sich das Themenumfeld (Data Mining, Predictive Analytics, Machine Learning, Data Science, …)
  4. Überblick über die wichtigsten Begrifflichkeiten (Hypothese, Input, Output, dependent & independent variable, Variable / Attribut / Feature, Overfitting / Generalisierung, Train / Test, … )
  5. Überblick über Tools 2. Grundlagen Machine Learning und Predictive Analytics

weitere Informationen zum Sprecher:
Dr. Michael Baumann Dr. Michael Baumann verfügt über mehrjährige Erfahrung im Bereich Datenbanken (mySQL und SQL Server) und Machine Learning. Nach dem Studium der Informatik promovierte er an der Universität Paderborn mit einer Arbeit über Maschinelles Lernen. Schon während der Promotion arbeitete er als Freelancer in vielen IoT und Data Science Projekten für verschiedenste Kunden. Aktuell arbeitet er sowohl als Forscher / Lehrender an der Universität Paderborn als auch als Data Scientist bei der pmOne Analytics GmbH.

Mehr Informationen und Anmeldung gibt es hier

2. Analyse eines Microsoft SQL Server auf Performanceprobleme mit Uwe Ricken

Dauer: 1 Tag
Ort: Norderstedt, Sysmex Europe GmbH
Datum: 18. November 2016, 09.00-16.30 Uhr

Uwe Ricken erläutert eine optimalere – vom Default abweichend – SQL Server Installation und deren Fallstricke und Besonderheiten:

  • „Problemzonen“ einer Installation von Microsoft SQL Server, die auftreten, wenn eine „Standardinstallation“ implementiert wird.
  • an Hand eines Stufenplans kann Schritt für Schritt die Analyse eines Systems durchführt werden.
  • Ergebnisse der Messungen werden in einer Bewertungsmatrix auf Schwachpunkte untersucht.

Teilnehmer Voraussetzungen:

  • Grundkenntnisse über Microsoft SQL Server
  • Umgang mit Microsoft SQL Server Management Studio
  • Mit einem eigenen Laptop können die im Workshop gezeigten Skripte auf eigenen Microsoft SQL Servern ausgeführt und analysiert werden.

Kursinhalte:

  • Engpässe im Betriebssystem, die einen Microsoft SQL Server ausbremsen
  • Konfigurationseinstellungen einer Instanz von Microsoft SQL Server
  • TEMPDB – falsche Konfiguration und ihre Auswirkungen auf die Performance
  • PLE – Analyse und Bewertung von „Page Life Expectancy“ im Zusammenhang mit verwendeten Datenbanken
  • Analyse der Belegung des Buffer Pool pro Datenbank!
  • PFS-Contention, Locking, Blocking, Deadlocks – welche Möglichkeiten gibt es für die Beseitigung
  • Korrekte Datenbankeinstellungen (Datenbankdateien, Protokolldateien)
  • Analyse von Wait Stats zur Bewertung von vorhandenen Engpässen
  • Anforderungen an eine Kundendokumentation
    • Gliederung der Dokumentation
    • Präsentation der Analyseergebnisse & Handlungsempfehlungen
  • An konkreten Beispielen, die mit dem eigenen Laptop (mitgebracht incl. installierter Software) ebenfalls simuliert werden können, werden verschiedene Engpässe demonstriert, die es zu erkennen gilt. Wenn es um die Bewertung von Analyseergebnissen mittels Wait Stats geht, so können solche Ergebnisse für jeden EIGENEN Server simultan im Workshop ausgewertet werden.

weitere Informationen zum Sprecher:
Uwe Ricken verfügt über mehr als 6 Jahre Praxiserfahrung als DBA und mehr als 14 Jahre Erfahrungen als Entwickler von Datenbankmodellen. Im Mai 2013 wurde diese Erfahrung mit der Zertifizierung zum 7. deutschen „Microsoft Certified Master – SQL Server 2008“ gekrönt. Im Juli 2013 wurde ihm zum ersten Mal der MVP-Award von Microsoft für seine Unterstützung der Microsoft SQL Server Community verliehen. Damit war Uwe Ricken der erste MCM + MVP in Deutschland. Uwe Ricken ist als Sprecher zu den Themen „Database Engine Internals“, „Query Optimizing“ und „Entwicklung“ auf vielen Konferenzen in ganz Europa anzutreffen.

3. SQLSaturday #555 – München

SQLPASS SQLSaturday #555 München

Nach dem SQLSaturday #525 im Rheinland ist vor dem SQLSaturday #525 in München!!!
Also merkt euch diesen Termin ( 8.10.2016) in München, Andre Essing und sein Team geben sich größte Mühe euch einen perfekten Trainingstag mit vielen spannenden Themen und Speakern zu organisieren. Noch gibt es keine Speaker-Liste (der Call for Speaker ist noch bis Ende August geöffnet) und auch keine weiteren Details. Einzig der Veranstaltungsort steht schon fest:

das neue Gebäude von Microsoft in München, Walter-Gropius-Straße 1-3, München

Registrierung zum SQLSaturday #555 findet ihr hier

Ich kann nur jedem SQL DBA, BI Entwickler, Data Scientist oder wer auch immer mit SQL Servern zu tun hat empfehlen dorthin zu gehen… es lohnt sich wirklich!!!

4. SQL PASS-Camp 2016 in Seeheim

Ein Highlight jagt das nächste… auch hier kann man jedem nur empfehlen daran teilzunehmen… wer einmal dort möchte wieder dorthin. Die Sache hat allerdings einen kleinen Haken im Vergleich zum SQL Saturday, denn das PASS Camp kostet Geld. Dafür bekommt man aber auch wirklich eine Menge geboten.
Das geht los mit der Unterkunft: Das PASS Camp findet im Lufthansa Training & Conference Center in Seeheim (bei Frankfurt) statt, das Hotel mit sehr hochwertigen Zimmern und einem perfekten Service.

Die Sessions sind aufgeteilt in verschiedene Tracks => in diesem Jahr werden folgende Tracks angeboten:

  • Track 1: SQL Information Services
  • Track 2: Business Intelligence
  • Track 3: SQL Server für DBAs
  • Track 4: SQL Server für Entwickler

Man erhält im PASS Camp auf 3 Tage verteilt eine Menge Information rund um aktuelle Themen des SQL Servers mit und ohne HandsOn in Form von Workshops, die Inhalte werden von bekannten und bestens vorbereiteten (auch internationalen) Speakern vorgetragen. Beispielhaft sind die folgenden genannt werden: Niko Neugebauer, Sascha Dittmann, Scott Klein oder Andreas Wolter

Anmelden kann man sich hier

Einen ersten groben Eindruck erhält man in dem folgenden Video des PASS Camps 2015

Noch bis Ende Juli gibt es die Early-Bird Preise => aktuell für Nicht-Pass Mitglieder 2400,- Euro, für Pass-Mitglieder 2300,-
Ihr seht es lohnt sich nicht nur fachlich Mitglied in der PASS zu sein, sondern auch monetär 😉

5. IT ZeroDay 2016 in München

Zu guter letzt möchte die PASS Newsletter Redaktion noch auf eine Partner-Veranstaltung hinweisen… den IT ZeroDay in München.

IT ZeroDay München 2016

Beim IT Zero Day am 30.6.2016 stehen die Herausforderungen bei der Arbeit mit dem SQL Server im Mittelpunkt.
Wir laden DBAs, Datenbank-Entwickler, Datenanalysten und Business Intelligence Experten zur innovativen Vortragsreihe mit den Referenten Uwe Ricken (Microsof SQL Server Master) und Andre Essing (DBA & Senior Consultant), und zum interaktiven Austausch in das Zentrum Bayerns.

Jetzt zum kostenfreien Anwendertag anmelden und mitdiskutieren:

  • Datenversionierung: Verzweifeln muß nicht sein!
  • SQL Server 2016 und Stretch Database: der Datenspagat in die Cloud.
  • Clustered Index: Bremse oder Boost?
  • Problemlösungen für Serverausfälle oder DBA’s schlimmster Albtraum.
  • Die perfekte SQL Server Installation: einfach erklärt.

Quelle: http://www.it-zeroday.de/

Copyrights liegen natürlich bei den ursprünglichen Verfassern und nicht bei mir 😉