Informations-Rollup

Bedingt durch dienstliche und private Verpflichtungen habe ich in der letzten Zeit meinen Blog ein wenig vernachlässigt, aber nicht vergessen. Ich hoffe, das es mir der eine oder andere treue Leser nachsehen wird, aber dies ist lediglich ein privates Projekt, welches unabhängig von meinem Job oder anderen definitiven Verpflichtungen läuft.

Was gab es neues in den letzten Wochen seit dem Launch des SQL Server 2008 R2?

Am 17.05.2010 veröffentlichte MS das kumulative Update #1 für den SQL Server 2008 R2, welches lediglich Hotfixes aus den kumulativen Updates #5, #6 und #7 für das SQL Server 2008 SP1 enthielt. Das Update gibts hier zu beziehen: Cumulative update package 1 for SQL Server 2008 R2 und hebt eure SQL Server 2008 R2-Instanzen auf die Versionsnummer 10.50.1702.

Am 18.05.2010 veröffentlichte MS das kumulative Update #8 für den SQL Server 2008 SP1. Dieses ist hier zu beziehen: Cumulative update package 8 for SQL Server 2008 Service Pack 1. Eure SQL Server 2008 SP1-Instanzen werden nach der Installation des Updates die Version 10.00.2775 tragen.

Am 22.06.2010 wurde das kumulative Update #10 für den SQL Server 2005 SP3 veröffentlicht. Dieses ist hier zu beziehen: Cumulative update package 10 for SQL Server 2005 Service Pack 3. Dieses Update hebt eure Instanzen auf die Versionsnummer 9.00.4305.

Ebenfalls am 22.06.2010 wurde das kumulative Update #2 für den SQL Server 2008 R2 veröffentlicht. Dieses stellt das erste wirklich eigenständige Update für den SQL Server 2008 R2 dar, nachdem das kumulative Update #1 lediglich eine Zusammenfassung von gemeinsamen Hotfixes mit dem SQL Server 2008 SP1 darstellt. Zu beziehen gibts das Update hier: Cumulative update package 2 for SQL Server 2008 R2. Dieses Update hebt eure SQL Server 2008 R2-Instanzen auf die Versionsnummer 10.50.1720.

Vom 07.07.2010 stammt die Customer Technology Preview des Service Pack 2 für den SQL Server 2008. Dieses enthält unter anderem:

  • Alle Hotfixes bis zum kumulativen Update #8 für den SQL Server 2008 SP1 (List of the bugs that are fixed in SQL Server 2008 Service Pack 2)
  • Updates für das Reporting Services Add-in für Sharepoint 2007
  • Unterstützung für das SQL Server Management Studio (insbesondere DAC) des SQL Server 2008 R2 für SQL Server 2008 SP2-Instanzen
  • Unterstützung für den SQL Server 2008 R2 Utility Explorer sowie die SQL Server Utility Viewpoint im SQL Server Management Studio

Zu beziehen gibts das SQL Server 2008 Service Pack 2 CTP hier:
SQL Server 2008 Service Pack 2 – CTP
SQL Server 2008 Express Edition Service Pack 2 – CTP

Die Installation der SP2-CTP hebt eure (Test)Instanzen auf die Version 10.00.3798.

Vom 18.07.2010 stammt der SQL Server 2008 R2 Best Practices Analyzer (BPA). Der letzte SQL Server BPA war der SQL Server 2005 Best Practice Analyzer (Der SQL Server 2005 Best Practices Analyzer). Für den SQL Server 2008 wurde ein BPA nicht nur von mir vermisst, also hat MS dafür gesorgt, das der SQL Server 2008 R2 BPA sowohl für den SQL Server 2008 R2 als auch für den SQL Server 2008 herangezogen werden kann. Der SQL Server 2008 R2 BPA läuft im Framework des Microsoft Baseline Configuration Analyzer (MBCA 2.0) und ist auf den folgenden Betriebssystemen supported:

  • Windows Server 2003
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows Vista
  • Windows 7

Neben dem MBCA 2.0 wird Powershell 2.0 als Installationsvorraussetzung erwartet.

Zu beziehen gibts den BPA hier: Microsoft SQL Server 2008 R2 Best Practices Analyzer

Welche Themen stehen für die nächste Zeit auf dem Plan?

  • ein Artikel zum SQL Server 2008 R2 Best Practices Analyzer
  • ein Artikel zum Thema Backup Compression
  • laufende Berichterstattung zu aktuellen Updates, Services Packs und Hotfixes

Zudem plane ich grade eine kleine SQL Server-spezifische Applikation, die vielleicht dem einen oder anderen was nützen könnte. Also bleibt gespannt.

Gefilterte Indizes zur Abfrageoptimierung

Mit dem SQL Server 2008 führte Microsoft ein neues Feature ein: Filtered Index. Mit einem gefilterten Index ist es möglich, lediglich eine Teilmenge der zu indizierenden Tabelle einzubeziehen. Gerade bei oft gestellten, nach Teilbereichen abgegrenzten Anfragen ist es so möglich, eine entsprechende Optimierung herbeizuführen. Ich habe dies anhand eines kleinen Beispiels vorbereitet:

