SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland...

63
SQL Server 2005 SQL Server 2005 TechTalk TechTalk September 2005 September 2005 Sebastian Weber Sebastian Weber Developer Evangelist Developer Evangelist Microsoft Deutschland GmbH Microsoft Deutschland GmbH [email protected] [email protected] http://blogs.msdn.com/sebweber http://blogs.msdn.com/sebweber

Transcript of SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland...

Page 1: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

SQL Server 2005 SQL Server 2005 TechTalkTechTalkSeptember 2005September 2005

Sebastian WeberSebastian WeberDeveloper EvangelistDeveloper EvangelistMicrosoft Deutschland GmbHMicrosoft Deutschland GmbH

[email protected]@microsoft.comhttp://blogs.msdn.com/sebweberhttp://blogs.msdn.com/sebweber

Page 2: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Eine persönliche Fallstudie Eine persönliche Fallstudie ……

„„Großhandel“ für digitale MedienGroßhandel“ für digitale Medien

> 15 Mio. Medien> 15 Mio. Medien

Verlage haben verschiedene FormateVerlage haben verschiedene Formate

> 30 Formate> 30 Formate

Integration der Dienste in Kunden-Integration der Dienste in Kunden-

IntranetsIntranets

XML Web ServicesXML Web Services

Page 3: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Grobarchitektur des Grobarchitektur des SystemsSystems

Kunden

Eigenes Management

SQL Server

XML Daten Importer

Web Service Zugang

Berichte & Auswertunge

n

BestellungenVerlag

e

Page 4: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Warum Warum erfindenerfinden

wir das Rad wir das Rad

ständig neu?ständig neu?

Page 5: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

SQL Server 2005 PlattformSQL Server 2005 Plattform

Page 6: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

AgendaAgenda

Die Services im ÜberblickDie Services im Überblick

Erweiterungen der DatenbankErweiterungen der DatenbankT-SQL ErweiterungenT-SQL Erweiterungen

.NET Framework Integration.NET Framework Integration

XML & Web Service UnterstützungXML & Web Service Unterstützung

VolltextrechercheVolltextrecherche

Page 7: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Integration ServicesIntegration Services

ETL-PlatformETL-Platform

““Best in Class”-Best in Class”-

UsabilityUsability

Workflow DesignerWorkflow Designer

ErweiterbarErweiterbar

Page 8: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Analysis ServicesAnalysis Services

Business IntelligenceBusiness Intelligence

Unified Dimensional Unified Dimensional ModelModel

Real-timeReal-time

Web ServicesWeb Services

Page 9: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Reporting ServicesReporting Services

Berichte erstellen, Berichte erstellen,

verwalten und verwalten und

verteilenverteilen

Office IntegrationOffice Integration

Verschiedene Verschiedene

DatenquellenDatenquellen

Verschiedene Verschiedene

AusgabeformateAusgabeformate

Page 10: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Reporting ServicesReporting Services

• Report BuilderReport Builder• Visual Studio IntegrationVisual Studio Integration

Page 11: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Demo: Report BuilderDemo: Report Builder

Page 12: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Demo: Visual Studio Demo: Visual Studio IntegrationIntegration

Page 13: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Notification ServicesNotification Services

Plattform für Plattform für BenachrichtigungsanwBenachrichtigungsanw..

Deklaratives Deklaratives ProgrammiermodellProgrammiermodell

Effizienter und Effizienter und skalierende skalierende AusführungsdienstAusführungsdienst

Entwickler schreibt Entwickler schreibt BenachrichtigungsanwBenachrichtigungsanw..

Page 14: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Replication ServicesReplication Services

Standort-übergreifende Standort-übergreifende DatenverteilungDatenverteilung

Peer-to-Peer VerteilungPeer-to-Peer Verteilung

Verteilung von Verteilung von VolltextindizesVolltextindizes

Web-SynchronisationWeb-Synchronisation

MonitoringMonitoring

AA BB

CC

Page 15: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Service BrokerService Broker

AA BBKommunikationKommunikation

