Gastbeitrag: Erste Erfahrungen mit SQL Server 2008 bei der Detecon International GmbH

Heute ein weiterer Gastbeitrag. Diesmal von Olaf Pietsch (Detecon). Detecon ist ein Tochterunternehmen der T-Systems, der Geschäftskundenmarke der Deutschen Telekom.

Disclaimer: Für alles Folgende ist Olaf Pietsch, Detecon, nicht ich verantwortlich.

Gruß & Dank an Olaf
Steffen Krause

 

Detecon (www.detecon.com) ist eines der weltweit führenden Unternehmen für integrierte Management- und Technologieberatung. 1977 wurde Detecon gegründet, um weltweit Beratungsleistungen für die Telekommunikationsindustrie anzubieten. Auf der Grundlage dieser Expertise und der wachsenden Bedeutung der IT- und TK-Technologien berät Detecon heute Kunden aus nahezu allen Branchen u.a. bei der Entwicklung neuer Geschäftsmodelle, der Optimierung von ICT -Strategien und -Strukturen sowie bei der Steigerung der Unternehmens-Effizienz durch verbesserte Organisation und Prozesse. Detecon bündelt heute das Wissen aus erfolgreich abgeschlossenen Management- und ICT-Projekten in über 100 Ländern.

Detecon setzte Microsoft SQL Server erstmalig in der Version 6.5 im eigenen Haus ein. Derzeit werden die Version SQL Server 2000, 2005 und 2008 genutzt. Im Dezember 2008 wurde ein erstes SQL Server 2005 Anwendungssystem auf die Version 2008 umgestellt. Über die ersten Erfahrungen berichtet Olaf Pietsch, der bei Detecon seit 1985 beschäftigt ist.

Seit 2003 besteht bei Detecon ein hausinternes Anwendungssystem, das Projekt- und Kundendaten verwaltet.

clip_image002Das System basiert auf SQL Server und wird laufend weiterentwickelt. Als Client wird ASP.net (inzwischen auch mit AJAX) eingesetzt, damit die Anwendung von jedem Arbeitsplatz aufgerufen werden kann, ohne dass lokal Software installiert werden muss (kein Distributionsaufwand). Nebenbei: mit diesem System wird auch ein unternehmensweiter Datenaustausch auf Basis SQL Server Integration Services realisiert, siehe White Paper der Firma Fujitsu Siemens: https://www.fsc-mediaserver.com/mediaserver/clientview/server/infomedia/index.cfm?fuseaction=list&CFID=332170&CFTOKEN=68645&fid=3097

Das Server-System basiert auf der x64 Architektur. Genutzt wird das System von allen Beratern und internen Stellen im Haus.

Erfahrungen während der CTP Zeit des SQL Server 2008

Während der CTP Phase konnte ein wichtiges Detailproblem mit den vorhandenen Reports des neuen Reporting Service 2008 der CTP identifiziert werden, das Microsoft Redmond in der CTP Phase bereinigt hat. https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=296235.

Man sollte sich u. E. immer an einer CTP zum Austesten einer neuen Version beteiligen, um Erfahrungen frühzeitig machen zu können.

Erfahrungen mit dem neuen Setup des SQL Server 2008

Bei dem Upgrade auf SQL Server 2008 musste ein in-place Upgrade genutzt werden, da die vorhandene Installation auf der jeweiligen Server-Hardware weiter betrieben werden sollte.

Der Upgrade Advisor des SQL Server 2008 ist ein hilfreiches Tool, das zu empfehlen ist. Probleme können so vor dem eigentlichen Upgrade erkannt und beseitigt werden.

Beim Setup wurden einige Probleme hinsichtlich der Validierung der Service Accounts durch das neue Setup festgestellt. Hierfür wurde der Microsoft Support um Hilfe gebeten. Per Microsoft Connect erhielten wir dann einen Hinweis auf Probleme in Domänen Trusts, die gesondert gelöst werden mussten. Bei den Vorgänger Setups des SQL Servers konnten keine solche Probleme beobachtet werden. Das neue Setup scheint an dieser Stelle „empfindlicher“ zu sein. Jedoch ist eine weitere qualifizierte Aussage dazu nicht möglich.

Upgrade der SQL Datenbank

Die von uns entwickelte Datenbank (mit Versionsstand SQL Server 2005) konnten wir ohne Probleme auf die Version 2008 upgraden und sofort in den SQL Server 2008 Kompatibilitätsmodus 100 setzen.

Es wurde im Rahmen des Upgrades die bekannten Maßnahmen durchgeführt wie:

  • CHECKDB alle DB’s
  • DBCC UPDATEUSAGE (...)
  • DBCC UPDATEUSAGE (...) WITH COUNT_ROWS

Bzgl. SQL Server 2008 nutzen wir bereits die neuen Transact-SQL Features wie

  • MERGE,
  • Variablen-Initialiserung bei DECLARE,
  • Table Type Variablen/Parameter usw.

Für die neuen Datentypen wie Date wird es wohl noch etwas Zeit benötigen. Aber für das Jahr 2009 ist wieder eine Weiterentwicklung geplant.

CLR – Common Language Runtime

Wir nutzen die CLR des SQL Servers u. a. für Funktionen zur Dublettenvermeidung. Haben dort einen eigens entwickelten Wordbreaker in Verbindung mit Double Meta Phone im Einsatz, der die Namensbesonderheiten der Firmen im Telekom Konzern berücksichtigt.

