Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Clothilde Weyland Geändert vor über 10 Jahren
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.
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.