Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

SQL Server 2005 TechTalk September 2005

Ähnliche Präsentationen


Präsentation zum Thema: "SQL Server 2005 TechTalk September 2005"—  Präsentation transkript:

1 SQL Server 2005 TechTalk September 2005
3/31/2017 2:55 AM SQL Server 2005 TechTalk September 2005 Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 Verlage XML Daten Importer Bestellungen Web Service Zugang Eigenes Management SQL Server Berichte & Auswertungen

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
3/31/2017 2:55 AM Integration Services ETL-Platform “Best in Class”-Usability Workflow Designer Erweiterbar © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

8 Analysis Services Business Intelligence Unified Dimensional Model
3/31/2017 2:55 AM Analysis Services Business Intelligence Unified Dimensional Model Real-time Web Services © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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

10 Report Builder Visual Studio Integration
3/31/2017 2:55 AM Reporting Services Report Builder Visual Studio Integration © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 A B C Standort-übergreifende Datenverteilung
Peer-to-Peer Verteilung Verteilung von Volltextindizes Web-Synchronisation Monitoring A B C

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

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
3/31/2017 2:55 AM 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 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

19 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^ Bytes)  .WRITE & SUBSTRING

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

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 <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 …

23 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 Ergebnis mehr liefert!

24 Rekursive CTE EXCEPT / INTERSECT TOP Row_Number() OVER (…) OUTPUT
3/31/2017 2:55 AM T-SQL Rekursive CTE EXCEPT / INTERSECT TOP Row_Number() OVER (…) OUTPUT © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

25 Demo: Rekursive CTE Abfrage
char(50); = ‘Frankfurt'; WITH cte (ID, Ort, Macht) AS ( SELECT ID, Ort, Macht FROM DieWelt WHERE Ort 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” INTERSECT

27 Demo: TOP -- TOP unterstützt Ausdrücke: DECLARE @n INT; SET @n = 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 CTE EXCEPT/INTERSECT TOP 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
SqlServr.exe Client 1. Connection Ext. SP Select * Select * 2. Connection 2. Thread Daten Abbildung aus A First Look at SQL Server 2005 for Developers, AW

34 SQL Server 2005 Beste Integration der Welt!
SqlServr.exe Client 1. Connection SqlCommand cmd = ... cmd.ExecuteNonQuery() PInvoke Managed Code Daten Unmanaged Code Abbildung aus A First Look at SQL Server 2005 for Developers, AW

35 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 [SqlUserDefinedType]

36 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

37 Stored Procedure in C# User Defined Type in C#
3/31/2017 2:55 AM So geht’s im Detail! Stored Procedure in C# User Defined Type in C# © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 … Verwenden Sie T-SQL …
… 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!!

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

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

43 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 …

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 „L“et noch nicht supported

46 XML im SQL Server FLOWR-Ausdruck 3/31/2017 2:55 AM
© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

47 Demo: FLWOR-Ausdruck declare @x xml set @x=' <Bestellungen>
<Bestellung Name="Anne" Summe="110"/> <Bestellung Name="Manfred" Summe="50"/> <Bestellung Name="Peter" Summe="250"/> <Bestellung Name="Marlene" Summe="75"/> </Bestellungen>' for $Bestellung in > 100] return ')

48 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

49 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

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 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 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 FREETEXT 3/31/2017 2:55 AM
© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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!

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

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

62 Vielen Dank! Fragen und Antworten Sebastian Weber

63 © 2005 Microsoft Corporation. All rights reserved.
3/31/2017 2:55 AM © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. © 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"

Ähnliche Präsentationen


Google-Anzeigen