330 likes | 488 Views
MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH. Agenda. Access 2000 Client/server Entwicklung Native SQL Server Integration Erstellung von Datenprojekten (*.adp) Unterschiede zu MDBs Tipps and Tricks Optimierung der Client/Server Performance
E N D
MSDE ProgrammierungTilo Böttcher, Technology Specialisttiloboet@microsoft.comMicrosoft GmbH
Agenda • Access 2000 • Client/server Entwicklung • Native SQL Server Integration • Erstellung von Datenprojekten (*.adp) • Unterschiede zu MDBs • Tipps and Tricks • Optimierung der Client/Server Performance • Generelle Performancefestlegungen • Client/Server Performance Tipps
Agenda • Access 2000 • Client/server Entwicklung • Native SQL Server Integration • Erstellung von Datenprojekten (*.adp) • Unterschiede zu MDBs • Tipps and Tricks • Optimierung der Client/Server Performance • Generelle Performancefestlegungen • Client/Server Performance Tipps
Unterschiedliche Dateiformate • MDB: Datei/Server • Jet 4.0 • Datenbankobjekte (Tabellen, Abfragen etc.) • Programmobjekte (Formulare, Berichte etc.) • ADP: Client/Server • ADP (SQL Server 6.5 und 7.0, MSDE 1.0) • Programmobjekte (Formulare, Berichte etc.) • SQL Server Connection Neu!
Datei/Server vs. Client/Server Client Server Datei/ Server Netzwerk .MDB Datei Access Jet Client Server SQL Server .MDF Datei Netzwerk Client/ Server Access OLEDB
Verbindung des Access Projekts mit der SQL Datenbank OLE DB Datenbankobjekte aus der SQL Datenbank Datenbankobjekte im Access Projekt gespeichert Access Datenprojekte (.ADP) Access 2000 Projekt SQL Server Datenbank
Native OLEDB Datenschicht Access 2000 Access 97 Access Access OLEDB Jet SQL Server ODBC SQL Server
OLEDB DatenschichtSkalierbarkeit und Performance • Snapshot Cursor • Jede Abfrage kommt nur einmal auf den Server • Jet/ODBC benutzt key-set Cursors • Hit 1: Primärschlüssel auslesen • Hits 2-N: Stapelweises Auslesen der Datensatzreihen • Server-side Query Processor • Minimierung des Datenverkehrs über das Netzwerk • Natives Interface zum SQL Server
Integrierte Entwicklungswerkzeuge • Create/Drop database • Tabellen • Beziehungen • Views • Stored Procedures • Trigger
Access Entwicklungsumgebung • Formulare • Berichte • Wizards • Visual Basic® Umgebung • Neue Client/Server Eigenschaften • Row Limit • Server Filter
Access 2000 Entwicklungstools DemoAccess 2000 Development Tools
Agenda • Access 2000 • Client/server Entwicklung • Native SQL Server Integration • Erstellung von Datenprojekten (*.adp) • Unterschiede zu MDBs • Tipps and Tricks • Optimierung der Client/Server Performance • Generelle Performancefestlegungen • Client/Server Performance Tipps
Tabellen und Beziehungen • Trigger • Daten Update, Einfügen und Löschen Events • Nur auf dem SQL Server • Kaskadierte Update- und Löschvorgänge • Jet-Engine: native Unterstützung • SQL Server: unter Benutzung von Trigger • Einschränkungen • Jet hat Validierungsschema für Tabellen und Spalten(eine per ~) • SQL Server hate Tabellenbeschränkungen (mehrere per ~)
Abfragen, Sichten, undGespeicherte Prozeduren • Sichten • SELECT Abfragen • kein Order By • keine Parameter • Gespeicherte Prozeduren • SELECT und Aktionsabfragen • TSQL Flußkontrolle (IF, WHILE, etc.) • Keine nested ~
Parameter • Explizite Parameter • Parameter direkt mit einer Abfrage verbinden • Bei Jet und SQL Server möglich • Implizite Parameter • Jet: Unbekannter Bezeichner = Parameter • SQL Server: Unbekannter Bezeichner = Fehler • Namenskonvention • Jet: läßt lange Namen zu • SQL: keine Leerzeichen oder Spezialzeichen
Programmierumgebung • MDB • VBA • ADP • Client - VBA • Server - TSQL
Update von Daten • Definition eines Primärschlüssels ist Voraussetzung • Um einen Join zu aktualisieren müssen • die Unikat Tabellen • Primärschlüssel der Unikat Tabellen bekannt sein • Was ist eine unikate Tabelle? • 1-n Tabelle in einem Join • Tabelle, deren Primärschlüssel eine Reihe im Result-Set eindeutig bestimmt • Es lassen sich nur Unique Tables aktualisieren
Resynchronisation von Reihen • Nach einem Update resynchronisiert Access automatisch die Reihe um • Serverseitige Ausdrücke und • Aktualisierungen eines Join Feldes bestimmen zu können • Primärschlüssel der Unique Table wird benötigt • Sichten • Projeziert Primärschlüssel der Unique Table • Stored procedures • Müssen ein benutzerspezifisches resync-Kommando unterstützen
Update über Tabellen • Alle Updates werde in Tabellen vorgenommen • Rechte für das Update müssen vorhanden sein • Update Rechte • Select (nach WHERE Bedingungen) • Sicherheit von Views • Zusicherung von Update Rechten auf eine Tabelle • Trigger um nicht autorisierte zu blocken nutzen • Zusichern eines Select auf die gesamte Tabelle • Select auf die Primärschlüssel und timestamp field zusichern
Server Filter in Formularen • Neue Eigenschaft in ADP Dateien • Kein Datensatzzugriff bei Öffnen des Formulars • Benutzer können Filter in Formularen definieren • Filter werden auf den Server in einer WHERE Bedingung übertragen • Gefilterte Datensätze werden an den Client zurückgegeben
Vermeidung von Zugriffsverzögerungen • Für beste Performance keine großen Text- oder Bild-Felder zurückgeben • Anzeige nur wen angefordert • Trick: Unterformular benutzen • Hauptformular zeigt nicht behindernde Daten an • Unterformular zeigt größere Datenausschnitte an • Es werden nur Daten zurückgegeben, die im Formular erscheinen sollen
Migration von MDB nach ADP (DAO nach ADO :-)) • Voraussetzungen im letzten TechTalk (auch Access 97 Migration Wizard) • Access 2000 Upsizing Assistent • Tabellen • Abfragen (nur ADP) • MDB mit verbundenen Tabellen vs. ADP • Verbundene Tabellen: einfachste Integration • ADP: beste Skalierbarkeit und Performance • Data Transformation Services
Agenda • Access 2000 • Client/server Entwicklung • Native SQL Server Integration • Ersatellung von Datenprojekten (*.adp) • Unterschiede zu MDBs • Tipps and Tricks • Optimierung der Client/Server Performance • Generelle Performancefestlegungen • Client/Server Performance Tipps
Optimierung der Leistung • Allgemeine Regeln • RAM, RAM, RAM, Prozessor, Plattenplatz • Oft ist das Netzwerk der Flaschenhals • Verringern der zurückgegebenen Datenreihen • Verringern der Spalten (sinnvolle Auswahl mit WHERE) • Weniger Funktionen integrieren • Server Skalierbarkeit • Minimieren von Round Trips vom Server
Weniger Datenbewegung • Weniger Daten in Formularen anfordern • WHERE Bedingungen nutzen! • Text und Bildfelder nur bei Bedarf nutzen/anzeigen • Große ComboBocen vermeiden (alle Städte von Deutschland ) • Statische Daten lokal cachen • Vorsicht vor nicht aktuellen Daten! • Probleme mit verbundenen Tabellen • Heterogene Joins • Vermeidung benutzerdefinierter Funktionen • Stored Procedures benutzen
Weniger Funktionen • In ADO Code • Read only ist schneller • Forward only ist schneller • Wiederverwendung von Connections ist schneller
MSDE Entwicklung DemoAufbau und Deployment einer MSDE Lösung
Informationen von Microsoft Press http://www.microsoft.com/germany/mspress Datenbankprogrammierung mit Visual Basic 6 Autor: Walter Doberenz, Thomas Kowalski ISBN: 3-86063-485-2 Umfang: 633 Seiten Preis: 79,00 DM ADO-Programmierung Autor: David Sceppa ISBN: 3-86063-618-9 Umfang: 384 Seiten Preis: 79,00 DM Access 2000 Programmierung Autor: Doberenz/Kowalski ISBN: 3-86063-471-2 Umfang: 924 Seiten Preis: 98,00 DM VB 6 Training Original MCSD Training Autor: MS ISBN: 3-86063-905-6/297-3Preis: 98,00/119,00 DM
Links und Newsgroups http://www.microsoft.com/germany/msdn/techtalk http://www.microsoft.com/data http://msdn.microsoft.com/library http://www.microsoft.com/AccessDev/ http://www.vba-magazin.de/ http://www.basicworld.com/ Newsgroups Server msnews.microsoft.com microsoft.public.de.germany.entwickler.techtalk
This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. 2000 Microsoft Corporation. All rights reserved. Companies, names, and/or data used in screens and sample output are fictitious, unless otherwise noted. Microsoft, Windows, and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Other product and company names mentioned herein may be the trademarks of their respective owners.