Bei den Tests der Anwendung nach Upgrade wurde ein Fehler festgestellt, der das Speichern von Daten verhinderte. Die Ursache lag in der implementierten CLR Funktion des Wordbreakers. Die CLR Funktion, die auf SQL Server Version 2005 funktionsfähig ist, führte mit SQL Server 2008 zu einem Problem. Wir konnten unseren Code ändern. Einzelheiten sind zu finden: CLR Error: System.InvalidOperationException: Accessing members of an object from a wrong thread https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=382235

Reporting Service 2008

Einer der Hauptgründe für den Einsatz des Reporting Services 2008 war die Tablix Fähigkeit. Damit werden variable Spalten und Zeilen mit den entsprechend Zwischensummen und %-Berechnungen möglich, die sich dann auch noch durch den User auf- und zu klappen lassen.

Microsoft hat mit SQL Server Reporting Service 2008 neue Grafikelemente (Charts) eingeführt, die von der Firma Dundas entwickelt worden sind. Diese sind erheblich leistungsfähiger, als die, die mit Reporting Service 2005 ausgeliefert wurden.

Die neue Gestaltung der Oberfläche für das Design von Reports ist für uns verständlicher als die alte unter Reporting Service 2005. Die grünen Ecken der Report Felder unter Reporting Service 2005 wurden nicht unbedingt so gedeutet, dass sich dahinter Funktionen und Einstellungen befinden.

Eine Kleinigkeit: Beim in-place Upgrade von SQL Server 2005 löscht des Setup 2008 nicht alle Einstellungen des Reporting Service 2005 im IIS, z. B. die virtuellen Verzeichnisse, die nun überflüssig sind.

Nach Upgrade der vorhandenen Reports auf die Version SQL Server 2008 zeigten einige Reports nicht erwartetes Verhalten bei der Ausgabe nach Excel. In Excel wurde der Hinweis “#WERT!” in einigen Spalten angezeigt und nicht die Daten selbst. Nach einigem Suchen wurde der Zusammenhang erkannt. Es handelte sich um Spalten vom Zahlentyp int mit dem zugewiesenen Format „0“ im Report. Das Löschen des Formates beseitigte das Problem. Es handelt sich um einen Bug: https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=388063

Der neue Reporting Service 2008 ist schneller als der der Version 2005! Dies konnten wir (gefühlt) beobachten. Allerdings wird dies bei uns kaum bemerkt, da wir mit der alten Version kaum Performanceprobleme hatten und der Geschwindigkeitszuwachs u. E. nicht so groß ist.

Bzgl. des Reportingservice möchten wir anmerken, dass Microsoft doch noch einiges in Sachen Einstellung der Attribute von Charts im Visual Studio / Report Designer verbessern könnte, nicht alles ist optimal gelöst, bzw. verwirrend.

Der eigentliche Upgrade auf SQL Server 2008 Reporting Service verlief ohne Probleme. Nach dem Upgrade gab es eine Überraschung. In der Testphase wurde das leider nicht getestet, niemand hatte dort ein Problem erwartet.

Alle User (weltweit), die per Proxy auf den Reporting Service 2008 zugreifen, erhielten eine Anmeldebox und dann ein leeres Browser Fenster. Der Report wurde nicht angezeigt. Als Proxy werden Microsoft ISA Server eingesetzt. Unter SQL Server 2005, bei dem der Reporting Service den IIS verwendet, hatten wir überhaupt keine derartigen Probleme.

Der Microsoft Premier Support war über das Problem nach unserem Eindruck zunächst ebenso überrascht wie wir;-). Nach langem Suchen und Auswerten vieler Traces der http-Kommunikation zwischen Browser des Users, ISA-Server und Reporting Server konnte der Microsoft Premier Support uns einen ersten Lösungsvorschlag geben, der zurzeit im Unternehmen auf Seiteneffekte getestet wird:

https://support.microsoft.com/default.aspx?scid=kb;EN-US;885436

If the "401" response page content is smaller than 1,460 bytes, Internet Explorer closes the current connection and tries to reuse a previous connection from the keep-alive pool for that server. Because the ISA proxy, or any other proxy, has closed the related connection between the ISA proxy and the IIS server, you cannot reuse the Internet Explorer connection. Therefore, Internet Explorer produces an authentication prompt.

When the "401" response page is larger than 1,460 bytes, Internet Explorer must maintain the current connection so that it can drain the socket of all pending data. This behavior causes Internet Explorer to reuse this socket for the later NTLM authentication traffic. Therefore, the connection works seamlessly.

Der Registryeintrag 'ReleaseSocketDuring401Auth' auf dem PC des Users soll auf 0 gesetzt werden

Wünschenswert wäre, dass sich Änderungen am SQL Server Reporting Service 2008 gegenüber 2005 nicht negativ (wie in diesem Beispiel) auf die Unternehmenskommunikation auswirken.

Zum Schluss

Die geschilderten Erfahrungen in https://www.sqlpass.de/Default.aspx?tabid=178&EntryID=15 beim Upgrade auf SQL Server 2005 könnten durchaus sinngemäß für ein Update auf SQL Server 2008 hilfreich sein.

Olaf Pietsch ist Microsoft MVP SQL Server und unterstützt in unterschiedlichen Funktionen PASS Deutschland e. V. https://www.sqlpass.de als Community für SQL Server in Deutschland, PASS-Regionalgruppe Köln/Bonn/Düsseldorf: https://www.sqlpass.de/Regionalgruppen/KoelnBonnDuesseldorf/tabid/81/Default.aspx, sein Blog: https://www.sqlpass.de/PASSUserBlogs/tabid/178/BlogID/3/Default.aspx