CC

TransportTransport

DD

TransportTransport

TransportTransport

Plattform für asynchrone Plattform für asynchrone

DatenbankanwendungenDatenbankanwendungen

T-SQL IntegrationT-SQL Integration

TransaktionenTransaktionen

Zuverlässige ÜbermittlungZuverlässige Übermittlung

Page 16: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

SQL Server 2005 PlattformSQL Server 2005 Plattform

Page 17: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

AgendaAgenda

Die Services im ÜberblickDie Services im Überblick

Erweiterungen der DatenbankErweiterungen der DatenbankT-SQL ErweiterungenT-SQL Erweiterungen

.NET Framework Integration.NET Framework Integration

XML & Web Service UnterstützungXML & Web Service Unterstützung

VolltextrechercheVolltextrecherche

Page 18: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Viele neue Helfer …Viele neue Helfer …

Neue DatentypenNeue Datentypen

DDL TriggerDDL Trigger

DML mit AusgabeDML mit Ausgabe

TOPTOP

DRI ErweiterungenDRI Erweiterungen

FehlerbehandlungFehlerbehandlung

CTECTE

Except und IntersectExcept und Intersect

Ranking Ranking FunktionalitätFunktionalität

Index Index VerbesserungenVerbesserungen

Snapshot Isolation Snapshot Isolation LevelLevel

Recompile Recompile OptimierungOptimierung

XML ShowplanXML Showplan

Page 19: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Mehr Speichern mit MAXMehr Speichern mit MAX

varchar(max) und nvarchar(max)varchar(max) und nvarchar(max)Nachfolger von „text“ bzw. „ntext“Nachfolger von „text“ bzw. „ntext“

varbinary(max)varbinary(max)Nachfolger von „image“Nachfolger von „image“

bis 2 GB (2^31 - 1 Bytes)bis 2 GB (2^31 - 1 Bytes)

.WRITE & SUBSTRING.WRITE & SUBSTRING

Page 20: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Versuchen & FangenVersuchen & Fangen

BEGIN TRYsql statements …

END TRYBEGIN CATCH

sql statements …END CATCH

Fehlerbehandlung á la C# & Co.Fehlerbehandlung á la C# & Co.

Verschachtelungen möglichVerschachtelungen möglich

Kein „Rausfliegen“ aus Batches Kein „Rausfliegen“ aus Batches mehr!mehr!

Page 21: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Common Table ExpressionsCommon Table Expressions

Common Table Expression (CTE)Common Table Expression (CTE)Sind so was wie „ad-hoc views“Sind so was wie „ad-hoc views“

Sind in SQL-99 definiertSind in SQL-99 definiert

Sind weniger kompliziert als man denktSind weniger kompliziert als man denkt

CTEs sind Eintrittskarte zur RekursionCTEs sind Eintrittskarte zur RekursionIterativer Ansatz meist deutlich Iterativer Ansatz meist deutlich aufwändigeraufwändiger

Page 22: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

So sieht eine CTE aus!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 …

Page 23: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Der Traum von der Der Traum von der RekursionRekursion

WITH <CTE-Name> (<Spaltennamen>) AS ( <SELECT … FROM …>

UNION ALL <SELECT … FROM CTE-Name>

)SELECT * FROM <CTE-Name>

Rekursion endet, wenn 2. Select kein Rekursion endet, wenn 2. Select kein Ergebnis mehr liefert!Ergebnis mehr liefert!

Page 24: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

T-SQLT-SQL

Rekursive CTERekursive CTE EXCEPT / INTERSECTEXCEPT / INTERSECT TOPTOP Row_Number() OVER (…)Row_Number() OVER (…) OUTPUTOUTPUT

Page 25: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Demo: Rekursive CTE Demo: Rekursive CTE AbfrageAbfrage

DECLARE @StartOrt char(50);SET @StartOrt = ‘Frankfurt';

