SQL Server 2005 Übersicht für Entwickler Sebastian Weber Microsoft Deutschland GmbH [email protected] http://blogs.msdn.com/sebweber Eine persönliche Fallstudie … • „Großhandel“ für digitale Medien • > 15 Mio. Medien • Verlage haben verschiedene Formate • > 30 Formate • Integration der Dienste in Kunden-Intranets • XML Web Services 1 Grobarchitektur des Systems Kunden Verlage XML Daten Importer SQL Server Bestellungen Web Service Zugang Berichte & Auswertungen Eigenes Management 2 Warum erfinden wir das Rad ständig neu? 3 SQL Server 2005 Plattform 4 Agenda • Die Services im Überblick • Erweiterungen der Datenbank • T-SQL Erweiterungen • .NET Framework Integration • XML & Web Service Unterstützung 5 Integration Services • ETL-Platform • “Best in Class”Usability • Workflow Designer • Erweiterbar 6 Mehr zu Integration Services • Vortrag „Einführung Integration Services“ Willfried Färber, Dienstag 20.9., 16:00h - 17:15h • Vortrag „Praxisbeispiel Integration Services“ Willfried Färber, Mittwoch 21.9., 15:45h - 17:00h 7 Analysis Services • Business Intelligence • Unified Dimensional Model • Real-time • Web Services 8 Mehr zu Analysis Services • Vortrag „OLAP für den Massenmarkt?“ Markus Raatz, Mittwoch 21.9., 11:45h - 12:30h • Vortrag „SQL Server 2005 BI“ Meinrad Weiss, Mittwoch 21.9., 14:00h - 15:15h 9 Reporting Services • Berichte erstellen, verwalten und verteilen • Office Integration • Verschiedene Datenquellen • Verschiedene Ausgabeformate 10 Reporting Services Mehr zu Reporting Services • Vortrag „Reporting Services“ Ruprecht Dröge, Dienstag 20.9., 14:15h - 15:30h 12 Notification Services • Plattform für Benachrichtigungsanw • Deklaratives Programmiermodell • Effizienter und skalierende Ausführungsdienst • Entwickler schreibt Benachrichtigungsanw 13 Replication Services • Standort-übergreifende Datenverteilung B A • Peer-to-Peer Verteilung • Verteilung von Volltextindizes C • Web-Synchronisation • Monitoring 14 Service Broker Kommunikation • Plattform für asynchrone B A Datenbankanwendungen • T-SQL Integration • Transaktionen • Zuverlässige Übermittlung Transport C Transport D Transport 15 Mehr zu Service Broker • Vortrag „SQL Server Service Broker“ Marcel Gnoth, Dienstag 20.9., 12:00h – 13:15h 16 SQL Server 2005 Plattform 17 Agenda • Die Services im Überblick • Erweiterungen der Datenbank • T-SQL Erweiterungen • .NET Framework Integration • XML & Web Service Unterstützung 18 Viele neue Helfer … • • • • • • • • Neue Datentypen DDL Trigger DML mit Ausgabe TOP DRI Erweiterungen Fehlerbehandlung CTE Except und Intersect • Ranking Funktionalität • Index Verbesserungen • Snapshot Isolation Level • Recompile Optimierung • XML Showplan 19 Snapshot Isolation Level schreibt Record 1 Record 1 „Kopie“ Sql Server 2000 Max. Dirty-Read SQL Server 2005 Zugriff auf vorherigen Wert möglich! 20 Mehr Speichern mit MAX • varchar(max) und nvarchar(max) • Nachfolger von „text“ bzw. „ntext“ • varbinary(max) • Nachfolger von „image“ bis 2 GB (2^31 - 1 Bytes) .WRITE & SUBSTRING 21 Common Table Expressions • Common Table Expression (CTE) • Sind so was wie „ad-hoc views“ • Sind in SQL-99 definiert • Sind weniger kompliziert als man denkt • CTEs sind Eintrittskarte zur Rekursion • Iterativer Ansatz meist deutlich aufwändiger 22 So sieht eine CTE aus! WITH <CTE-Name> (<Spaltennamen>) AS ( <Abfrage> ) SELECT * FROM <CTE-Name> WITH ProdukteCTE (Name, Kategorie) AS ( SELECT PName, KName FROM Produkte P INNER JOIN Kategorien K ON P.KategorieID = K.ID ) SELECT * FROM ProdukteCTE … 23 Der Traum von der Rekursion WITH <CTE-Name> (<Spaltennamen>) AS ( <SELECT … FROM …> UNION ALL <SELECT … FROM CTE-Name> ) SELECT * FROM <CTE-Name> Rekursion endet, wenn 2. Select kein Ergenis mehr liefert! 24 Rekursive CTE Zusammengefasst: T-SQL • • • • varchar(max), nvarchar(max), varbinary(max) CTE EXCEPT/INTERSECT SELECT Row_Number() OVER … 26 Mehr zu T-SQL • Vortrag „Neue T-SQL Features“ Jörg Neumann, Dienstag 20.9., 14:15h – 15:30h 27 Agenda • Die Services im Überblick • Erweiterungen der Datenbank • T-SQL Erweiterungen • .NET Framework Integration • XML & Web Service Unterstützung 28 Was bietet die Integration? • Serverseitige Routinen in C#, VB.NET, … • Stored Procedures, Functions, Triggers, Data Types & Aggregates • Erweitertes Sicherheitsmodell • Einheitliche Entwicklungsumgebung • Performancevorteile 29 So geht‘s! Assembly VB,C#,C++ SQL Abfragen: SELECT GetOrderCount(region) FROM order VS .NET Projekt SQL Server Build SQL Definitionen: create assembly … create function … create procedure … create trigger … create type … 30 Implementierung Servercode Implementierung • Stored Procedures, Functions & Triggers Statische Methoden mit „[Attribut]“ • Aggregates Implementierung als Struct mit Attribut [SqlUserDefinedAggregate] • Types Implementierung als Klasse oder Struct mit Attribut 31 So geht’s im Detail! .NET oder T-SQL? • Verwenden Sie .NET Routinen … • • • • … wenn es mit T-SQL nicht möglich ist … für aufwendige Rechenoperationen … um Logik zu implementieren … wenn auf wenige Daten zugegriffen wird • Verwenden Sie T-SQL … • … bei daten-intensiven Abfragen 33 Mehr zu .NET Integration • Vortrag „SQL Server CLR Integration“ Sebastian Weber, Dienstag 20.9., 12h – 13:15h 34 Agenda • Die Services im Überblick • Erweiterungen der Datenbank • T-SQL Erweiterungen • .NET Framework Integration • XML & Web Service Unterstützung 35 <Damals/> &amp; <Heute/> • XML mit dem Sql Server 2000 (SqlXml) • Relationale Daten XML (FOR XML) • XML Relationale Strukturen (OPEN XML) • XML-Dokumente als „Text“ speichern • SQL Server 2005 bietet aber mehr • • • • XML-Datentyp mit XSD-Unterstützung XQuery/XPath im Sql-Statement nutzbar Indexierung der XML-Knoten Verbesserung FOR XML und OPEN XML 36 XML-Datentyp verwenden CREATE TABLE XmlTabelle { ID int, MeinXml XML ('MeinSchema.xsd') } CREATE INDEX idx_MeinXml ON XmlTabelle (MeinXml); • Indexierung nur möglich, wenn dem Xml ein Schema zugewiesen wurde („typisiert“) • Volltext-Indexierung wird ebenfalls unterstützt! • Natürlich auch per Management Studio … 37 Die große Liebe: SQL + XML SELECT ID, MeinXml.value('/Mein/XQuery‘, ‘string‘) AS Wert FROM XmlTabelle SELECT ID, MeinXml.value('/Mein/XQuery‘, ‘string‘) FROM XmlTabelle AS Wert 38 XML Zugriffsmöglichkeiten • XML Methoden • query(), value(), exist(), modify(), nodes() • Komplexe XML-Operationen mit FLWOR • FLWOR spricht man „Flower“ • Und bedeutet For-Let-Where-Order-Return • Eigentlich nur FOWR, da „L“et noch nicht supported 39 Mehr zu XML • Vortrag „XML im SQL Server“ Ruprecht Dröge, Dienstag 20.9., 17:30h – 18:45h 40 Zugang zum SQL Server 2000 SQLXML IIS ODBC, OLE DB, Ado.Net TDS/ TCP Named Pipes SQL SERVER • Zahlreiche Zugriffsoptionen vorhanden • Aber 1: trotzdem nicht für jeden erreichbar • Aber 2: weit weg vom Server 41 Zugang zum SQL Server 2005 SQLXML IIS ODBC, OLE DB, Ado.Net TDS/ TCP Named Pipes SQL SERVER SOAP/ HTTP (Unix) Client 42 SQL Server Web Services • Interessant hinsichtlich Interoperabilität • Getestet mit: Jbuilder 9, Axis 1.1, Perl, … • SOAP/HTTP • Läuft ohne IIS • ~%40 schneller als SQLXML • SQLXML bleibt bestehen • Updategrams, Bulkload, Query strings in URL 43 Mehr zu Web Services • Vortrag „SQL Server Web Services“ Jörg Neumann, Dienstag 20.9., 17:30h – 18:45h 44 Zusammengefasst • XML • Eigener Datentyp mit XQuery Support • Indexierung der Knoten möglich • FOR XML / OPEN XML verbessert • Web Services • Flinker SOAP-Layer, ~40% schneller als SQLXML • Kompatibilität zu anderen System getestet 45 Agenda • Die Services im Überblick • Erweiterungen der Datenbank • T-SQL Erweiterungen • .NET Framework Integration • XML & Web Service Unterstützung 46 Warum das Rad neu erfinden? CLR ! SQL Web Services ! Integration Services ! XML Daten Importer Bestellungen Web Service Zugang XML ! SQL Server Volltextrecherche ! Berichte & Auswertungen SQL Reporting Services ! 47 Fragen und Antworten Vielen Dank! Sebastian Weber [email protected] http://blogs.msdn.com/sebweber 48 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. 49