presentation

Werbung
MSDE Programmierung
Tilo Böttcher, Technology Specialist
[email protected]
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
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
Neu!
ADP (SQL Server 6.5 und 7.0, MSDE 1.0)
Programmobjekte (Formulare, Berichte etc.)
SQL Server Connection
Datei/Server vs. Client/Server
Client
Datei/
Server
Access
Jet
Server
Netzwerk
Client
Client/
Server
Access
OLEDB
.MDB
Datei
Server
Netzwerk
SQL
Server
.MDF Datei
Access Datenprojekte (.ADP)
Access 2000 Projekt
SQL Server Datenbank
Verbindung des Access
Projekts mit der SQL
Datenbank
OLE DB
Datenbankobjekte
aus der SQL
Datenbank
Datenbankobjekte
im Access Projekt
gespeichert
Native OLEDB Datenschicht
Access 97
Access 2000
Access
Access
Jet
OLEDB
ODBC
SQL Server
SQL Server
OLEDB Datenschicht
Skalierbarkeit 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
Demo
Access 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
Datentypen
Jet
SQL
Text
varchar, nvarchar, char, nchar
Memo
text, ntext
AutoNumber
Identity Columns
Currency
money, smallmoney
Date/Time
datetime, smalldatetime
Yes/No
bit
OLE Object
image
Hyperlink
<kein Äquivalent>
Long Integer
int
Integer
smallint
Double, Single
float, real
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, und
Gespeicherte 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
SQL Syntax
Jet
Zeichenketten
Datum
Wildcard
(mehrere)
Wildcard (ein
Zeichen)
Wildcard
(Negation/Nicht)
SQL
"STRING"
'STRING'
#01.05.2000# '01.05.2000'
LIKE "a*"
LIKE 'a%'
LIKE "a?"
LIKE 'a_'
J[!i]m
J[^i]m
Wildcard (Zahl) #
0/-1,
Logisch/Bit
True/False,
Yes/No
Abtrennung/Ver "J" & "im"
bindung
[0-9]
0/1/NULL
'J' + 'im'
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 BildFelder 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
Demo
Aufbau und Deployment
einer MSDE Lösung
MSDN
wichtige Quellen für Entwickler
MSDN Programm
Abonnement
Online
Informationen
Mitgliederprog
ramme
Publikationen
Training,
Veranstaltung
en und
Kongresse
Library, Professional, Universal
(European Pack(1)) auf CD, DVD
oder Web verfügbar
MSDN Online, MSDN Flash
MSDN Business Connection,
MSDN User Groups
MS Journal, MSDN News
MSDN Training, PDC, TechEd,
TechTalk
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-3
Preis: 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.
Herunterladen