Glorf.it

Glorf IT

Bedenkliches aus dem IT-Alltag

14. November 2008 um 00:13

SQL Server unter Hyper-V

Nachdem die Virtualisierung in aller Munde ist, kann man jetzt von Microsoft auch offiziell nachkesen, dass der SQL Server unter Hyper-V vernünftig laufen kann. Wie man das macht und was man beachten soll, kann man im Artikel "Running SQL Server 2008 in a Hyper-V Environment – Best Practices and Performance Recommendations" und dem darin verlinkten, gleichnamigen Whitepaper nachlesen.

Der darin beschriebene Durchsatz ist meiner Ansicht nach beachtlich. Ich hätte den Unterschied auf größer geschätzt.

Dieser Tipp kam via Steffen Krause
12. November 2008 um 20:47

Business Server 2008 mit SQL Server 2005?

Das muss ich gestern irgendwie verpasst haben. In den vergangenen Monaten wurde so sehr die Werbetrommel gerührt, dass ich den Knall jetzt gar nicht mitbekommen habe. Offenbar wurden (über Nacht?) die Freigabeversionen der neuen Windows-Server-Pakete für den Mittelstand und für kleine Büros zum Download bereit gestellt:

Von beiden Paketen gibt es jeweils eine Premium-Ausgabe, die den "SQL Server 2008 Standard Edition" enthält und zwar jeweils als 32- und 64-Bit-Installationen. Nun gibt es aber eine ganze Menge Anwendungen, die strikt die Version "SQL Server 2005" voraussetzen. Was kann man da tun?

Das ist zunächst einmal kein Problem, weil Microsoft mitgedacht hat: Für ein Jahr liegen den Paketen beide SQL-Server-Versionen bei. Danach wird nur der 2008er ausgeliefert.

F: SBS 2008 Premium Edition umfasst SQL Server 2008 Standard Edition for Small Business. Kann ich meine Downgrade-Rechte wahrnehmen und eine ältere Version von SQL Server einsetzen?

A: Nein. Die einzelnen Komponenten der SBS-Lösung können nicht getrennt gehandhabt werden. Microsoft ist jedoch bewusst, dass bestimmte Branchenanwendungen Kompatibilitätsprobleme mit aktuellen Versionen haben. Ab der Veröffentlichung (RTM – Release to Manufacturing) von SBS 2008 wird daher für etwa ein Jahr zusätzlich zu SQL Server 2008 Standard Edition for Small Business auch SQL Server 2005 Standard Edition (32-Bit und 64-Bit) ausgeliefert.

Sobald wir die Auslieferung beider SQL Server-Versionen einstellen, können Sie jedoch nicht mehr nur die ältere SQL Server-Komponente einsetzen. Die Downgrade-Rechte legen für diesen Fall fest, dass Sie das Downgrade dann für alle Teile der Server-Software durchführen müssen.

Diese Details und noch mehr stehen hier:

3. November 2008 um 11:02

SQL-PASS Franken: Reporting Services 2008

SQL-PASSHui, das hätte ich ja fast vergessen anzukündigen: Morgen, also am Dienstag, den 4.11.2008 um 18:30 Uhr, trifft sich wieder die SQL-PASS Franken. Das Thema ist wieder sehr gut ausgesucht: "Reporting Services mit SQL Server 2008" und der Referent Sebastian Flucke ebenso. Echt blöd, dass ich gerade wieder Ferien sind und ich nicht da bin. Wie immer ist die Teilnahme kostenlos.
Gastgeber ist wieder die plus-IT GmbH im Eurocom Center (Lina-Ammon-Str. 3, Gebäude 3 / 3. Stock, 90471 Nürnberg).

Das genaue Thema lautet: "Einstieg in die Reporting Services mit dem SQL Server 2008"
Und das sind die Unterpunkte:

  • Berichtsdesigner
  • ad-hoc Berichtswesen aus diversen Quellen
  • flexible Berichtsdistribution
  • flexible Filtermöglichkeiten
  • "Make it Work – die ersten Schritte"

Für mich sind die Reporting-Service die große Innovation im SQL-Server-Paket. Ich finde sowohl den Ansatz einfach super und auch die Ausführung. Eigentlich erstaunlich, denn meines Wissens ist das Paket von Microsoft selber entwickelt (also nicht zugekauft, wie andere Dinge… ;-))

