La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

#4 - SQL Server CE Marco Frontini Product Manager

Presentazioni simili


Presentazione sul tema: "#4 - SQL Server CE Marco Frontini Product Manager"— Transcript della presentazione:

1 #4 - SQL Server CE Marco Frontini Product Manager

2 SQL Server 2005 Integration SQL Server 2005 Tools –SQL Server Management Studio Creare/gestire Databases SQL Mobile Show Plan and Hints Ottimizzazione semplificata Enhanced Publication Subscription Wizard

3 Execution Plan & Performance Test DEMO #1 SQL Server 2005 Tools

4 Versioni SQL Server CE 2.0 –Supporta lo sviluppo.NET con CF 1.0 –Installabile su Pocket PC 2000 o successivo Windows CE 4.1 o successivo No Smartphone SQL Server 2005 Mobile Edition (SQL CE 3.0) –Sviluppo con.NET CF 2.0 –Installabile su Pocket PC 2003 Windows Mobile 5.0 Anche Smartphone 5.0 –Integrato con VS 2005 e SQL Server 2005 –SQL Server Mobile Database Upgrade tool (upgrade.exe) per migrare da a 3.0

5 Features non supportate La sintassi è un subset di Transact-SQL –niente TOP –niente nested Select Transazioni nidificate (nested) Transazioni distribuite Save points Batch commands, un solo statement per comando Named parameterized queries, sì con v3.0

6 Overview Device Data Access Native Stack Managed Stack SQL Server Mobile Edition CLR /.NET CF SQL Server CE Data Provider ADO.NET VB.NET / C# VS 2005 C++ OLEDB CE OLEDB Provider QP / Cursor Engine / ES Storage Engine / Replication Tracking

7 SQL Server 2005 Mobile Edition Architettura Migliorata Storage engine –Supporto per Connessioni Multiple –Row level locking –Shares common memory pool –Auto-shrink –SqlCeEngine.Shrink –SqlCeEngine.Repair Query processor –Ottimizzazione Cost-based –Cursori Scrollable e Updatable - SqlCeResultSet

8 Sincronizzazione Obiettivi Condividere una fonte dati comune –Accesso multi-utente alla stessa fonte dati Maggiore versatilità per lutente –Consente agli utenti di cambiare il device e continuare ad accedere alla stessa fonte dati Semplificare lo sviluppo e la logica –La sincronizzazione diventa una sola linea di codice –La risoluzione dei conflitti avviene sul server attraverso il SQL Server model

9 Sincronizzazione Modalità SQL Server Mobile Edition fornisce due modalità di sincronizzazione –Remote data access (RDA) –Merge replication Entrambe si appoggiano ad IIS e sqlcesa30.dll (o sscesa20.dll)

10 OLE DB SQL Mobile Client Agent Sincronizzazione Architettura HTTP OLE DB Application SQL Mobile Engine Database SQL Server Database OLE DB Provider SQL Mobile Server Agent Internet Information Services (IIS)

11 Replication Configurazione di IIS SQL Server Agent File System Share Emulatore Loopback Adapter

12 Configurazione Server-Side DEMO #2 Creazione di una pubblicazione

13 Remote Data Access Overview Una connessione via HTTP/S tra SQL Server e SQL Server Mobile Edition –Comunica con SQL Server senza essere connesso –Salva il risultato di query eseguite su SQL Server direttamente in SQL Server CE Tenendo eventualmente traccia delle modifiche (in locale) –Rimanda le modifiche locali a SQL Server Il.NET Compact Framework fornisce un wrapper managed –SqlCeRemoteDataAccess

14 Remote Data Access SqlCeRemoteDataAccess Ogni applicazione che usa RDA deve specificare i parametri di connessione –Connessione al database locale SQL Mobile Edition connection string –Web server URL – deve includere sqlcesa30.dll (o sscesa20.dll) Login e password –Proxy server Login e password Le informazioni sulla connessione remota vengono inviatate con ogni comando eseguito –SQL Server connection string

15 Remote Data Access Pull Viene creata una tabella locale con schema e dati –È possibile includere la primary key –È possibile includere gli indici I dati possono arrivare da una tabella, una vista o da una stored procedure –Si possono (DEVONO) filtrare i dati per ridurre la dimensione –Viste e stored procedure possono referenziare una sola tabella con primary key

16 Remote Data Access Pull Tracking On –Le modifiche locali possono essere rimandate al server –Viene applicata una optimistic concurrency (nessun lock sui dati del server) La tabella locale non deve esistere –Creata dal metodo Pull –Se la tabella esiste viene generato un errore

17 Remote Data Access Pull Public Sub RDAPull() Dim rda As New SqlCeRemoteDataAccess Dim rda As New SqlCeRemoteDataAccess Dim ServerOledbStr As String = Dim ServerOledbStr As String = Provider=sqloledb; Data Source=dataserver; & _ Provider=sqloledb; Data Source=dataserver; & _ Initial Catalog=Pubs;User Id=sa;Password=; Initial Catalog=Pubs;User Id=sa;Password=; rda.LocalConnectionString = rda.LocalConnectionString = Data Source=\My Documents\test.sdf Data Source=\My Documents\test.sdf Set URL and IIS login/password. rda.Pull( rda.Pull( Authors, _ Authors, _ Select * from authors where state = CA, _ Select * from authors where state = CA, _ ServerOledbStr, _ ServerOledbStr, _ RdaTrackOption.TrackingOn) RdaTrackOption.TrackingOn) End Sub

18 Remote Data Access Push Rimanda le modifiche al server –Tutte le modifiche dallultimo pull o push sono inviate –Le modifiche sono applicate al server indiscriminatamente Il table tracking doveva essere on durante il Pull Se una qualsiasi modifica fallisce –Gli errori vengono scritti nella error table (se specificata durante il Pull) –BatchingOn, viene fatto un roll back di tutto –BatchingOff, viene fatto un roll back solo della modifica che ha generato lerrore