WITH cte (ID, Ort, Macht) AS( SELECT ID, Ort, Macht FROM DieWelt

WHERE Ort = @StartOrt

UNION ALL

SELECT dw.ID, dw.Ort, dw.Macht FROM DieWelt dw JOIN cte ON dw.ID = cte.Macht)

SELECT * FROM cte ORDER BY ID

Page 26: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Demo: EXCEPT & Demo: EXCEPT & INTERSECTINTERSECT

-- “Zeige Daten von A, die nicht in B stehen”SELECT * FROM A;EXCEPTSELECT * FROM B;

-- “Zeige Daten, die in A und B stehen”SELECT * FROM A;INTERSECTSELECT * FROM B;

Page 27: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Demo: TOPDemo: TOP

-- TOP unterstützt Ausdrücke:DECLARE @n INT;SET @n = 3;SELECT TOP (@n) FROM A;

-- TOP auch in DML:UPDATE TOP (5) A SET x=1, y=2;DELETE TOP (5) ...INSERT TOP (5) ... SELECT * ...

Page 28: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Demo: Paging dank CTEDemo: Paging dank CTE

WITH Namen AS(SELECT Row_Number() OVER (ORDER BY Nachname) ASNummer, Nachname, Vorname FROM NamenNeu )

SELECT * FROM NamenWHERE Nummer BETWEEN 5 AND 9

Page 29: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Demo: OUTPUTDemo: OUTPUT

-- Zugriff auf alte und neue Werte: UPDATE Tabelle SET A=1 OUTPUT INSERTED.*, DELETED.*

-- Zugriff auf eingefügten Datensatz (berechnete -- Spalten, AutoIncs …): INSERT Tabelle (Wert) VALUES (42) OUTPUT INSERTED.*

-- Zugriff auf gelöschten DatensatzDELETE FROM Tabelle OUTPUT DELETED.*

Page 30: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Zusammengefasst: T-SQLZusammengefasst: T-SQL

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

TRY / CATCHTRY / CATCH

CTECTE

EXCEPT/INTERSECTEXCEPT/INTERSECT

TOPTOP

SELECT Row_Number() OVER …SELECT Row_Number() OVER …

OUTPUTOUTPUT

Page 31: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

AgendaAgenda

Die Services im ÜberblickDie Services im Überblick

Erweiterungen der DatenbankErweiterungen der DatenbankT-SQL ErweiterungenT-SQL Erweiterungen

.NET Framework Integration.NET Framework Integration

XML & Web Service UnterstützungXML & Web Service Unterstützung

VolltextrechercheVolltextrecherche

Page 32: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Was bietet die Was bietet die Integration?Integration?

Serverseitige Routinen in C#, Serverseitige Routinen in C#,

VB.NET, …VB.NET, …

Stored Procedures, Functions, Triggers, Stored Procedures, Functions, Triggers,

Data Types & AggregatesData Types & Aggregates

Erweitertes SicherheitsmodellErweitertes Sicherheitsmodell

Einheitliche EntwicklungsumgebungEinheitliche Entwicklungsumgebung

PerformancevorteilePerformancevorteile

Page 33: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Integration != IntegrationIntegration != IntegrationHier: SQL 2000 Extended Stored ProceduresHier: SQL 2000 Extended Stored Procedures

ClientClient

SqlServr.exeSqlServr.exe

Daten

Daten

Ext. SPSelect *Ext. SPSelect *

1. Connection

Select *Select *

2. Connection

2. Thread

Abbildung aus A First Look at SQL Server 2005 for Developers, AW

Page 34: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

SQL Server 2005SQL Server 2005Beste Integration der Welt!Beste Integration der Welt!

SqlServr.exeSqlServr.exe

Daten

Daten

SqlCommand cmd = ...cmd.ExecuteNonQuery

()

SqlCommand cmd = ...cmd.ExecuteNonQuery

()

Managed Code

Unmanaged Code

PInvoke

Abbildung aus A First Look at SQL Server 2005 for Developers, AW

ClientClient1. Connection

Page 35: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

ImplementierungImplementierung

ImplementierungImplementierungServercodeServercode

