Wie unter meinem letzten Beitrag angekündigt, wurde am 25.01.2010 das PASS Treffen zu SQL Server 2008 R2 mit Georg Urban als Vortragendem nachgeholt. Wer nun (wie ich) bis dahin dachte, die Neuerungen in Release 2 würden sich schwerpunktmäßig auf Business Intelligence konzentrieren, wurde erst einmal eines Besseren belehrt. Um es auf den Punkt zu bringen: Die Schwerpunkte des SQL Server 2008 Release 2 sind Self-Service-BI, Multiserver-Management und Technologien für die Verarbeitung sehr großer Datenmengen.
Georg bot uns an diesem Abend mit einem aus mehreren Präsentationen konsolidierten Vortrag die Quintessenz der Neuerungen in SQL Server 2008 R2 dar.
Alle SQL PASSler aus Sachsen (und die, die es werden möchten) sind zum Jubiläumstreffen 5 Jahre PASS Deutschland der Regionalgruppe Sachsen am Montag, den 25.01.2010 um 18:30 Uhr einladen.
Der PASS Deutschland e.V. wurde am 31.08.2004 gegründet und feierte deshalb im August/September 2009 in allen Regionen das fünfjährige Bestehen. Zu diesem Jubiläum wurden in allen Regionen Treffen der Regionalgruppen mit besonderen Inhalt veranstaltet. Für die Regionalgruppe Sachsen war folgender Vortrag anberaumt:
SQL Server 2008 R2: Neues vom SQL Server; Georg Urban, Microsoft
Self Service Analysis mit Excel In-Memory Online Analytic Processing & Self Service Reporting mit Report Builder 3.0 sind wichtige Themen – aber es gibt noch mehr zu berichten.
Da Georg Urban zu dem ersten Versuch im September kurzfristig krank geworden war, hat er sich für den 25. Januar bereit erklärt, die Session nachzuholen. Es darf gehofft werden, dass er nun auch die neueste CTP vom November hat und die Teilnehmenden so in den Genuss von „Hot News“ kommen!
Die PASS Regionalgruppe Dresden trifft sich an gewohnter Stelle im IT-Trainingshaus am Waldschlösschen. Nähere Informationen zum Termin und eine Anfahrtsbeschreibung findet man auf der Website der Regionalgruppe.
Immer häufiger verdrängt der SharePoint Server den Fileserver als Ablageort von zentralen Datei. Doch leider stößt man dadurch nur all zu schnell an die Grenzen der Contentdatenbanken(ca. 100 GB). Seit dem SQL Server 2008 steht eine neue Funktion Filestream zur Verfügung, welche es erlaubt, die sogenannten Blobs direkt auf die Festplatte zu schreiben. Näheres zum Blob Storage finden Sie hier. Bei meinen Recherchen zu diesem Thema bin ich über folgenden Artikel von Vincenzo Tenisci gestoßen. SharePoint 2007 unterstützt leider nicht offiziell Filestream. Dennoch möchte ich in diesem Post diese Sache näher beleuchten, da mit SharePoint 2010 diese Funktionalität vollständig unterstützt wird.
Einem seltsamen Problem im Zusammenhang mit der Lucene-Search, MS-SQL und PHP auf der Kommandozeile bin ich kürzlich auf die Spur gekommen. Auf einem Windows-Server mit MS-SQL 2000 waren bei einer Webanwendung in den Suchergebnissen sämtliche deutschen Umlaute verschwunden – Begriffe mit Umlauten wurden demzufolge von der Suche auch nicht gefunden.
In der CP1252-encodierten MS-SQL-Datenbank standen jedoch alle Umlaute korrekt und auch im normalen UTF-8 codierten Webfrontend gab es kein Umlautproblem; die dazwischengeschaltete iconv-Zeichensatz Umwandlung von PHP funktionierte also prinzipiell ebenfalls.
Ein Blick in den Suchindex mit Hilfe von Luke bestätigte den Verdacht, dass der gesamte Index keinerlei Umlaute enthielt. Die Ursache konnte demzufolge nur damit zusammenhängen, dass der Lucene-Suchindex über die Kommandozeile mit dem PHP- Command Line Interface aufgebaut wurde. Offenbar liefert MS-SQL andere Daten, abhängig vom Kontext in dem es aufgerufen wird.
Nach einer längeren Recherche fand sich dann auch tatsächlich folgendes:
The Microsoft library (DBLIB) detects the context it is used in. Calling a php script using the cli version of PHP uses the default codepage for a DOS box (437 for US). If the same script is called from CGI or ISAPI it will use the Ansi codepage (1252 or whatever your system is configured for).
Tatsächlich lieferte die Datenbank bei ISAPI-Aufrufen CP1252 zurück, vom CLI kam jedoch CP850 an, das alte westeuropäische MS-DOS Standardencoding.
Nun hätte man mittels iconv natürlich auch CP850 in UTF-8 umwandeln können, allerdings gab es ja bereits eine iconv-Konvertierung von CP1251 nach UTF-8, diese Möglichkeit schied also aus. Letztgenannte sorgte übrigens für das vollständige Verschwinden aller Umlaute aus dem Suchindex, sodass nicht einmal mehr die falschen Sonderzeichen im Suchindex gelandet sind.
Die Lösung für den schwer durchschauenden Fehler war dann letztlich jedoch einfach: Oben genanntes Verhalten des MS-SQL Servers lässt sich über eine Checkbox im SQL-Server-Clientkonfigurationsprogramm unter “DB-Bibiliotheksoptionen” steuern.
Entfernt man das Häkchen bei “Automatische Konvertierung von ANSI in OEM” werden die Daten auch auf der Kommandozeile im vorgegebenen Format (hier CP1252) ausgeliefert.
Wird dann der Suchindex neu aufgebaut, klappt es auch mit den Umlauten.
Falls man keinen Zugriff auf den SQL-Server hat, oder die Einstellung aus einem anderen Grund nicht ändern will, kann man das Problem auch umgehen. Dazu ersetzt man den Kommandozeilenaufruf der php.exe durch den ebenfalls im PHP-Standard enthaltenen php-win.exe Wrapper. Dadurch wird dem SQL-Server ein ISAPI-Aufruf vorgegaukelt und er liefert ebenfalls das korrekte Encoding zurück.
Am 07.09.2009 fand in Dresden die bereits im Vorfeld hier erwähnte Jubiläumsveranstaltung der SQL Pass Group statt. Thema sollte die bevorstehende Release 2 von SQL Server 2008 (Codename Madison) mit ihren Möglichkeiten zu Self Service BI, SQL Server Data Warehouse Scale Out und weiteren Neuheiten sein.
Leider musste Sprecher Georg Urban wegen Krankheit kurzfristig absagen, weshalb die Veranstaltung wohl hätte ins Wasser fallen müssen, wenn PASS-Organisator Ralf Dietrich nicht einen vollwertigen Ersatz “besorgt” hätte: Andreas Wolter informierte über Reporting Services 2008 Berichtsdesign Features.
Berichte auf Basis der Reporting Services 2008 sehen auf den ersten Blick mit RS 2005 fast identisch aus. Unter der Haube aber ergeben sich ganz neue Möglichkeiten. Andreas Wolter stellte neue bzw. verbesserte Features wie Tablix, Charts und Gauges (KPI) mit möglichen Anwendungsszenarien vor. Zum Schluss gab es mit dem aktuellen Report Builder 3.0 CTP doch noch einen Vorab-Blick auf Release 2, dort stachen insbesondere die wirklich gut integrierten Bing Maps sehr positiv hevor.
Am Ende waren sich alle darin einig, dass es ein äußerst informativer Vortrag (dafür ein Dankeschön an Andreas) zu einem interessanten Thema und deutlich mehr als ein “Lückenbüßer” (und dafür noch eines an Ralf, der dies noch so kurzfristig “heranorganisierte”) war!
Am 20.11.2009 ist das nächste Treffen der PASS Regionalgruppe Sachsen angesetzt, Thema wird SQL Server Sizing mit einer kurzen Einführung und anschließender Diskussion/ Erfahrungsaustausch sein. Der am Montag ausgefallende Vortrag von Georg Urban soll nicht aufgehoben, sondern nur aufgeschoben sein: geplant ist Januar 2010, der konkrete Termin wird dann rechtzeitig auf der Webseite der Regionalgruppe Sachsen bekannt gegeben.
Das nächste SQL Pass Treffen der Regionalgruppe Sachsen
findet bereits am 07.09.2009 18:30 wie gewohnt im IT Trainingshaus
(mittlerweile in den neuen Räumlichkeiten im 4. Obergeschoss) statt.
Es gibt eine Jubiläumsveranstaltung anlässlich des 5-jährigen Bestehens von PASS Deutschland e.V. und einen Vortrag zum Thema “SQL Server 2008 R2: Self Service BI, SQL Server Data Warehouse Scale Out und weitere Neuheiten”.
Anmelden kann man sich wie immer mit einer kurzen Mail an Ralf Dietrich (rdi@sqlpass.de) oder an Ulrich Walter (uwa@sqlpass.de). Weitere Informationen gibt es auf der Homepage der Regionalgruppe Sachsen.
Am 14.08.2009 findet um 17:30 Uhr im IT Trainingshaus
das nächste Treffen der Regionalgruppe Sachsen
der SQL Pass Deutschland
statt.
Martin Hey von Communardo wird einen Vortrag zu Einsatz und Nutzen des in SQL Server 2008 neu eingeführten HierarchyId-Datentyps halten. Wer sich vorab schon mal auf Martins Blog über seine Posts zum Thema SQL Server informieren will, kann das hier tun (oder natürlich auch hier im Communardo TechBlog).
Für Getränke und Brötchen wird wie immer gesorgt sein, genauso wie für weiterführende Diskussionen rund um den Vortrag. Anmelden kann mann sich mit einer kurzen Mail an Ralf Dietrich (rdi@sqlpass.de) oder an Ulrich Walter (uwa@sqlpass.de). Die Anmeldung ist hilfreich für die Planung, aber Kurzentschlossene sind natürlich auch unangemeldet gern gesehen. Weitere Informationen gibt es auf der Homepage der Regionalgruppe Sachsen.
Wir freuen uns auf rege Teilnahme und auf einen spannenden Vortrag!
|
|
Communardo ist Partner der SQLdays, die von 29.-30. September 2009 in Rosenheim stattfinden. Sichern Sie sich am besten noch heute Ihre Teilnahme und sparen Sie so mit Promocode „SQL-Com89“ mindestens 100,- EUR auf den Konferenzpreis (bis 31. August 2009)! |
.
Seien auch Sie 2009 bei den SQLdays mit dabei – wenn es heißt „Von Profis für Profis“. So erfahren Sie im Detail, was der innovative Datenbank Server von Microsoft zu bieten hat, welche Trends aktuell sind und von welchen Tipps & Tricks Sie persönlich profitieren.
Und das sind die Highlights der SQLdays 2009:
Aktuelle Infos zu den SQLdays, zu allen Sessions, allen Sprechern, den Workshops und Anmeldung unter www.SQLdays.net.
Am 27.04.2009 fand im IT Trainingshaus ein Treffen der Regionalgruppe Sachsen der SQL Pass Deutschland statt. Diese SQL Server Usergroup trifft sich ca. alle 2 Monate in Dresden, Organisator ist Ralf Dietrich, welcher auch einen beachtlichen Anteil an Vorträgen zu den Treffen beisteuert. Des Weiteren werden im Wechsel Vorträge durch andere Mitglieder der Usergroup oder auch externe Speaker übernommen und natürlich kommt auch Networking nicht zu kurz.
Thema des gestrigen Treffens war die Europäische PASS Konferenz 2009, von der Ralf Dietrich ganz frisch und aus erster Hand berichtete. Davor und danach gab es einen angeregten Erfahrungsaustausch zum Thema SQL Server & Co. zwischen den Teilnehmern, wobei auch die von Microsoft gesponsorten belegten Brötchen ihre Abnehmer fanden
.
Wer an einer Mitarbeit in der Usergroup interessiert ist oder einfach mal beim nächsten Treffen vorbeischauen möchte, informiert sich am besten unter http://www.sqlpass.de/Regionalgruppen/Sachsen.
Genau wie der Datentyp HierarchyId, so sind auch die neuen räumlichen Datentypen geometry und geography CLR-Datentypen, die in jeder Datenbank verfügbar sind – unabhängig davon, ob CLR-Funktionen aktiviert sind.
Der geometry-Datentyp erlaubt die Darstellung von Daten im kartesischen Koordinatensystem und die Durchführung von Berechnungen mit diesen Daten.
Das möchte ich an einem Beispiel verdeutlichen:

In diesem Koordinatensystem befinden sich 2 geometrische Figuren. Ein Strahl mit den Endpunkten (0; 0), (100; 200) und ein Quadrat mit den Eckpunkten (-40; -40), (100; -40), (100; 100), und (-40, 100).
Die Deklaration einer Tabelle zur Speicherung der Daten ist recht trivial. Hierzu erzeugt man einfach eine Tabellenspalte vom Typ Geometry in die man die Daten schreibt.
Ich möchte hier allerdings auf die Möglichkeiten des Datentyps eingehen. Daher werden in den folgenden Beispielen nur Variablen dieses Datentyps erzeugt. Mit Hilfe der statischen Methode STGeomFromText kann aus einem normalsprachlichen Text (dem sogenannten “Well Known Text” = WKT) eine geometrische Instanz erzeugt werden. Im Beispiel ist das:
| DECLARE @line geometry; SET @line = geometry ::STGeomFromText(‘LINESTRING (0 0, 100 200)’,0) DECLARE @rectangle geometry; SET @rectangle = geometry ::STGeomFromText(‘POLYGON ((-40 -40, 100 -40, 100 100, -40 100, -40 -40))’,0) |
Wie man sieht, wird hier die Art der geometrischen Figur angegeben und Punkte, die die Figur näher beschreiben. Das Quadrat ist verallgemeinert ein Polygon, daher ist der WKT hier POLYGON. Zu beachten ist bei Polygonen, dass Start- und Endpunkt übereinstimmen müssen.
Soweit ganz gut. Das Erzeugen und Speichern von Daten an sich ist recht langweilig. Was können die Methoden, die geometry zur Verfügung stellt?
STAsText: STAsText gibt den WKT für ein geometry-Objekt zurück.
STArea: Diese Funktion berechnet die Oberfläche von geometrischen Objekten. Im Fall der Linie ist die Oberfläche 0, aber das ist ehrlich gesagt auch nicht verwunderlich. Im Fall des Quadrats hat die Methode korrekt 140 * 140 = 19600 zurückgegeben.
STIntersection: Mit STIntersection wird die Überschneidung zweier Objekte berechnet. Das Ergebnis der Berechnung im Beispiel ist eine Linie mit den Endpunkten (0; 0) und (50; 100) – und genau das kann man auch sehr schön im Diagramm ablesen.
STLength: Ein letztes Beispiel an dieser Stelle soll STLength sein. Wie der Name schon vermuten lässt, kann damit die Länge bzw. der Umfang der Objekte berechnet werden.
Die Anwendungsfälle dafür können sehr vielfältig sein. Beispielsweise könnte hier die Entfernung zwischen Gebäuden oder Objekten berechnet werden.
Die Berechnung von Entfernungen mit STLength oder Flächen mit STArea auf geraden Flächen ist nur dann sinnvoll, wenn es sich um kurze Distanzen handelt. Möchte man Entfernungen in der realen Welt berechnen, ist der geometry-Datentyp aufgrund der Krümmung der Erde nicht mehr geeignet. Der geography-Datentyp schafft hier Abhilfe:
Wie schon vom Geometry-Datentyp bekannt, kann ein Objekt mittels der statischen Methode STGeomFromText erzeugt werden. Allerdings spielt hier die dort recht unwichtige SRID hier eine wesentliche Rolle. Sie definiert, anhand welchen Standards Berechnungen durchgeführt werden. In der MSDN findet man zum Thema folgendes:
geometry Instances Default to Zero SRID
The default SRID for geometry instances in SQL Server is 0. With geometry spatial data, the specific SRID of the spatial instance is not required to perform calculations; thus, instances can reside in undefined planar space. To indicate undefined planar space in the calculations of geometry data type methods, the SQL Server Database Engine uses SRID 0.
geography Instances Must Use Supported SRID
SQL Server supports SRIDs based on the EPSG standards. A SQL Server-supported SRID for geography instances must be used when performing calculations or using methods with geography spatial data. The SRID must match one of the SRIDs displayed in the sys.spatial_reference_systems catalog view. As mentioned previously, when you perform calculations on your spatial data using the geography data type, your results will depend on which ellipsoid was used in the creation of your data, as each ellipsoid is assigned a specific spatial reference identifier (SRID).
SQL Server uses the default SRID of 4326, which maps to the WGS 84 spatial reference system, when using methods on geography instances. If you use data from a spatial reference system other than WGS 84 (or SRID 4326), you will need to determine the specific SRID for your geography spatial data.
Im Gegensatz zu Geometry muss für die Initialisierung der Geography-Objekte also zwingend eine SRID angegeben werden. Der Standard ist aktuell 4362. Eine Übersicht der gültigen SRIDs erhält man, wenn man die Systemsicht sys.spatial_reference_systems aufruft:

Es gibt noch eine weitere Einschränkung: Geography-Instanzen dürfen die Hemisphäre nicht überschreiten. Diese Einschränkung spielt natürlich erst dann eine Rolle, wenn man nicht mehr nur geographische Punkte speichert, sondern Berechnungen durchführen möchte und z.B. Entfernungen berechnet. Eine in meinen Augen gute Erklärung für diese Einschränkung liefert ein Blogeintrag von Steve Kass zum Thema. Darin wird auch gut beschrieben, weshalb die Punkte von Polygonen immer entgegen des Uhrzeigersinns angegeben werden müssen.
Releaseparty at Atlassian? Confluence 3.2 BETA and 3.1.2 with soms bugfixes were released yesterday. [...]
Tino Schmidt's Vortrag zu Enterprise Mashups auf der webciety, 4.3 Remix the Web http://bit.ly/d26rtA [...]
neuer Blogpost: February Cumulative Update (2010) http://bit.ly/cwxZGE [...]
Webinar am 16.03.: „Communote Enterprise Microblogging - Funktionen und Einsatzbereiche im Unternehmen“ http://bit.ly/96eexF [...]