SQL Server 2005 Übersicht für Entwickler Sebastian Weber Microsoft Deutschland GmbH...

Post on 06-Apr-2015

112 views 0 download

Transcript of SQL Server 2005 Übersicht für Entwickler Sebastian Weber Microsoft Deutschland GmbH...

SQL Server 2005Übersicht für Entwickler

Sebastian WeberMicrosoft Deutschland GmbH

Sebastian.Weber@microsoft.comhttp://blogs.msdn.com/sebweber

2

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

3

Grobarchitektur des Systems

Kunden

Eigenes Management

SQL Server

XML Daten Importer

Web Service Zugang

Berichte & Auswertunge

n

BestellungenVerlag

e

4

Warum erfinden

wir das Rad

ständig neu?

5

SQL Server 2005 Plattform

6

Agenda

• Die Services im Überblick

• Erweiterungen der Datenbank• T-SQL Erweiterungen• .NET Framework Integration• XML & Web Service Unterstützung

7

Integration Services

• ETL-Platform

• “Best in Class”-

Usability

• Workflow Designer

• Erweiterbar

8

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

9

Analysis Services

• Business Intelligence

• Unified Dimensional

Model

• Real-time

• Web Services

10

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

11

Reporting Services

• Berichte erstellen,

verwalten und verteilen

• Office Integration

• Verschiedene

Datenquellen

• Verschiedene

Ausgabeformate

Reporting Services

13

Mehr zu Reporting Services

• Vortrag „Reporting Services“Ruprecht Dröge, Dienstag 20.9., 14:15h - 15:30h

14

Notification Services

• Plattform für Benachrichtigungsanw

• Deklaratives Programmiermodell

• Effizienter und skalierende Ausführungsdienst

• Entwickler schreibt Benachrichtigungsanw

15

Replication Services

• Standort-übergreifende Datenverteilung

• Peer-to-Peer Verteilung

• Verteilung von Volltextindizes

• Web-Synchronisation

• Monitoring

AA BB

CC

16

Service Broker

AA BBKommunikationKommunikation

CC

TransportTransport

DD

TransportTransport

TransportTransport

• Plattform für asynchrone

Datenbankanwendungen

• T-SQL Integration

• Transaktionen

• Zuverlässige Übermittlung

17

Mehr zu Service Broker

• Vortrag „SQL Server Service Broker“Marcel Gnoth, Dienstag 20.9., 12:00h – 13:15h

18

SQL Server 2005 Plattform

19

Agenda

• Die Services im Überblick

• Erweiterungen der Datenbank• T-SQL Erweiterungen

• .NET Framework Integration

• XML & Web Service Unterstützung

20

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

21

Snapshot Isolation Level

Record 1„Kopie“

SQL Server 2005 Zugriff auf vorherigen Wert möglich!

Record 1schreibt

möchte lesen

Sql Server 2000 Max. Dirty-Read

22

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

23

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

24

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 …

25

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

27

Zusammengefasst: T-SQL

• varchar(max), nvarchar(max), varbinary(max)

• CTE

• EXCEPT/INTERSECT

• SELECT Row_Number() OVER …

28

Mehr zu T-SQL

• Vortrag „Neue T-SQL Features“Jörg Neumann, Dienstag 20.9., 14:15h – 15:30h

29

Agenda

• Die Services im Überblick

• Erweiterungen der Datenbank• T-SQL Erweiterungen

• .NET Framework Integration

• XML & Web Service Unterstützung

30

Was bietet die Integration?

• Serverseitige Routinen in C#, VB.NET, …

• Stored Procedures, Functions, Triggers, Data

Types & Aggregates

• Erweitertes Sicherheitsmodell

• Einheitliche Entwicklungsumgebung

• Performancevorteile

31

So geht‘s!

SQL Abfragen: SELECT GetOrderCount(region) FROM order

SQL Abfragen: SELECT GetOrderCount(region) FROM order

VS .NET

Projekt

VS .NET

Projekt

VB,C#,C++ Build

SQL Serve

r

SQL Definitionen: create assembly … create function … create procedure … create trigger …create type …

SQL Definitionen: create assembly … create function … create procedure … create trigger …create type …

Assembly

32

ImplementierungImplementierungServercode

Statische Methoden mit „[Attribut]“

• Stored Procedures, Functions & Triggers

• Aggregates Implementierung als Struct mit Attribut [SqlUserDefinedAggregate]

• Types Implementierung als Klasse oder Struct mit Attribut

So geht’s im Detail!

34

.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

35

Mehr zu .NET Integration

• Vortrag „SQL Server CLR Integration“Sebastian Weber, Dienstag 20.9., 12h – 13:15h

36

Agenda

• Die Services im Überblick

• Erweiterungen der Datenbank• T-SQL Erweiterungen

• .NET Framework Integration

• XML & Web Service Unterstützung

37

<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

38

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 …

CREATE TABLE XmlTabelle {ID int,MeinXml XML ('MeinSchema.xsd')

}

CREATE INDEX idx_MeinXml ON XmlTabelle (MeinXml);

39

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

40

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

41

Mehr zu XML

• Vortrag „XML im SQL Server“Ruprecht Dröge, Dienstag 20.9., 17:30h – 18:45h

42

• Zahlreiche Zugriffsoptionen vorhanden

• Aber 1: trotzdem nicht für jeden erreichbar

• Aber 2: weit weg vom Server

Zugang zum SQL Server 2000

TDS/TDS/TCPTCP

NamedNamedPipesPipes

TDS/TDS/TCPTCP

NamedNamedPipesPipes

ODBC, ODBC, OLE OLE DB, DB,

Ado.NeAdo.Nett

ODBC, ODBC, OLE OLE DB, DB,

Ado.NeAdo.Nett

SQL SQL SERVERSERVER

SQL SQL SERVERSERVERSQLXMSQLXM

LLIISIIS

SQLXMSQLXMLL

IISIIS

43

Zugang zum SQL Server 2005

TDS/TDS/TCPTCP

NamedNamedPipesPipes

TDS/TDS/TCPTCP

NamedNamedPipesPipes

ODBC, ODBC, OLE OLE DB, DB,

Ado.NeAdo.Nett

ODBC, ODBC, OLE OLE DB, DB,

Ado.NeAdo.Nett SQL SQL

SERVERSERVER

SQL SQL SERVERSERVER

SOAP/SOAP/HTTPHTTP

SOAP/SOAP/HTTPHTTP

SQLXMSQLXMLL

IISIIS

SQLXMSQLXMLL

IISIIS

(Unix) Client(Unix) Client(Unix) Client(Unix) Client

44

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

45

Mehr zu Web Services

• Vortrag „SQL Server Web Services“Jörg Neumann, Dienstag 20.9., 17:30h – 18:45h

46

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

47

Agenda

• Die Services im Überblick• Erweiterungen der Datenbank

• T-SQL Erweiterungen

• .NET Framework Integration

• XML & Web Service Unterstützung

48

SQL Server

XML Daten Importer

Web Service Zugang

Berichte & Auswertungen

Bestellungen

Warum das Rad neu erfinden?

SQL Web Services !

SQL Reporting Services !

XML !

IntegrationServices !

CLR !

Volltext-recherche !

49

Fragen und Antworten

Vielen Dank!Sebastian Weber

Sebastian.Weber@microsoft.com

http://blogs.msdn.com/sebweber

50

© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.