Wir nehmen uns eine Tabelle namens IndexDemo mit den Spalten ID, Name, Vorname und Geschlecht:
Create Table IndexDemo
(    ID nvarchar(38),
Name nvarchar(256),
Vorname nvarchar(256),
Geschlecht char(1),
Constraint PK_IndexDemo Primary Key(ID)
)

Diese Tabelle habe ich für meine Demo mit 80 Datensätzen gefüllt. Wir stellen uns vor, das wir regelmäßig die Namen aller Personen erheben müssen, die männlichen Geschlechts sind und formulieren folgende Abfrage:
Select Name from IndexDemo where Geschlecht = ‚M‘

Ohne Abfrageoptimierung erhalte ich via Execution Plan die folgenden Lastkennzahlen:
CPU COST: 0,000245
I/O COST: 0,0038657

Zum Vergleich legen wir jetzt einen gefilterten Index über die Spalte Name, mit der Einschränkung auf das männliche Geschlecht:
Create Nonclustered Index IX_IndexDemo_M
On IndexDemo(Name)
Where Geschlecht = ‚M‘

Eine erneute Abfrage ergibt via Execution Plan die folgenden Lastkennzahlen:
CPU COST: 0,000201
I/O COST: 0,003125

Wie man deutlich erkennt, konnte sowohl die CPU-Last als auch die I/O-Last erkennbar gesenkt werden. Wendet man gefilterte Indizes geeignet auf große Datenmengen an, lassen sich durchaus beachtliche Performancesteigerungen erreichen.

Weitere Informationen zu diesem Feature sowie der Verwendung finden sich in den Filtered Index Design Guidelines

Spannende Technet Artikel

Im letzten Microsoft Security Newsletter wurde auf zwei spannende Technet-Artikel mit SQL Server Themen verwiesen:

Beide Artikel bieten auf viel Informationen auf hohem Level und den einen oder anderen Anreiz, doch mal die eigenen Installationen bzw. Applikationen ein wenig zu checken.

Viel Spaß beim lesen…

Whitepaper: Disk Partition Alignment Best Practices for SQL Server

Speziell für den MS SQL Server 2008 hat Microsoft ein Best-Practices-Whitepaper zur Optimierung der Partitionierung von SQL Servern veröffentlich. Besonderer Wert wird hierbei auf die Performanceoptimierung gelegt. Das Whitepaper findet ihr hier: Disk Partition Alignment Best Practices for SQL Server

Viel Spaß beim Lesen.

MS SQL Server 2008 und Hyper-V

Im MCSEBoard.de häufen sich in der letzten Zeit die Fragestellungen rund um Hyper-V. Die MS-Virtualisierungstechnologie scheint einzuschlagen wie eine Bombe und wird meines Erachtens nach anderen etablierten Herstellern auf dem Virtualisierungssektor einiges an Marktanteilen abgraben können. Je mehr MS-Serverinstallationen per Hyper-V virtualisiert werden, desto mehr Anwendungsserver werden „mitvirtualisiert“. Darunter werden sich mit an Sicherheit grenzender Wahrscheinlichkeit auch SQL Server befinden. Aus diesem Grunde möchte ich an dieser Stelle auf ein entsprechendes Whitepaper von MS hinweisen:

Titel: Running SQL Server 2008 in a Hyper-V Environment Best Practices and Performance Considerations

Zu beziehen gibt es das recht interessante Whitepaper hier.

Der SQL Server 2005 Best Practices Analyzer

Die Firma Microsoft stellt für viele ihrer Produkte die sogenannten Best Practice Analyzer zur Verfügung. Für viele Admins, welche SQL Server Installationen in ihren Umgebungen einsetzen, ist allerdings der SQL Server 2005 Best Practice Analyzer ein völlig Unbekannter, wie ich auch in meinem Job immer wieder feststellen muss. Allgemein bin ich der Meinung, das den BPA’s viel zu wenig Aufmerksamkeit geschenkt wird. Für den SQL Server 2005 BPA wollen wir das an dieser Stelle ändern.

Zu beziehen gibts das Objekt der Begierde HIER.

Nach der Installation des MSI’s findet sich der BPA gewohnt im Startmenü wieder und kann gestartet werden.

BPA-Welcome

Der BPA bietet die Möglichkeit einen sofortigen Scan für gewählte MS SQL Server 2005 Instanz(en) durchzuführen, als auch per Schedule gewählte MS SQL Server 2005 Instanz(en) zeitgesteuert und wiederholt zu scannen. Das gerade der getimte Scan von mehreren Instanzen auf Probleme, Fehler und Komplikationen im Unternehmensumfeld angebracht sein kann, muss ich hier kaum näher beleuchten.

Nach der Durchführung eines Scans wird dann in BPA-gewohnter Weise ein entsprechender Report generiert, bei dem man kritische Probleme sofort als erstes im Blick hat. Ein Klick auf einen Issue bringt weitere Details zum Vorschein, zusätzlich bietet sich die Möglichkeit, Troubleshootinginformationen für den jeweiligen Issue zu erhalten, oder den Issue zukünftig auszublenden.

BPA-Report

Erzeugte Reports lassen sich nach HTML, CSV und XML exportieren.

Und wie man sieht, findet der BPA auch spannende Probleme, auf die ich sonst an dieser Stelle mit dieser Testdatenbank garnicht gekommen wäre 😉