Nachdem die letzten Treffen immer 30 Leute da waren, bitte kurz bei Klaus Oberdalhoff unter kob(ät)sqlpass.de anmelden, damit er weiß wie viele Stühle wir benötigen.

29. Oktober 2008 um 20:07

Wieder etwas Neues: SQL Data Services

Mit "Windows Azure" – dem neuen Angebot von Microsoft für das Hosting und Management von Cloud-basierten Diensten – kommt auch eine neue Datenzugriffs-Schnittstelle. Nachdem es eine Zeit lang erfreulich übersichtlich war, geht es jetzt Schlag auf Schlag: Entity-Framework, LINQ und nun "SQL Data Services".

Ob das für uns Normalsterbliche interessant ist, kann ich jetzt noch nicht abschätzen. Ich gehe davon aus, dass noch ein paar Jahre vergehen bis wir Cloud-Anwendungen implementieren. Aber wer sich jetzt schon informieren will, der kann das tun:

Have fun…

28. Oktober 2008 um 20:09

Konvertierung um zwei Ecken

Wenn man mal versehentlich (?) eine Varchar-Spalte nach image konvertierte (von nvarchar nach image geht aus nahe liegenden Gründen übrigens nicht), dann kann man den Inhalt übrigens doch noch lesen. Aber nur über zwei Ecken.

CREATE TABLE MyTest ( -- Testtabelle anlegen
id integer IDENTITY(1,1) NOT NULL,
str varchar(100) NULL)

INSERT INTO MyTest (str) – irgendwas einfügen
SELECT name
FROM sysobjects

ALTER TABLE MyTest – und nun nach image konvertieren
ALTER COLUMN str image NULL

Versucht man die direkte Rück-Konvertierung ("CONVERT(varchar(2000),str)"), dann stößt man an die Grenzen des üblen Image-Typs: "Explicit conversion from data type image to varchar is not allowed."
Bisher kenne ich schon viele gründe die "neuen" Typen varchar(max) bzw. varbinary(max) einzusetzen, aber warum jemand immer noch den Typ image verwendet, ist mir ein Rätsel.

Um die Konvertierung dennoch hinzubekommen, muss man über diese beiden Brücken gehen:

SELECT str, CONVERT(varchar(max),CONVERT(varbinary(max),str)) AS "converted"
FROM MyTest

Schon prima, oder? OK, das gehört zweifellos in die Kategorie "Probleme, die man nicht haben muss", aber das kommt in der Praxis durchaus vor… 😉

22. Oktober 2008 um 20:36

SQL-PASS bei Xing

Nachdem ich schon vor längerer Zeit Xing enttäuscht den Rücken kehrte, bekam ich heute die Info, dass dort die Gruppe "SQL-PASS" eingerichtet wurde. Wer unter Euch also gleichermaßen PASSler und Xingler ist, der kann sich da eintragen.

Ich hatte sehr den Eindruck, dass Xing hauptsächlich eine Werbeplattform für Freiberufler ist (mit Lebenslauf und Qualifikation für jeden lesbar). Oder kann man das auch noch für andere Dinge nutzen?

21. Oktober 2008 um 22:24

Datenbank-Differenzen

Wer hat schon mal mit dem Gedanken spielte ein eigenes Werkzeug zu schreiben, um die Differenzen in den Strukturen von zwei Datenbanken zu ermitteln? Das sollte man lieber nicht machen. Erstens kann die "Database Edition" des Visual Studio das und die Lizenz ist seit 1.10 auch in der Developer-Edition enthalten. Außerdem gibt es dazu schon ein Open-Source-Projekt bei Codeplex. Wer also zu viel Zeit hat und wem das Visual-Studio nicht reicht, der sollte sich in dem Projekt engagieren: Open DBDiff

Ich finde, die Features hören sich ganz ordentlich an. Im aktuellen Zustand ist das immer noch die Beta 5 zur ersten Version.

Open DBDiff is an open source database schema comparison tool for SQL Server 2005. It reports differences between two database schemas and provides a synchronization script to upgrade a database from one to the other.

Die Liste der abgleichbaren Datenbank-Objekte ist erstaunlich vollständig. Alle Achtung.

Danke an Spencer.
19. Oktober 2008 um 20:08

Artikel zu den neuen Features vom SQL Server 2008

