SQL Server 2005 Übersicht für Entwickler Sebastian Weber Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com 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
Grobarchitektur des Systems Kunden Verlage XML Daten Importer Bestellungen Web Service Zugang Eigenes Management SQL Server Berichte & Auswertungen
Warum erfinden wir das Rad ständig neu?
SQL Server 2005 Plattform
Agenda Die Services im Überblick Erweiterungen der Datenbank T-SQL Erweiterungen .NET Framework Integration XML & Web Service Unterstützung
Integration Services ETL-Platform “Best in Class”-Usability Workflow Designer Erweiterbar
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
Analysis Services Business Intelligence Unified Dimensional Model Real-time Web Services
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
Reporting Services Berichte erstellen, verwalten und verteilen Office Integration Verschiedene Datenquellen Verschiedene Ausgabeformate
Reporting Services
Mehr zu Reporting Services Vortrag „Reporting Services“ Ruprecht Dröge, Dienstag 20.9., 14:15h - 15:30h
Notification Services Plattform für Benachrichtigungsanw Deklaratives Programmiermodell Effizienter und skalierende Ausführungsdienst Entwickler schreibt Benachrichtigungsanw
Replication Services Standort-übergreifende Datenverteilung Peer-to-Peer Verteilung Verteilung von Volltextindizes Web-Synchronisation Monitoring A B C
Service Broker Plattform für asynchrone Datenbankanwendungen Kommunikation A B Plattform für asynchrone Datenbankanwendungen T-SQL Integration Transaktionen Zuverlässige Übermittlung Transport Transport C D Transport
Mehr zu Service Broker Vortrag „SQL Server Service Broker“ Marcel Gnoth, Dienstag 20.9., 12:00h – 13:15h
SQL Server 2005 Plattform
Agenda Die Services im Überblick Erweiterungen der Datenbank T-SQL Erweiterungen .NET Framework Integration XML & Web Service Unterstützung
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
Snapshot Isolation Level Record 1 schreibt Sql Server 2000 Max. Dirty-Read Record 1 „Kopie“ SQL Server 2005 Zugriff auf vorherigen Wert möglich! möchte lesen
Mehr Speichern mit MAX varchar(max) und nvarchar(max) varbinary(max) Nachfolger von „text“ bzw. „ntext“ varbinary(max) Nachfolger von „image“ bis 2 GB (2^31 - 1 Bytes) .WRITE & SUBSTRING
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
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 …
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!
Rekursive CTE
Zusammengefasst: T-SQL varchar(max), nvarchar(max), varbinary(max) CTE EXCEPT/INTERSECT SELECT Row_Number() OVER …
Mehr zu T-SQL Vortrag „Neue T-SQL Features“ Jörg Neumann, Dienstag 20.9., 14:15h – 15:30h
Agenda Die Services im Überblick Erweiterungen der Datenbank T-SQL Erweiterungen .NET Framework Integration XML & Web Service Unterstützung
Was bietet die Integration? Serverseitige Routinen in C#, VB.NET, … Stored Procedures, Functions, Triggers, Data Types & Aggregates Erweitertes Sicherheitsmodell Einheitliche Entwicklungsumgebung Performancevorteile
So geht‘s! Build VS .NET Projekt SQL Server VB,C#,C++ Assembly SQL Definitionen: create assembly … create function … create procedure … create trigger … create type … SQL Abfragen: SELECT GetOrderCount(region) FROM order
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
So geht’s im Detail!
Fallweise Unterscheidung notwendig!! .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 Fallweise Unterscheidung notwendig!!
Mehr zu .NET Integration Vortrag „SQL Server CLR Integration“ Sebastian Weber, Dienstag 20.9., 12h – 13:15h
Agenda Die Services im Überblick Erweiterungen der Datenbank T-SQL Erweiterungen .NET Framework Integration XML & Web Service Unterstützung
<Damals/> & <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
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 …
Die große Liebe: SQL + XML SELECT ID, MeinXml.value('/Mein/XQuery‘, ‘string‘) AS Wert FROM XmlTabelle SELECT ID, MeinXml.value('/Mein/XQuery‘, ‘string‘) AS Wert FROM XmlTabelle
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
Mehr zu XML Vortrag „XML im SQL Server“ Ruprecht Dröge, Dienstag 20.9., 17:30h – 18:45h
Zugang zum SQL Server 2000 Zahlreiche Zugriffsoptionen vorhanden Aber 1: trotzdem nicht für jeden erreichbar Aber 2: weit weg vom Server SQL SERVER ODBC, OLE DB, Ado.Net TDS/ TCP Named Pipes SQLXML IIS
Zugang zum SQL Server 2005 SOAP/ HTTP TDS/ ODBC, TCP OLE DB, Named Ado.Net TDS/ TCP Named Pipes SQLXML IIS SOAP/ HTTP (Unix) Client
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
Mehr zu Web Services Vortrag „SQL Server Web Services“ Jörg Neumann, Dienstag 20.9., 17:30h – 18:45h
Zusammengefasst XML Web Services 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
Agenda Die Services im Überblick Erweiterungen der Datenbank T-SQL Erweiterungen .NET Framework Integration XML & Web Service Unterstützung
Warum das Rad neu erfinden? CLR ! SQL Web Services ! Integration Services ! XML Daten Importer Bestellungen Web Service Zugang XML ! SQL Server SQL Reporting Services ! Volltext-recherche ! Berichte & Auswertungen
Vielen Dank! Fragen und Antworten Sebastian Weber Sebastian.Weber@microsoft.com http://blogs.msdn.com/sebweber
© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.