Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH"—  Präsentation transkript:

1 SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH

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 & Auswertungen Bestellungen Verlage

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 Volltextrecherche

7 Integration Services ETL-Platform Best in Class- Usability Workflow Designer Erweiterbar

8 Analysis Services Business Intelligence Unified Dimensional Model Real-time Web Services

9 Reporting Services Berichte erstellen, verwalten und verteilen Office Integration Verschiedene Datenquellen Verschiedene Ausgabeformate

10 Reporting Services Report Builder Report Builder Visual Studio Integration Visual Studio Integration

11 Demo: Report Builder

12 Demo: Visual Studio Integration

13 Notification Services Plattform für Benachrichtigungsanw. Deklaratives Programmiermodell Effizienter und skalierende Ausführungsdienst Entwickler schreibt Benachrichtigungsanw.

14 Replication Services Standort-übergreifende Datenverteilung Peer-to-Peer Verteilung Verteilung von Volltextindizes Web-SynchronisationMonitoring A B C

15 Service Broker A B KommunikationC Transport D Transport Transport Plattform für asynchrone Datenbankanwendungen T-SQL Integration Transaktionen Zuverlässige Übermittlung

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 Volltextrecherche

18 Viele neue Helfer … Neue Datentypen DDL Trigger DML mit Ausgabe TOP DRI Erweiterungen FehlerbehandlungCTE Except und Intersect Ranking Funktionalität Index Verbesserungen Snapshot Isolation Level Recompile Optimierung XML Showplan

19 Mehr Speichern mit MAX varchar(max) und nvarchar(max) Nachfolger von text bzw. ntext varbinary(max) Nachfolger von image bis 2 GB (2^ Bytes) bis 2 GB (2^ Bytes).WRITE & SUBSTRING.WRITE & SUBSTRING

20 Versuchen & Fangen BEGIN TRY sql statements … END TRY BEGIN CATCH sql statements … END CATCH Fehlerbehandlung á la C# & Co. Verschachtelungen möglich Kein Rausfliegen aus Batches mehr!

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 ( ) AS ( ) SELECT * FROM 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 ( ) AS ( UNION ALL ) SELECT * FROM Rekursion endet, wenn 2. Select kein Ergebnis mehr liefert! Rekursion endet, wenn 2. Select kein Ergebnis mehr liefert!

24 T-SQL Rekursive CTE Rekursive CTE EXCEPT / INTERSECT EXCEPT / INTERSECT TOP TOP Row_Number() OVER (…) Row_Number() OVER (…) OUTPUT OUTPUT

25 Demo: Rekursive CTE Abfrage char(50); 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

26 Demo: EXCEPT & INTERSECT -- Zeige Daten von A, die nicht in B stehen SELECT * FROM A; EXCEPT SELECT * FROM B ; -- Zeige Daten, die in A und B stehen SELECT * FROM A; INTERSECT SELECT * FROM B;

27 Demo: TOP -- TOP unterstützt Ausdrücke: INT; = 3; SELECT TOP FROM A; -- TOP auch in DML: UPDATE TOP (5) A SET x=1, y=2; DELETE TOP (5)... INSERT TOP (5)... SELECT *...

28 Demo: Paging dank CTE WITH Namen AS ( SELECT Row_Number() OVER (ORDER BY Nachname) AS Nummer, Nachname, Vorname FROM NamenNeu ) SELECT * FROM Namen WHERE Nummer BETWEEN 5 AND 9

29 Demo: 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 Datensatz DELETE FROM Tabelle OUTPUT DELETED.*

30 Zusammengefasst: T-SQL varchar(max), nvarchar(max), varbinary(max) TRY / CATCH CTEEXCEPT/INTERSECTTOP SELECT Row_Number() OVER … OUTPUT

31 Agenda Die Services im Überblick Erweiterungen der Datenbank T-SQL Erweiterungen.NET Framework Integration XML & Web Service Unterstützung Volltextrecherche

32 Was bietet die Integration? Serverseitige Routinen in C#, VB.NET, … Stored Procedures, Functions, Triggers, Data Types & Aggregates Erweitertes Sicherheitsmodell Einheitliche Entwicklungsumgebung Performancevorteile

33 Integration != Integration Hier: SQL 2000 Extended Stored Procedures Client SqlServr.exe Daten Ext. SP Select * 1. Connection Select * 2. Connection 2. Thread Abbildung aus A First Look at SQL Server 2005 for Developers, AW

34 SQL Server 2005 Beste Integration der Welt! SqlServr.exe 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 Client 1. Connection

