1 / 47

Microsoft SSMA Approfondimenti

Microsoft SSMA Approfondimenti. Introduzione. Abbiamo visto SSMA alle prese con un DB ridottissimo Nei progetti reali la complessità dei database è tutta un’altra cosa Come si comporta SSMA nella vita reale?. Agenda. Configurazione opzioni SSMA Conversione da PL/SQL a T-SQL

lani-lawson
Download Presentation

Microsoft SSMA Approfondimenti

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Microsoft SSMA Approfondimenti

  2. Introduzione • Abbiamo visto SSMA alle prese con un DB ridottissimo • Nei progetti reali la complessità dei database è tutta un’altra cosa • Come si comporta SSMA nella vita reale?

  3. Agenda • Configurazione opzioni SSMA • Conversione da PL/SQL a T-SQL • Migrazione di un database reale con SSMA • Considerazioni sulle performance

  4. Agenda • Configurazione opzioni SSMA • Conversione da PL/SQL a T-SQL • Migrazione di un database reale con SSMA • Considerazioni sulle performance

  5. Installazione e configurazione Extension Pack Extension Pack Connessione source Caricamento oggetti DB Generazione assessment reports Stima tempi Conversione oggetti Salvataggio script Migrazione dati Connessione target Esecuzione script salvati Test Redirect applicazione su DB target J2SE 1.4.2 Microsoft SSMA

  6. Opzioni

  7. Configurazione SSMA

  8. Agenda • Configurazione opzioni SSMA • Conversione da PL/SQL a T-SQL • Migrazione di un database reale con SSMA • Considerazioni sulle performance

  9. Tipi di dati Oracle Microsoft SQL Server • CHAR • VARCHAR2, NVARCHAR2 • NUMBER • DATE • ROWID • SYSDATE • CHAR • VARCHAR, NVARCHAR • TINYINT, SMALLINT, INT, BIGINT, NUMERIC • DATETIME, SMALLDATETIME • UNIQUEIDENTIFIER e NEWID() • GETDATE()

  10. Tipi di dati (2) Oracle Microsoft SQL Server • BFILE – immagini su file system • BLOB – immagini sul database • CLOB – testo • NLOB – testo in national language • IMAGE – più simile a BLOB • TEXT – grandi testi

  11. Tipo Boolean Oracle declare v1 boolean := true; v2 boolean := false; begin … v1 := (x>3) and v2; end; Microsoft SQL Server declare @v1 smallint, @v2 smallint set @v1 = /* TRUE */ 1 set @v2 = /* FALSE */ 0 begin set @v1 = case WHEN ((@x>3) and (@v2 <> /*FALSE*/ 0)) THEN /*TRUE*/ 1 ELSE /*FALSE*/ 0 end end

  12. Tabelle Oracle Microsoft SQL Server • Fino a 1000 colonne • Nessun limite dimensione riga • Creazione tabella con statement SELECT:create table tbl1as select * from tbl2 • Fino a 1024 colonne • Massimo 8,060 byte per riga (16 byte per text e image) • Creazione tabella con statement SELECT INTO:select * into tbl1 from tbl2

  13. Indici Oracle Microsoft SQL Server • Tabella index-organized • Variabile PCTFREE • Indici su funzioni • Nessun limite al numero di indici • Fino a 32 colonne per indice • Indice clustered • Opzione FILLFACTOR • Indici su colonne calcolate (funz. deterministiche) • Massimo 249 indici per tabella • Fino a 16 colonne per indice

  14. Variabili Oracle Microsoft SQL Server • Non usano prefissi:declare var1 varchar2(30); • Assegnazione:var1 := ‘test’; • Usano il prefisso @:declare @var1 varchar; • Assegnazione:SET @var1 = ‘test’orSELECT @var1 = ‘test’

  15. Statement IF Microsoft SQL Server Oracle declare @v1 numeric begin set @v1 = 1 if (@v1 > 1) begin print ‘1>1’ set @v1 = 100 end else if (@v1 > 2) begin print ‘1>2’ set @v1 = 200 end else begin print ‘None’ exec SYSDB.SYS.DB_NULL_STATEMENT end end declare v1 numeric; begin v1 := 1; if v1 > 1 then dbms_output.put_line (‘1>1’); v1 := 100; elseif v1 > 2 then dbms_output.put_line (‘1 > 2’); v1 := 200; else dbms_output.put_line (‘None’); null; end if; end;

  16. Statement WHILE Oracle Microsoft SQL Server while rank <= max_rank loop do something; rank := rank + 1; end loop; while (@rank <= @max_rank) begin do something set @rank = @rank + 1 end

  17. Statement LOOP Oracle Microsoft SQL Server loop exit when rank > max_rank; do something; rank := rank + 1; end loop; while (1 =1) begin if @rank > @max_rank break do something set @rank = @rank + 1 end

  18. Statement loop FOR Oracle Microsoft SQL Server for rank in 1..max_rank loop do something; end loop; declare @rank int set @rank = 1 while (@rank <= max_rank) begin do something set @rank = @rank + 1 end

  19. Attributi dei cursori Oracle Microsoft SQL Server • cursor_name%NOTFOUND • cursor_name%FOUND • cursor_name%ISOPEN • cursor_name%ROWCOUNT • (@@FETCH_STATUS = -1) • (@@FETCH_STATUS = 0) • (cursor_status (‘local’, ‘cursor_name’) = 1) • Calcolato con variabile @v_cursor_name_rowcount da incrementare a ogni fetch

  20. Oracle package Oracle Microsoft SQL Server • Package functions • Package procedures • Package variables • User-defined functions PackageName_FunctionName • Stored procedures PackageName_ProcedureName • Simulate con funzionalità del SYSDB

  21. Agenda • Configurazione opzioni SSMA • Conversione da PL/SQL a T-SQL • Migrazione di un database reale con SSMA • Considerazioni sulle performance

  22. Migrazione database PROTDEMO

  23. Architettura applicazione ASP .NET Oracle .NET Data Provider Oracle ADO.NET Windows Forms

  24. PROTDEMO – Migrazione manuale

  25. PROTDEMO – Migrazione manuale • Il vostro capo vi invita a una riunione e vi comunica che dovrete occuparvi della migrazione di un certo database Oracle (PROTDEMO) verso SQL Server • La versione in questione di Oracle è la 9i • La versione di SQL Server è la nuova SQL Server 2005

  26. PROTDEMO – Migrazione manuale • Il vostro incarico consiste nel: • Elaborare una strategia di migrazione • Produrre un report dettagliato sul database attuale comprensivo di una stima dei tempi necessari alla migrazione • Produrre gli script di creazione del nuovo database • Migrare i dati • Eseguire i test sul nuovo database

  27. Strategia di migrazione Assessment progetto Migrazione schema Migrazione dati Migrazione logica business Test codice migrato

  28. Migrazione manuale - Assessment • Usare qualche tool client per Oracle • Interrogare le tabelle di sistema • Creare un file Excel, Word, … • Come si fa ad analizzare il testo di funzioni, stored procedure, packages? • E’ un lavoro lunghissimo!

  29. Migrazione manuale - Schema • Bisogna generare gli script di creazione di tabelle, default, constraints, indici, viste • Quanto ci vuole a tradurre tutto il PL/SQL? • Riuscirò a mantenere uno standard? • Quante probabilità ho di commettere errori?

  30. Migrazione manuale - Dati • Bulk copy? • Bulk insert? • DTS? OracleDatabase Text File OLE DB ODBC SQL ServerDatabase

  31. Migrazione manuale – Logica di business • Bisogna generare gli script di creazione di trigger, funzioni, stored procedure • Quanto ci vuole a tradurre tutto il PL/SQL? • Riuscirò a mantenere uno standard? • Quante probabilità ho di commettere errori?

  32. Migrazione manuale – Test • Bisogna definire dei piani test • Bisogna scrivere del codice per l’esecuzione dei test • Bisogna eseguire i test

  33. Migrazione manuale • Quanto tempo ci vorrà? • Quanto costerà? • Quante persone servono? • Il buon esito del progetto è garantito? • L’applicazione funzionerà correttamente?

  34. PROTDEMO – Migrazione con SSMA

  35. Agenda • Configurazione opzioni SSMA • Conversione da PL/SQL a T-SQL • Migrazione di un database reale con SSMA • Considerazioni sulle performance

  36. Processo di migrazione Assessment progetto Migrazione schema Migrazione dati Migrazione logica business Test codice migrato Migrazione applicazione Test e integrazione Performance tuning

  37. Performance tuning • Perfezionare i database generati • Tabelle, indici • Utilizzo di risorse critiche come RAM e CPU • Gestione della memoria fisica • Migliorare le query ridisegnandole • È il momento giusto • Sfruttare i tool nativi di SQL Server • Ricordate ? Era uno dei motivi per migrare

  38. Architettura storage Schema Schema Database Tablespace 1 Tablespace 2 Filegroup 1 Filegroup 2 Data File 1 Data File 2 Data File 3 Data File 4 Data File 3 Data File 4 Data File 1 Data File 2 TransactionLog

  39. Migrazione dati Se la mole di dati è molto elevata? • Qualche accorgimento: • Database recovery model: simple o bulk-logged • Disabilitazione trigger • Disabilitazione foreign key e check constraints • Cancellazione indici

  40. Migliorare la base dati • Utilizzo di filegroup multipli • Distribuire il database su più dischi • Uso di tecniche di failover clustering • Separare i log transazionali dai dati • Ottimizzare la struttura degli indici • Osservare le dimensioni e l’uso del database tempdb • Pianificare e osservare correttamente la crescita dei database

  41. Tabelle migliori • Separare in differenti filegroup colonne text e image • Mantenere gli indici in filegroup differenti • Favorire constraints per la validazione rispetto ai trigger • Normalizzare il database in maniera coerente • Impostare i valori di fillfactor in maniera giudiziosa

  42. Utilizzo di indici • Vantaggi • Indici clustered ordinano fisicamente i dati • Aumenta le prestazioni delle ricerche • Considerare Full text indexing su test e colonne image • Maggiori performance su database acceduti da sistemi di report e di analisi • Svantaggi in caso di over-indexing • Costi di manutenzione elevati • Vanno ricostruiti più spesso • Applicazioni OLTP sono penalizzate in scrittura

  43. Uso appropriato della RAM • Impostare la RAM (Min – Max) • In caso di istanze multiple è molto importante vincolare limite minimo e massimo • Per database di dimensioni ridotte è possibile utilizzare l’approccio dinamico • Modalità AWE (versione Enterprise) • AWE extensions permette di allocare molta RAM da dedicare alla cache di SQL Server • Assicurarsi che la memoria globalmente allocata non ecceda l’effettiva disponibilità in un sistema cluster multi-istanza con failover

  44. Altre ottimizzazioni • I cursori vanno usati con parsimonia e intelligenza estrema • Riscrivere query lente • È il momento giusto per individuare query lente presenti nel sistema informativo in questione da tempo per migliorarle con i tool più user-friendly di SQL Server

  45. Tool indispensabili • SQL Server Management Studio • SQL Server Profiler • Database Engine Tuning Advisor • Microsoft Query Analyzer • Business Intelligence Development Studio • Windows Performance Monitor • Microsoft Baseline Security Analyzer

  46. Riassunto • Molte problematiche coinvolte in una migrazione di database • SSMA automatizza la maggior parte del lavoro • Creazione report di assessment • Migrazione schema • Migrazione dati • Test migrazione • SSMA non è un giocattolo!

  47. Ulteriori informazioni • Microsoft SQL Server • http://www.microsoft.com/sql/ • Migrazione a SQL Server • http://www.microsoft.com/sql/solutions/ssm/ • Per sviluppatori • http://msdn.microsoft.com/

More Related