Je länger ich dabei bin, um so begeisterter bin ich von der SQL-PASS in Deutschland. Erst vor ein paar Tagen machte mich Christoph auf seine frischen Artikel zu den neuen Features vom SQL Server 2008 aufmerksam. Christoph ist – genau wie Frank Kalis (der Betreiber der interessanten Seite insidesql.org) – ein SQL-PASSler. Da ich nicht nicht einmal alle Features des SQL Server 2005 einsetze, bin ich froh mir die neuen Sachen des 2008ers nicht auf die harte Tour beibringen zu müssen.

  • MERGE – Das ist mein liebstes neues Feature. Christop gibt zwar einen Performancetipp, aber ich sehe da für mich noch nicht klar. Von der Idee her kann es schneller sein als die – auch nicht so langsame – alte Lösung. Damit meine ich einen UPDATE und bei ROWCOUNT=0 auch noch einen INSERT. Ein Kollege bevorzugt eher den anderen Ansatz: zuerst INSERT (mit TRY-CATCH abgesichert) und bei duplicate key error noch einen Update. Das liegt daran, dass es bei ihm den Datensatz meistens noch nicht gibt und daher selten der UPDATE notwendig ist. Aber mich würde wirklich interessieren, welche Randbedingungen da existieren. Ich sollte mir den 2008er doch mal installieren, um etwas rum zu tüfteln. 😉
  • INSERT over DML – Das finde ich irgendwie witzig. Aber ein Anwendungsfall für mich aus den letzten Jahren fällt mir spontan nicht ein. Vermutlich wurde das benötigt, um den MERGE-Befehl intern zu implementieren.
  • GROUPING SETS – Das hätte ich bisher noch nicht benötigt. Vielleicht braucht man das für BI-Kram.
  • Table Valued Parameters – Dieses auch sehr nützliche Feature hätte ich in der Vergangenheit schon öfters mal benötigt. Ich vermute allerdings, dass hier viele von der Performance her auf die Nase fallen. Das sieht so aus, wie ein Allheilmitteln, sollte aber wegen der intern entstehenden temporären Daten nur mit Bedacht angewandt werden.
  • Einstieg T-SQL Neuerungen SQL Server 2008 – Das ist der Start der Artikel-Reihe. Den dort erwähnten Compound-Operator ("+=") kannte ich in TSQL noch nicht. Ist das Standard-SQL? Naja, wen interessiert das schon… 😉

OK, vielleicht sollte man es in der umgekehrten Reihenfolge lesen. Aber ich wollte halt mit MERGE anfangen…

Einen weiteren, neuen Artikel zum SQL Server 2008 findet man übrigens hier:

10. Oktober 2008 um 00:07

Einführung in die Abfragesprache MDX in Nürnberg

Wer in das Thema "Data-Warehouse" einsteigt, der arbeitet gerne mit den schicken Tools und klickt sich seine Cubes und Abfragen zusammen. Die Abfragen gegen den Analysis-Service werden nicht mit SQL gemacht, sondern mit MDX. Deswegen wunderte ich mich gründlich, als ich vor einiger Zeit einen OLAP-Experten kennen lernte, der kein bischen MDX kannte und es ablehnte sich damit zu befassen. Schon wenn man ein paar Dinge außer der Reihe will, dann braucht man doch MDX, oder nicht?

Wer in das Thema einsteigen will, dem bietet sich bei dem kostenlosen Vortrag der SQL-Pass in Nürnberg dazu Gelegenheit: Heide Löwer gibt uns die Ehre die Grundlagen von MDX zu erklären. Ich freue mich darauf:

* Was sind die Grundfunktionalitäten von MDX
* Aufbau von MDX-Ausdrücken und –Abfragen
* Anwendung von MDX im Cube (berechnete Elemente, benannte Mengen, KPI, Script usw.)
* Performance-Betrachtungen

Interessierte finden uns am 14.10.2008 um 18:30 Uhr bei der plus-IT GmbH im Eurocom Center (Lina-Ammon-Str. 3, Gebäude 3 / 3. Stock, 90471 Nürnberg).

9. Oktober 2008 um 22:36

Mal ein Patch-Day ohne SQL Server

Nachdem uns der letzte Patch zum SQL-Server (CU9 behebt ein Problem in der GDIpluss.dll – wie kann man mit den SQL-Server-Tools manipulierte Bilddateien ansehen?) immer noch beschäftigt, bin ich ganz froh, dass beim Patchday nächste Woche kein SQL-Server_Patch dabei sein wird…