35 Implementierung ImplementierungServercode Statische Methoden mit [Attribut] Statische Methoden mit [Attribut] Stored Procedures, Functions & TriggersStored Procedures, Functions & Triggers AggregatesAggregates Implementierung als Struct mit Attribut [SqlUserDefinedAggregate] Implementierung als Struct mit Attribut [SqlUserDefinedAggregate] TypesTypes Implementierung als Klasse oder Struct mit Attribut Implementierung als Klasse oder Struct mit Attribut[SqlUserDefinedType]

36 So gehts! SQL Abfragen: SELECT GetOrderCount(region) FROM order VS.NET Projekt VB,C#,C++ Build SQL Server 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

37 So gehts im Detail! Stored Procedure in C# Stored Procedure in C# User Defined Type in C# User Defined Type in C#

38 Demo: 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()); }

39 Demo: 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 {/*…*/} } }

40 .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!! Fallweise Unterscheidung notwendig!!

41 Agenda Die Services im Überblick Erweiterungen der Datenbank T-SQL Erweiterungen.NET Framework Integration XML & Web Service Unterstützung Volltextrecherche

42 & & 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

43 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);

44 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

45 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 Let noch nicht supported

46 XML im SQL Server FLOWR-Ausdruck FLOWR-Ausdruck

47 Demo: FLWOR-Ausdruck xml ' for $Bestellung in > 100] return ')

48 Zahlreiche Zugriffsoptionen vorhanden Aber 1: trotzdem nicht für jeden erreichbar Aber 2: weit weg vom Server Zugang zum SQL Server 2000 TDS/TCPNamedPipesTDS/TCPNamedPipesODBC, OLE DB, Ado.NetODBC, Ado.Net SQL SERVER SQLXMLIISSQLXMLIIS

49 Zugang zum SQL Server 2005 TDS/TCPNamedPipesTDS/TCPNamedPipesODBC, OLE DB, Ado.NetODBC, Ado.Net SQL SERVER SOAP/HTTPSOAP/HTTP SQLXMLIISSQLXMLIIS (Unix) Client

50 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

51 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 Gut für SOA-Träume?

52 Agenda Die Services im Überblick Erweiterungen der Datenbank T-SQL Erweiterungen.NET Framework Integration XML & Web Service Unterstützung Volltextrecherche

53 Was ist Volltextrecherche? Quelle:

54 Schneller & Besser als LIKE Suchen wie eine Suchmaschine Ranking, Stemmers, Stop Words … Suche innerhalb der Dokumente Word, Excel, PowerPoint, … Erweiterbar durch IFilter beispielsweise für PDF Abfrage per T-SQL Befehle

55 Volltextindex ist etwas anders Nicht ein normaler Index Aktivierung pro Datenbank notwendig Braucht Pflege Nicht zwingend aktuell Sprachabhängig Replikation mit SQL Server 2005 möglich

56 Suchen wie die Profis … CONTAINS CONTAINS FREETEXT FREETEXT

57 Demo: CONTAINS -- Sucht gezielt nach dem Ausdruck SELECT Volltext FROM VolltextTabelle WHERE CONTAINS(Volltext, Auto AND CD AND NOT Monitor) -- Zeigt zusätzlich noch den Ranking-Wert an SELECT Volltext, CT.Rank FROM VolltextTabelle JOIN CONTAINSTABLE(VolltextTabelle, Volltext, Auto AND CD AND NOT Monitor);

58 Demo: FREETEXT -- Sucht nach den besten Treffern für den Ausdruck SELECT Volltext FROM VolltextTabelle WHERE FREETEXT(Volltext, Ein Auto mit CD-Player) -- Zeigt zusätzlich noch den Ranking-Wert an SELECT Volltext, CT.Rank FROM VolltextTabelle JOIN FREETEXTTABLE(VolltextTabelle, Volltext, Ein Auto mit CD-Player);

59 Anwendungsbeispiele Suche in Artikelstamm nach Beschreibung Dokumentenmanagement auf eigene Faust Suchmaschinen, Buch-Shops, Auktionsplattformen, Musik-Downloads Sie alle nutzen Volltextrecherche! Suchmaschinen, Buch-Shops, Auktionsplattformen, Musik-Downloads Sie alle nutzen Volltextrecherche!

60 Agenda Die Services im Überblick Erweiterungen der Datenbank T-SQL Erweiterungen.NET Framework Integration XML & Web Service Unterstützung Volltextrecherche

61 SQL Server XML Daten Importer Web Service Zugang Berichte & Auswertungen Bestellungen Warum das Rad neu erfinden? SQL Web Services ! SQL Reporting Services ! XML ! Integration Services ! CLR ! Volltext- recherche !

62 Fragen und Antworten Vielen Dank! Sebastian Weber

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


Herunterladen ppt "SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH"

Ähnliche Präsentationen


Google-Anzeigen