SQL Server 2005 Übersicht für Entwickler Sebastian Weber Developer Evangelist Microsoft...
-
Upload
siegward-bohlmann -
Category
Documents
-
view
111 -
download
1
Transcript of SQL Server 2005 Übersicht für Entwickler Sebastian Weber Developer Evangelist Microsoft...
SQL Server 2005Übersicht für EntwicklerSQL Server 2005Übersicht für Entwickler
Sebastian WeberSebastian WeberDeveloper EvangelistDeveloper EvangelistMicrosoft Deutschland GmbHMicrosoft Deutschland GmbH
Schwerpunkte SQL Server Schwerpunkte SQL Server 20052005
Integration mit Visual Studio und .NETIntegration mit Visual Studio und .NET Native XML-UnterstützungNative XML-Unterstützung Interoperabilität durch WebservicesInteroperabilität durch Webservices
DeveloperReady
DeveloperReady
Vielfältige Erweiterungen bei den Vielfältige Erweiterungen bei den Verfügbarkeits-TechnologienVerfügbarkeits-Technologien
Mehr Sicherheit und GeschwindigkeitMehr Sicherheit und Geschwindigkeit Selbstmanagement und OptimierungSelbstmanagement und Optimierung
MissionReady
MissionReady
Business Business IntelligenceIntelligence out-of-the-Box out-of-the-Box Datenintegration und -Datenintegration und -aufbereitungaufbereitung (ETL) (ETL) Entscheidungsunterstützung durch Entscheidungsunterstützung durch
umfangreiches Datamining und Reportingumfangreiches Datamining und ReportingDecisionReady
DecisionReady
AgendaAgenda
T-SQL ErweiterungenT-SQL Erweiterungen
.NET Framework Integration.NET Framework Integration
Web ServicesWeb Services
XML-UnterstützungXML-Unterstützung
Service BrokerService Broker
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
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 Rekursion Iterativer Ansatz meist deutlich Iterativer Ansatz meist deutlich
aufwändigeraufwändiger
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 …
T-SQLT-SQL
AgendaAgenda
T-SQL ErweiterungenT-SQL Erweiterungen
.NET Framework Integration.NET Framework Integration
Web ServicesWeb Services
XML-UnterstützungXML-Unterstützung
Service BrokerService Broker
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
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
.NET Framework Integration.NET Framework Integration
AgendaAgenda
T-SQL ErweiterungenT-SQL Erweiterungen
.NET Framework Integration.NET Framework Integration
Web ServicesWeb Services
XML-UnterstützungXML-Unterstützung
Service BrokerService Broker
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
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
ClientClientClientClient
Native Web ServicesNative 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/HTTP Läuft ohne IISLäuft ohne IIS ~%40 schneller als SQLXML~%40 schneller als SQLXML
SQLXML bleibt bestehenSQLXML bleibt bestehen Updategrams, Bulkload, Query strings in Updategrams, Bulkload, Query strings in
URLURL
Beispiel: Endpunkt Beispiel: Endpunkt erstellenerstellen
CREATE ENDPOINT sql_endpoint STATE = STARTED AS HTTP(
PATH = '/sql', AUTHENTICATION = ( INTEGRATED ), PORTS = ( CLEAR ), SITE = 'SERVER' )
FOR SOAP ( WEBMETHOD 'GetSqlInfo'
(name='SPGetServerInfo'), WSDL = DEFAULT, SCHEMA = STANDARD, DATABASE = 'Demo', NAMESPACE = 'http://tempUri.org/' );
AnwendungsbeispieleAnwendungsbeispiele
Auslesen von StatusinformationenAuslesen von Statusinformationen System, aber auch der AnwendungSystem, aber auch der Anwendung
Prozesse anstoßenProzesse anstoßen
Verwenden Sie Native Web Services Verwenden Sie Native Web Services nichtnicht für den Aufbau von „Webfarms“für den Aufbau von „Webfarms“ für Anwendungen mit für Anwendungen mit
Echtzeitanforderungen und hohen Echtzeitanforderungen und hohen ZugriffszahlenZugriffszahlen
AgendaAgenda
T-SQL ErweiterungenT-SQL Erweiterungen
.NET Framework Integration.NET Framework Integration
Web ServicesWeb Services
XML-UnterstützungXML-Unterstützung
Service BrokerService Broker
<Damals/> & <Damals/> & <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 mehr XML-Datentyp mit XSD-UnterstützungXML-Datentyp mit XSD-Unterstützung XQuery/XPath im Sql-Statement nutzbarXQuery/XPath im Sql-Statement nutzbar Indexierung der XML-KnotenIndexierung der XML-Knoten Verbesserung FOR XML und OPEN XMLVerbesserung FOR XML und OPEN XML
XML-Datentyp verwendenXML-Datentyp verwenden
Indexierung möglich, wenn dem Xml ein Schema Indexierung möglich, wenn dem Xml ein Schema zugewiesen wurde („typisiert“)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);
XML-UnterstützungXML-Unterstützung
AgendaAgenda
T-SQL ErweiterungenT-SQL Erweiterungen
.NET Framework Integration.NET Framework Integration
Web ServicesWeb Services
XML-UnterstützungXML-Unterstützung
Service BrokerService Broker
Was ist der Service Was ist der Service Broker?Broker?
AA BBKommunikationKommunikation
CC
TransportTransport
DD
TransportTransport
TransportTransport
Plattform für Plattform für
asynchrone asynchrone
DatenbankanwendungDatenbankanwendung
enen
TransaktionenTransaktionen
Zuverlässige Zuverlässige
ÜbermittlungÜbermittlung
T-SQL IntegrationT-SQL Integration
Beispiel: Nachricht sendenBeispiel: Nachricht senden
DECLARE @dialog_handle UNIQUEIDENTIFIER;DECLARE @ExpenseReport XML;
SET @ExpenseReport = ‘<Expense><Employee Name=“Sebas..
BEGIN DIALOG @dialog_handle FROM SERVICE [//Adventure-Works.com/ExpenseClient] TO SERVICE '//Adventure-Works.com/Expenses' ON CONTRACT [//Adventure-Works.com/ExpenseProcessing];
SEND ON CONVERSATION @dialog_handle MESSAGE TYPE [//Adventure-Works.com/SubmitExpense] (@ExpenseReport);
AnwendungsbeispieleAnwendungsbeispiele
Service-orientierte ArchitekturenService-orientierte Architekturen
Parallele Stored ProceduresParallele Stored Procedures Eine SP startet weitere SPsEine SP startet weitere SPs
Asynchrone TriggerAsynchrone Trigger
Asynchrone StapelverarbeitungAsynchrone Stapelverarbeitung Eingehende Bestellung kommt in QueueEingehende Bestellung kommt in Queue Parallele Abarbeitung der QueueParallele Abarbeitung der Queue Verteilte Abarbeitung der BestellungVerteilte Abarbeitung der Bestellung
AgendaAgenda
T-SQL ErweiterungenT-SQL Erweiterungen
.NET Framework Integration.NET Framework Integration
Web ServicesWeb Services
XML-UnterstützungXML-Unterstützung
Service BrokerService Broker
MSDN Online – Alles für den EntwickleralltagMSDN Online – Alles für den Entwickleralltag Stets auf dem Laufenden mit dem Stets auf dem Laufenden mit dem MSDN NewsletterMSDN Newsletter, , RSS-RSS-
FeedsFeeds sowie personalisierten Infos & Services via sowie personalisierten Infos & Services via MSDN MSDN ConnectionConnection
Technische Informationen über die Technische Informationen über die MSDN Developer CenterMSDN Developer Center(z.B. Security), (z.B. Security), MSDN WebcastsMSDN Webcasts und der und der MSDN BibliothekMSDN Bibliothek
Informationen zu Produkten und begleitenden Services wie Informationen zu Produkten und begleitenden Services wie Training & ZertifizierungTraining & Zertifizierung, , technischem Supporttechnischem Support und und DownloadsDownloads
www.microsoft.com/germany/msdnwww.microsoft.com/germany/msdn
www.ineta.orgwww.ineta.org
www.codezone.dewww.codezone.deDas Developer Knowledge Network – Von Das Developer Knowledge Network – Von Entwicklern für Entwickler. Die Meta-Entwicklern für Entwickler. Die Meta-Suchmaschine mit über 10.000 Ressourcen, Suchmaschine mit über 10.000 Ressourcen, RSS-Feeds und vielem mehrRSS-Feeds und vielem mehr
INETA User GroupsINETA User Groups – Treffen Sie – Treffen Sie Gleichgesinnte in einer der mehr als 40 Gleichgesinnte in einer der mehr als 40 bundesweit vertretenen INETA User Groups mit bundesweit vertretenen INETA User Groups mit über 4.500 Mitgliedernüber 4.500 Mitgliedern
Ressourcen für Ihren ErfolgRessourcen für Ihren ErfolgVon Microsoft und den CommunitiesVon Microsoft und den Communities
Vielen Dank!Vielen Dank!
Sebastian WeberSebastian [email protected]@microsoft.com
http://sebastianweber.orghttp://sebastianweber.org