Wer mehr wissen will, findet hier die ganze Liste vorab: "Microsoft Security Bulletin Advance Notification for October 2008"

6. Oktober 2008 um 20:47

Speed-Dating mit der SQL-Pass

Bei Speed-Dating danke ich natürlich zuerst an zwei bekiffte Singles, die ein "Date" haben. Aber diese amerikanische Sitte scheint sich auch bei uns einzubürgern. Zuerst sah ich es in einer Monk-Folge: Etwa gleich viele Männer und Frauen lernen jeden anders geschlechtlichen 5 Minuten lang kennen. Die Damen sitzen dazu an Tischen und die Männer bewegen sich beim Gong (natürlich in der gleichen Richtung) zur nächsten Dame. Dann können die neuen Gesprächspaare sich 5 Minuten beschnüffeln. Am Ende kennt Jede Jeden und umgekehrt. Dann darf jeder für nur einen wählen. Sind zwei dabei, die sich gegenseitig gewählt haben, dann gibt der Veranstalter den Beiden die Kontaktadressen.

Und sowas veranstaltet die SQL-Pass in München jetzt schon zu zweiten mal. Oder so ähnlich. Helmut Knappe beschreibt es so:

SQL Server Speed Dating
Teilnehmer stellen sich zwanglos kurz vor und berichten in ca. 5 Minuten über das, was sie im letzten Monat mit SQL Server gemacht haben
· SQL Server Umgebung
· Ihre Aufgaben
· Herausforderungen
· Lösungswege
· Fragen
· Danach jeweils Diskussion, Erfahrungsaustausch und Networking

Wo und wann? Am 9. Oktober 2008 um 18:30 Uhr bei Microsoft Deutschland GmbH, Konrad-Zuse-Straße 1, 85716 Unterschleißheim.

30. September 2008 um 21:36

COUNT, aber schnell!

Über den aktuellen SQL-Pass-Newsletter wurde ich auf den absolut interessanten Trick aufmerksam, wie man sehr schnell (im Sinne von "sehr performant") die Anzahl von Datensätzen in einer Tabelle ermittelt. Aber leider ist der Autor dem gleichen Fehler aufgesessen, wie ich zu Beginn meiner SQL-Server-Zeit.

Der erwähnte Trick ist sehr ausführlich im Artikel "Speeding up the Performance of Table Counts in SQL Server 2005" beschrieben. Möglicherweise ist er mit richtig vielen Datensätzen auch wirklich schneller als COUNT, aber ich kann es mir kaum denken. Das ist aber gar nicht so wichtig, weil meine Message ist: Vorsicht vor den geschätzten Kosten. Sie sind nicht richtig.

Wenn ich den Trick ausführe und den COUNT, dann zeigt auch mein Zugriffsplan in den geschätzten Werten an, dass der Trick schneller sei (der Code ist aus dem Artikel abgeleitet, nur leicht vereinfacht):

-- Trick:
SELECT SUM( p.rows )
FROM sys.partitions p
LEFT JOIN sys.allocation_units a
ON p.partition_id = a.container_id
WHERE p.index_id IN (0,1) – 0 heap table , 1 table with clustered index
AND p.rows IS NOT NULL
AND a.type = 1 – row-data only , not LOB
AND p.object_id = object_id('Person.Address')
– Hat "estimated subtree cost" von 0.028
go
– regulär:
SELECT COUNT(*)
FROM Person.Address
– Hat "estimated subtree cost" von 0.055

Wegen der "estimated subtree cost" zeigt das Management-Studio an, dass der erste Batch 33% der Zeit und der zweite 67% in Anspruch nähme. Das stimmt aber gar nicht. Der SQL-Profiler bringt es ans Licht: Der erste Batch dauert 35ms und der zweite nur 9ms. Der Prozentwert im Management-Studio spiegelt nur die geschätzten Kosten wieder. Wenn man die echte Zeit wissen will, dann muss man schon zu Kommissar Profiler gehen… 😉

PS: Schade, dass der Autor weder Kommentare zuließ, noch eine Mail-Adresse angab. Daraus schließe ich, dass er keinen Dialog wünscht. Ist das eine zulässige Annahme?

PPS: Ich sehe gerade, dass sich Steffen Krause ein paar Tage vorher mit dem gleichen Thema beschäftigte. Welch lustige Koinzidenz – er berücksichtigt aber die BLOBs nicht.