Microsoft ssma approfondimenti
This presentation is the property of its rightful owner.
Sponsored Links
1 / 47

Microsoft SSMA Approfondimenti PowerPoint PPT Presentation


  • 62 Views
  • Uploaded on
  • Presentation posted in: General

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Microsoft ssma approfondimenti

Microsoft SSMA Approfondimenti


Introduzione

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

Agenda

  • Configurazione opzioni SSMA

  • Conversione da PL/SQL a T-SQL

  • Migrazione di un database reale con SSMA

  • Considerazioni sulle performance


Agenda1

Agenda

  • Configurazione opzioni SSMA

  • Conversione da PL/SQL a T-SQL

  • Migrazione di un database reale con SSMA

  • Considerazioni sulle performance


Installazione e configurazione

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


Opzioni

Opzioni


Configurazione ssma

Configurazione SSMA


Agenda2

Agenda

  • Configurazione opzioni SSMA

  • Conversione da PL/SQL a T-SQL

  • Migrazione di un database reale con SSMA

  • Considerazioni sulle performance


Tipi di dati

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()


Tipi di dati 2

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


Tipo boolean

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


Tabelle

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


Indici

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


Variabili

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’


Statement if

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;


Statement while

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


Statement loop

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


Statement loop for

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


Attributi dei cursori

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


Oracle package

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


Agenda3

Agenda

  • Configurazione opzioni SSMA

  • Conversione da PL/SQL a T-SQL

  • Migrazione di un database reale con SSMA

  • Considerazioni sulle performance


Migrazione database protdemo

Migrazione database PROTDEMO


Architettura applicazione

Architettura applicazione

ASP

.NET

Oracle .NET

Data Provider

Oracle

ADO.NET

Windows

Forms


Protdemo migrazione manuale

PROTDEMO – Migrazione manuale


Protdemo migrazione manuale1

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


Protdemo migrazione manuale2

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


Strategia di migrazione

Strategia di migrazione

Assessment progetto

Migrazione schema

Migrazione dati

Migrazione logica business

Test codice migrato


Migrazione manuale assessment

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!


Migrazione manuale schema

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?


Migrazione manuale dati

Migrazione manuale - Dati

  • Bulk copy?

  • Bulk insert?

  • DTS?

OracleDatabase

Text File

OLE DB

ODBC

SQL ServerDatabase


Migrazione manuale logica di business

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?


Migrazione manuale test

Migrazione manuale – Test

  • Bisogna definire dei piani test

  • Bisogna scrivere del codice per l’esecuzione dei test

  • Bisogna eseguire i test


Migrazione manuale

Migrazione manuale

  • Quanto tempo ci vorrà?

  • Quanto costerà?

  • Quante persone servono?

  • Il buon esito del progetto è garantito?

  • L’applicazione funzionerà correttamente?


Protdemo migrazione con ssma

PROTDEMO – Migrazione con SSMA


Agenda4

Agenda

  • Configurazione opzioni SSMA

  • Conversione da PL/SQL a T-SQL

  • Migrazione di un database reale con SSMA

  • Considerazioni sulle performance


Processo di migrazione

Processo di migrazione

Assessment progetto

Migrazione schema

Migrazione dati

Migrazione logica business

Test codice migrato

Migrazione applicazione

Test e integrazione

Performance tuning


Performance tuning

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


Architettura storage

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


Migrazione dati

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


Migliorare la base dati

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


Tabelle migliori

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


Utilizzo di indici

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


Uso appropriato della ram

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


Altre ottimizzazioni

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


Tool indispensabili

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


Riassunto

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!


Ulteriori informazioni

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/


  • Login