500 likes | 634 Views
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
E N D
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?
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
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
B A C Replication Services • Standort-übergreifende Datenverteilung • Peer-to-Peer Verteilung • Verteilung von Volltextindizes • Web-Synchronisation • Monitoring
B A Transport Transport C D Transport Service Broker Kommunikation • Plattform für asynchrone Datenbankanwendungen • T-SQL Integration • Transaktionen • Zuverlässige Übermittlung
Mehr zu Service Broker • Vortrag „SQL Server Service Broker“Marcel Gnoth, Dienstag 20.9., 12:00h – 13:15h
Agenda • Die Services im Überblick • Erweiterungen der Datenbank • T-SQL Erweiterungen • .NET Framework Integration • XML & Web Service Unterstützung
Neue Datentypen DDL Trigger DML mit Ausgabe TOP DRI Erweiterungen Fehlerbehandlung CTE Except und Intersect Viele neue Helfer … • Ranking Funktionalität • Index Verbesserungen • Snapshot Isolation Level • Recompile Optimierung • XML Showplan
Record 1„Kopie“ möchte lesen SQL Server 2005 Zugriff auf vorherigen Wert möglich! Sql Server 2000 Max. Dirty-Read Snapshot Isolation Level Record 1 schreibt
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
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
WITHProdukteCTE (Name, Kategorie)AS ( SELECTPName, KName FROM Produkte P INNERJOINKategorien K ON P.KategorieID = K.ID ) SELECT*FROMProdukteCTE … So sieht eine CTE aus! WITH <CTE-Name> (<Spaltennamen>) AS ( <Abfrage> ) SELECT *FROM <CTE-Name>
Der Traum von der Rekursion • Rekursion endet, wenn 2. Select kein Ergenis mehr liefert! WITH <CTE-Name> (<Spaltennamen>) AS ( <SELECT … FROM …> UNION ALL <SELECT … FROM CTE-Name> ) SELECT *FROM <CTE-Name>
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
SQL Definitionen: create assembly … create function … create procedure … create trigger … create type … SQL Server SQL Abfragen: SELECT GetOrderCount(region) FROM order So geht‘s! Assembly Build VB,C#,C++ VS .NET Projekt
Implementierung Servercode Implementierung als Struct mit Attribut [SqlUserDefinedAggregate] • Aggregates Implementierung • Stored Procedures, Functions & Triggers Statische Methoden mit „[Attribut]“ • Implementierung als Klasse oder Struct mit Attribut • Types
.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
CREATE TABLE XmlTabelle { ID int, MeinXml XML ('MeinSchema.xsd') } CREATE INDEXidx_MeinXmlON XmlTabelle (MeinXml); XML-Datentyp verwenden • Indexierung nur möglich, wenn dem Xml ein Schema zugewiesen wurde („typisiert“) • Volltext-Indexierung wird ebenfalls unterstützt! • Natürlich auch per Management Studio …
SELECTID, MeinXml.value('/Mein/XQuery‘, ‘string‘)AS Wert FROM XmlTabelle Die große Liebe: SQL + XML 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
SQL SERVER Zugang zum SQL Server 2000 • Zahlreiche Zugriffsoptionen vorhanden • Aber 1: trotzdem nicht für jeden erreichbar • Aber 2: weit weg vom Server ODBC, OLE DB, Ado.Net TDS/ TCP Named Pipes SQLXML IIS
SQL SERVER (Unix) Client Zugang zum SQL Server 2005 ODBC, OLE DB, Ado.Net TDS/ TCP Named Pipes SQLXML IIS SOAP/ HTTP
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 • 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
SQL Server Warum das Rad neu erfinden? CLR ! SQL Web Services ! Integration Services ! XML Daten Importer Bestellungen Web Service Zugang XML ! SQL Reporting Services ! Volltext-recherche ! Berichte & Auswertungen
Fragen und Antworten Vielen Dank! 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.