Statische Statische Methoden mit Methoden mit „[Attribut]“„[Attribut]“

• Stored Procedures, Stored Procedures, Functions & Functions & TriggersTriggers

• AggregatesAggregates Implementierung Implementierung als Struct mit als Struct mit Attribut Attribut [SqlUserDefinedAggregate[SqlUserDefinedAggregate]]• TypesTypes Implementierung Implementierung als Klasse oder als Klasse oder Struct mit AttributStruct mit Attribut[SqlUserDefinedType][SqlUserDefinedType]

Page 36: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

So geht‘s!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

Page 37: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

So geht’s im Detail!So geht’s im Detail!

• Stored Procedure in C#Stored Procedure in C#• User Defined Type in C#User Defined Type in C#

Page 38: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Demo: Stored ProcedureDemo: Stored Procedure

[SqlProcedure]public static void ZeigeDaten (string tabelle, string spalte){ // Context Connection öffnen SqlConnection conn = new SqlConnection(); conn.ConnectionString = “context connection = true”; conn.Open();

// Command “zusammen hacken” SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = “SELECT “ + splate + “ FROM “ + tabelle;

// Ergebnis des Readers an Client “senden” SqlContext.Pipe.Send(cmd.ExecuteReader());}

Page 39: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Demo: User Defined TypeDemo: User Defined Type

[SqlUserDefinedType(Format.Native)]public struct MeinRechteck : INullable{ public SqlDouble Laenge; public SqlDouble Breite; // “String-Handhabung” public override string ToString() { /*…*/} public static MeinRechteck Parse(SqlString s) {/*…*/}

// “Null-Handhabung” public bool IsNull { get {/*…*/} } public static MeinRechteck Null { get {/*…*/} }}

Page 40: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

.NET oder T-SQL?.NET oder T-SQL?

Verwenden Sie .NET Routinen …Verwenden Sie .NET Routinen …… … wenn es mit T-SQL nicht möglich istwenn es mit T-SQL nicht möglich ist

… … für aufwendige Rechenoperationenfür aufwendige Rechenoperationen

… … um Logik zu implementierenum Logik zu implementieren

… … wenn auf wenige Daten zugegriffen wenn auf wenige Daten zugegriffen wirdwird

Verwenden Sie T-SQL …Verwenden Sie T-SQL …… … bei daten-intensiven Abfragenbei daten-intensiven Abfragen

Fallweise Unterscheidung notwendig!!Fallweise Unterscheidung notwendig!!

Page 41: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

AgendaAgenda

Die Services im ÜberblickDie Services im Überblick

Erweiterungen der DatenbankErweiterungen der DatenbankT-SQL ErweiterungenT-SQL Erweiterungen

.NET Framework Integration.NET Framework Integration

XML & Web Service UnterstützungXML & Web Service Unterstützung

VolltextrechercheVolltextrecherche

Page 42: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

<Damals/> &amp; <Damals/> &amp; <Heute/><Heute/>

XML mit dem Sql Server 2000 XML mit dem Sql Server 2000 (SqlXml)(SqlXml)

Relationale Daten Relationale Daten XML (FOR XML) XML (FOR XML)XML XML Relationale Strukturen (OPEN Relationale Strukturen (OPEN XML)XML)XML-Dokumente als „Text“ speichernXML-Dokumente als „Text“ speichern

SQL Server 2005 bietet aber mehrSQL Server 2005 bietet aber mehrXML-Datentyp mit XSD-UnterstützungXML-Datentyp mit XSD-UnterstützungXQuery/XPath im Sql-Statement nutzbarXQuery/XPath im Sql-Statement nutzbarIndexierung der XML-KnotenIndexierung der XML-KnotenVerbesserung FOR XML und OPEN XMLVerbesserung FOR XML und OPEN XML

Page 43: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

XML-Datentyp verwendenXML-Datentyp verwenden

Indexierung nur möglich, wenn dem Xml ein Indexierung nur möglich, wenn dem Xml ein Schema zugewiesen wurde („typisiert“)Schema zugewiesen wurde („typisiert“)

Volltext-Indexierung wird ebenfalls unterstützt!Volltext-Indexierung wird ebenfalls unterstützt!

Natürlich auch per Management Studio …Natürlich auch per Management Studio …

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

}

CREATE INDEX idx_MeinXml ON XmlTabelle (MeinXml);

Page 44: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Die große Liebe: SQL + Die große Liebe: SQL + XMLXML

SELECT ID, MeinXml.value('/Mein/XQuery‘, ‘string‘) AS Wert FROM XmlTabelle

SELECT ID, MeinXml.value('/Mein/XQuery‘, ‘string‘) AS Wert FROM XmlTabelle

Page 45: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

XML ZugriffsmöglichkeitenXML Zugriffsmöglichkeiten

XML MethodenXML Methodenquery(), value(), exist(), modify(), query(), value(), exist(), modify(), nodes()nodes()

Komplexe XML-Operationen mit Komplexe XML-Operationen mit FLWORFLWOR

FLWOR spricht man „Flower“FLWOR spricht man „Flower“

Und bedeutet For-Let-Where-Order-Und bedeutet For-Let-Where-Order-ReturnReturn

Eigentlich nur FOWR, da „L“et noch nicht Eigentlich nur FOWR, da „L“et noch nicht supportedsupported

Page 46: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

XML im SQL ServerXML im SQL Server

• FLOWR-AusdruckFLOWR-Ausdruck

Page 47: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Demo: FLWOR-AusdruckDemo: FLWOR-Ausdruck

declare @x xmlset @x='<Bestellungen>

<Bestellung Name="Anne" Summe="110"/><Bestellung Name="Manfred" Summe="50"/><Bestellung Name="Peter" Summe="250"/><Bestellung Name="Marlene" Summe="75"/>

</Bestellungen>'

SELECT @x.query(' for $Bestellung in

//Bestellung[xs:double(@Summe) > 100]return string($Bestellung/@Name)

')

Page 48: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Zahlreiche Zugriffsoptionen Zahlreiche Zugriffsoptionen vorhandenvorhanden

Aber 1: trotzdem nicht für jeden Aber 1: trotzdem nicht für jeden erreichbarerreichbar

Aber 2: weit weg vom ServerAber 2: weit weg vom Server

Zugang zum SQL Server Zugang zum SQL Server 20002000

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

Page 49: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Zugang zum SQL Server Zugang zum SQL Server 20052005

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

Page 50: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

SQL Server Web ServicesSQL Server Web Services

Interessant hinsichtlich Interessant hinsichtlich Interoperabilität Interoperabilität

Getestet mit: Jbuilder 9, Axis 1.1, Perl, …Getestet mit: Jbuilder 9, Axis 1.1, Perl, …

SOAP/HTTPSOAP/HTTPLäuft ohne IISLäuft ohne IIS

~%40 schneller als SQLXML~%40 schneller als SQLXML

SQLXML bleibt bestehenSQLXML bleibt bestehenUpdategrams, Bulkload, Query strings in Updategrams, Bulkload, Query strings in URLURL

Page 51: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

ZusammengefasstZusammengefasst

XMLXMLEigener Datentyp mit XQuery SupportEigener Datentyp mit XQuery Support

Indexierung der Knoten möglichIndexierung der Knoten möglich

FOR XML / OPEN XML verbessertFOR XML / OPEN XML verbessert

Web ServicesWeb ServicesFlinker SOAP-Layer, ~40% schneller als Flinker SOAP-Layer, ~40% schneller als SQLXMLSQLXML

Kompatibilität zu anderen System Kompatibilität zu anderen System getestetgetestet

Gut für SOA-Träume?Gut für SOA-Träume?

Page 52: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

AgendaAgenda

Die Services im ÜberblickDie Services im Überblick

Erweiterungen der DatenbankErweiterungen der DatenbankT-SQL ErweiterungenT-SQL Erweiterungen

.NET Framework Integration.NET Framework Integration

XML & Web Service UnterstützungXML & Web Service Unterstützung

VolltextrechercheVolltextrecherche

Page 53: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Was ist Volltextrecherche?Was ist Volltextrecherche?

Quelle: http://wikipedia.deQuelle: http://wikipedia.de

Page 54: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Schneller & Besser als Schneller & Besser als LIKELIKE

Suchen wie eine SuchmaschineSuchen wie eine SuchmaschineRanking, Stemmers, Stop Words …Ranking, Stemmers, Stop Words …

Suche innerhalb der DokumenteSuche innerhalb der DokumenteWord, Excel, PowerPoint, …Word, Excel, PowerPoint, …

Erweiterbar durch IFilterErweiterbar durch IFilterbeispielsweise für PDFbeispielsweise für PDF

Abfrage per T-SQL BefehleAbfrage per T-SQL Befehle

Page 55: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Volltextindex ist etwas Volltextindex ist etwas andersanders

Nicht ein „normaler“ IndexNicht ein „normaler“ IndexAktivierung pro Datenbank notwendigAktivierung pro Datenbank notwendig

Braucht PflegeBraucht Pflege

Nicht zwingend aktuellNicht zwingend aktuell

SprachabhängigSprachabhängig

Replikation mit SQL Server 2005 Replikation mit SQL Server 2005 möglichmöglich

Page 56: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Suchen wie die Profis Suchen wie die Profis ……

• CONTAINSCONTAINS• FREETEXTFREETEXT

Page 57: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Demo: CONTAINSDemo: CONTAINS

-- Sucht gezielt nach dem AusdruckSELECT Volltext FROM VolltextTabelle WHERE CONTAINS(Volltext, ‘Auto AND CD AND NOT Monitor‘)

-- Zeigt zusätzlich noch den Ranking-Wert anSELECT Volltext, CT.Rank FROM VolltextTabelle JOIN CONTAINSTABLE(VolltextTabelle, Volltext, ‘Auto AND CD AND NOT Monitor‘);

Page 58: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Demo: FREETEXTDemo: FREETEXT

-- Sucht nach den besten Treffern für den AusdruckSELECT Volltext FROM VolltextTabelle WHERE FREETEXT(Volltext, ‘Ein Auto mit CD-Player‘)

-- Zeigt zusätzlich noch den Ranking-Wert anSELECT Volltext, CT.Rank FROM VolltextTabelle JOIN FREETEXTTABLE(VolltextTabelle, Volltext, ‘Ein Auto mit CD-Player‘);

Page 59: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

AnwendungsbeispieleAnwendungsbeispiele

Suche in Artikelstamm nach Suche in Artikelstamm nach BeschreibungBeschreibung

Dokumentenmanagement auf eigene Dokumentenmanagement auf eigene FaustFaust

Suchmaschinen, Buch-Shops, Suchmaschinen, Buch-Shops, Auktionsplattformen, Musik-Auktionsplattformen, Musik-DownloadsDownloads

Sie alle nutzen Volltextrecherche!Sie alle nutzen Volltextrecherche!

Page 60: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

AgendaAgenda

Die Services im ÜberblickDie Services im ÜberblickErweiterungen der DatenbankErweiterungen der Datenbank

T-SQL ErweiterungenT-SQL Erweiterungen

.NET Framework Integration.NET Framework Integration

XML & Web Service UnterstützungXML & Web Service Unterstützung

VolltextrechercheVolltextrecherche

Page 61: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

SQL Server

XML Daten Importer

Web Service Zugang

Berichte & Auswertungen

Bestellungen

Warum das Rad neu Warum das Rad neu erfinden?erfinden?

SQL Web Services !

SQL Reporting Services !

XML !

IntegrationServices !

CLR !

Volltext-recherche !

Page 62: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

Fragen und AntwortenFragen und Antworten

Vielen Dank!Vielen Dank!

Sebastian WeberSebastian Weber

[email protected]@microsoft.com

http://blogs.msdn.com/sebweberhttp://blogs.msdn.com/sebweber

Page 63: SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com.

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