19 Remote Data Access Push Public Sub RDAPush() Dim rda As New SqlCeRemoteDataAccess() Dim rda As New SqlCeRemoteDataAccess() Dim ServerOledbStr As String = Dim ServerOledbStr As String = Provider=sqloledb; Data Source=dataserver; & _ Provider=sqloledb; Data Source=dataserver; & _ Initial Catalog=Pubs;User Id=sa;Password=; Initial Catalog=Pubs;User Id=sa;Password=; rda.LocalConnectionString = _ rda.LocalConnectionString = _ Data Source=\My Documents\test.sdf Data Source=\My Documents\test.sdf Set URL and IIS login/password. rda.Push( _ rda.Push( _ Authors, _ Authors, _ ServerOledbStr, _ ServerOledbStr, _ RdaBatchOption.BatchingOn) RdaBatchOption.BatchingOn) End Sub

20 DEMO #3 Remote Data Access

21 Merge Replication Overview Sincronizza i dati tra SQL Server e SQL Server CE –SQL Server è il publisher –SQL Server CE è il subscriber SQL Server CE riceve uno snapshot iniziale da SQL Server SQL Server CE e SQL Server possono modificare i dati –La risoluzione dei conflitti può essere personalizzata sul server con SQL 2005 anche con codice managed

22 Merge Replication Overview Le modifiche vengono sincronizzate –Da SQL Server CE vengono inviate a SQL Server –Da SQL Server vengono inviate a SQL Server CE SQL Server 2005 Management Studio –Nuovi wizards Creazione del Publishers Creazione dei Subscribers Il.NET CF fornisce un wrapper managed – SqlCeReplication

23 Merge Replication Vediamo il Codice Public Sub SyncSubscription() Dim repl as New SqlCeReplication() Dim repl as New SqlCeReplication() repl.InternetUrl = repl.InternetUrl = "http://Server1/SQLServerCE/sqlcesa30.dll" "http://Server1/SQLServerCE/sqlcesa30.dll" repl.Publisher = SERVER1" repl.Publisher = SERVER1" repl.PublisherDatabase = SampleServerDb" repl.PublisherDatabase = SampleServerDb" repl.PublisherLogin = "sa" repl.PublisherLogin = "sa" repl.PublisherPassword = "" repl.PublisherPassword = "" repl.Publication = SamplePublication" repl.Publication = SamplePublication" repl.SubscriberConnectionString = _ repl.SubscriberConnectionString = _ Data Source=\My Documents\SampleLocalDB.sdf Data Source=\My Documents\SampleLocalDB.sdf repl.HostName = User1" repl.HostName = User1" repl.AddSubscription(AddOption.CreateDatabase) repl.AddSubscription(AddOption.CreateDatabase) repl.Synchronize() repl.Synchronize() End Sub

24 Merge Replication Vediamo i Costi Aggiunta di alcuni triggers e stored procedures –Aggiunge overhead Le tabelle replicate devono avere un campo ROWGUIDCOL –Permette di identificare in modo univoco un record –Se non è già presente viene aggiunto Il database deve tracciare tutte le modifiche –Alcune tabelle vengono aggiunte per tener traccia delle modifiche –Il database può crescere molto

25 Merge Replication Minimizzare i costi per i Devices La chiave del successo per le applicazioni mobile è minimizzare la comunicazione –Prendere solo quello che serve –Applicare i filtri SqlCeReplication.HostName e HOST_NAME() Ridurre la quantità di dati scambiati tra device e server –Riduce il tempo –Migliora le prestazioni –Riduce i costi (il cliente sarà grato)

26 DEMO #4 Merge Replication

27 SQL Server 2005 Mobile Edition Sincronizzazione Migliorata Miglior controllo –Multiuser synchronization –Progress notifications –Sottoscrizioni multiple nello stesso database Migliori performance (con SQL 2005) –Download-only tables –Partitioned groups

28 SQL CE Tips & Tricks Abilitare il LOG di SQL CE Server Agent Nel registro sotto la chiave HKLM\Software\Microsoft\MSSQLSERVERCE\3.0\Transport (HKLM\Software\Microsoft\MSSQLSERVERCE\Transport x SQL CE 2.0) aggiungere una DWORD con il nome della virtual directory + LOGGING_LEVEL (es. C:\Inetpub\Sqlce\LOGGING_LEVEL) I valori possibili sono: 0nessun log 1solo errori 2errori e warnings 3errori, warnings e messaggi Viene creato un un file sqlcesa30.log (sscerepl.log x 2.0) nella virtual directory Con CE 3.0 è possibile vede statistiche e diagnostica via IE /sqlcesa30.dll?stats /sqlcesa30.dll?diag

29 Fare la scelta Quale? Remote Data Access –Miglior scalabilità sul server Merge Replication –Minor tempo di sviluppo –Sincronizzazione bi-direzionale Per altre informazioni su come fare la scelta html/eff_arch_sql_servr_ce_rep.asp

30 Deployment Automatico con Visual Studio Manuale distribuendo i CABs corretti –SQL CE 2.0 sqlce...CAB sqlce.dev...CAB –SQL CE 3.0 sqlce30...CAB sqlce30.repl...CAB sqlce30.dev.ENU...CAB

31 Links utili SQL Server 2005 Mobile Edition –http://msdn.microsoft.com/mobility/sqlmobile/ Microsoft Mobility –http://msdn.microsoft.com/mobility/

32 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. Content created by 3 Leaf Solutions


Scaricare ppt "#4 - SQL Server CE Marco Frontini Product Manager"

Presentazioni simili


Annunci Google