1 amministrare sql server yukon: le novità, dai tools alla high availability. silvano coriani...
TRANSCRIPT
1
Amministrare SQL Server “Yukon”: le novità, dai tools alla High Availability.
Silvano CorianiDeveloper & Platform EvangelismMicrosoft
2
AgendaAgenda
Architettura e configurazioneLe novità nella securityMonitoringSecurityDevelopmentAvailability
Data Access ConcurrencyDatabase Server Failure or DisasterDatabase Maintenance and Operations
ManageabilityScalability and Reporting
Architettura e configurazioneLe novità nella securityMonitoringSecurityDevelopmentAvailability
Data Access ConcurrencyDatabase Server Failure or DisasterDatabase Maintenance and Operations
ManageabilityScalability and Reporting
3
Architettura: i componentiArchitettura: i componenti
Database EngineFino a 50 instanze supportate in Enterprise Edition
Analysis ServicesCluster aware, istanze multiple
Notification ServicesReporting ServicesSQL Server AgentFulltext SearchService Broker
Tutti in versione 32-bit e 64-bit
Database EngineFino a 50 instanze supportate in Enterprise Edition
Analysis ServicesCluster aware, istanze multiple
Notification ServicesReporting ServicesSQL Server AgentFulltext SearchService Broker
Tutti in versione 32-bit e 64-bit
4
Fulltext SearchFulltext Search
Architettura completamente rifatta
Ora i cataloghi degli indici sono inclusi in Backup e Restore
Attach e Detach del db includono i cataloghi
Multi-InstanzaUna istanza di FTS per SQL Server
Architettura completamente rifatta
Ora i cataloghi degli indici sono inclusi in Backup e Restore
Attach e Detach del db includono i cataloghi
Multi-InstanzaUna istanza di FTS per SQL Server
5
Configurazione dinamicaConfigurazione dinamica
Tutti i parametri di configurazione dinamiciNessun restart modificando i parametri
CPU Affinity
I/O Affinity
Address Windowing Extensions (AWE)Modifiche alla dimensione fisica non richiedono downtime
Configurazione dinamica (Min / Max)Limitata solo dalla memoria fisicaGestisce dinamicamente la memoria “hot-add”
Richiede Windows Server 2003
Tutti i parametri di configurazione dinamiciNessun restart modificando i parametri
CPU Affinity
I/O Affinity
Address Windowing Extensions (AWE)Modifiche alla dimensione fisica non richiedono downtime
Configurazione dinamica (Min / Max)Limitata solo dalla memoria fisicaGestisce dinamicamente la memoria “hot-add”
Richiede Windows Server 2003
6
Supporto “Hot-add”Supporto “Hot-add”
La memoria fisica può essere aggiunta senza restart di servizio o del server
Elimina i failover pianificati per la manutenzione
RichiedeHW appropriatoWindows Server 2003
La memoria fisica può essere aggiunta senza restart di servizio o del server
Elimina i failover pianificati per la manutenzione
RichiedeHW appropriatoWindows Server 2003
7
SetupSetup
Il setup è basato su Windows Installer
Il Setup Consistency Checker consente di prevenire possibili incompatibilità
Setup remoto ora basato su WMI
Failover ClusterSupporta fino a 8 nodiReport sul progresso delle installazioni per setup su nodi multipliSetup di Analysis Services in clusterSetup unattended sul cluster
Il setup è basato su Windows Installer
Il Setup Consistency Checker consente di prevenire possibili incompatibilità
Setup remoto ora basato su WMI
Failover ClusterSupporta fino a 8 nodiReport sul progresso delle installazioni per setup su nodi multipliSetup di Analysis Services in clusterSetup unattended sul cluster
8
ConnettivitàConnettività
Accesso HTTPNuova “Net-lib” alternativa a TCP/IP, Named Pipes e Shared MemorySQL Server implementa uilizza il lister HTTP
Può convivere con IIS, ma IIS non è richiesto
Disabilitato all’installazione (secure by default)Possibilità di restringere l’accesso ai utenti, SP e databasePossibilità di consentire l’accesso a batch di comandi o query ad-hoc
Accesso HTTPNuova “Net-lib” alternativa a TCP/IP, Named Pipes e Shared MemorySQL Server implementa uilizza il lister HTTP
Può convivere con IIS, ma IIS non è richiesto
Disabilitato all’installazione (secure by default)Possibilità di restringere l’accesso ai utenti, SP e databasePossibilità di consentire l’accesso a batch di comandi o query ad-hoc
9
Virtual TableVirtual Table
‘Tabelle’ che riflettono lo stato dei parametri interni di funzionamentoAlmeno 25 nuove Virtual Tables per aiutare il DBA a:
Monitorare il serverDiagnosticare il problema
syswaits è l’esempio migliore Statistiche sui tempi di attesa dei thread di sistemaUnione di
Grafo degli stati di waitInformazioni in sysprocesses
Colonne in syswaitswaitingTask spid waitTimewaitType resource blockingTask
‘Tabelle’ che riflettono lo stato dei parametri interni di funzionamentoAlmeno 25 nuove Virtual Tables per aiutare il DBA a:
Monitorare il serverDiagnosticare il problema
syswaits è l’esempio migliore Statistiche sui tempi di attesa dei thread di sistemaUnione di
Grafo degli stati di waitInformazioni in sysprocesses
Colonne in syswaitswaitingTask spid waitTimewaitType resource blockingTask
10
Server EventsServer Events
Eventi generati da operazioni di tipi DML e DDL
Applicazioni e utenti possono registrarsi per ricevere una notifica all’avvenire di un certo eventoRegistrazione che avviene attraverso WMI per essere notificato di operazioni DDL, DML ed eventi di trace
Eventi generati da operazioni di tipi DML e DDL
Applicazioni e utenti possono registrarsi per ricevere una notifica all’avvenire di un certo eventoRegistrazione che avviene attraverso WMI per essere notificato di operazioni DDL, DML ed eventi di trace
11
SQL Server TraceSQL Server Trace
Architettura “alleggerita” per dare la possibilità di eseguire trace in forma continuativa e regolare
Nuovi eventi disponibili
Filtering migliorato per evitare di omettere informazioni importanti
Es. Omettere tutto quello che ha ‘password’ nel testo
Non è più necessario essere sysadmin per eseguire il trace
Architettura “alleggerita” per dare la possibilità di eseguire trace in forma continuativa e regolare
Nuovi eventi disponibili
Filtering migliorato per evitare di omettere informazioni importanti
Es. Omettere tutto quello che ha ‘password’ nel testo
Non è più necessario essere sysadmin per eseguire il trace
12
Strumenti di amministrazioneStrumenti di amministrazione
Suite di tool integratiSupporto per tutti i servizi di SQL ServerCompatibilità con SQL Server 7.0, 2000, e Yukon
SQL Server Agent è stato completamente ridisegnato
Obiettivo: performance, sicurezza e scalabilità
ProfilerFunziona anche per Analysis ServerShowplan Events, Deadlock Events
ReplayMigliorata la capacità di replay di trace catturati su processi multipli e paralleli
Suite di tool integratiSupporto per tutti i servizi di SQL ServerCompatibilità con SQL Server 7.0, 2000, e Yukon
SQL Server Agent è stato completamente ridisegnato
Obiettivo: performance, sicurezza e scalabilità
ProfilerFunziona anche per Analysis ServerShowplan Events, Deadlock Events
ReplayMigliorata la capacità di replay di trace catturati su processi multipli e paralleli
13
SecuritySecurity
Security su catalogo e metadatiChi si collega vede solo i metadati sui quali ha qualche permission!!!
Separazione tra User e SchemaControllo granulare sulle permission
È possibile assegnare permission che in precedenza erano riservato solo a ruoli particolare
Es: Profiler per i non-SA
I fixed roles sono ancora disponibili
Enforcement di policy sulle passwordPassword strength, expiration
Row-level security
Security su catalogo e metadatiChi si collega vede solo i metadati sui quali ha qualche permission!!!
Separazione tra User e SchemaControllo granulare sulle permission
È possibile assegnare permission che in precedenza erano riservato solo a ruoli particolare
Es: Profiler per i non-SA
I fixed roles sono ancora disponibili
Enforcement di policy sulle passwordPassword strength, expiration
Row-level security
14
Catalogo di sistema e metadatiCatalogo di sistema e metadati
Il System Catalog è cambiato radicalmenteConsente una architettura di sicurezza più robusta e aggiornamenti più rapidi
Nessun accesso diretto alle tabelle di sistemaRow-level security applicata a tutti gli oggetti del catalogo
You only see what you have access to
Compatibilità con il passato attraverso un set di viste dedicato
Se non sono state utilizzate cose non documentateCirca 100 nuove “Catalog Views”
Schema normalizzato; nomenclatura consistenteNessun campo gestito a “bit”Meno chiamate a OBJECTPROPERTYNessuna colonna “For internal use only”
Il System Catalog è cambiato radicalmenteConsente una architettura di sicurezza più robusta e aggiornamenti più rapidi
Nessun accesso diretto alle tabelle di sistemaRow-level security applicata a tutti gli oggetti del catalogo
You only see what you have access to
Compatibilità con il passato attraverso un set di viste dedicato
Se non sono state utilizzate cose non documentateCirca 100 nuove “Catalog Views”
Schema normalizzato; nomenclatura consistenteNessun campo gestito a “bit”Meno chiamate a OBJECTPROPERTYNessuna colonna “For internal use only”
15
Catalogo di sistema e metadatiCatalogo di sistema e metadatiIl catalogo di sistema risiede nel “resource database” – e non nel “master”
Il database catalog appare nello schema sys di ogni database
sys.sp_help, sys.tables, sys.objects, …
Attraverso le viste è possibile accedere ai vari metadati del sistema
Esistono viste per:Le tabelle di sistema di SQL Server 2000Le viste di INFORMATION_SCHEMALe funzioni “Property”Funzioni built-in
Il catalogo di sistema risiede nel “resource database” – e non nel “master”
Il database catalog appare nello schema sys di ogni database
sys.sp_help, sys.tables, sys.objects, …
Attraverso le viste è possibile accedere ai vari metadati del sistema
Esistono viste per:Le tabelle di sistema di SQL Server 2000Le viste di INFORMATION_SCHEMALe funzioni “Property”Funzioni built-in
16
Data typesData types
Varchar(1-8000), Nvarchar(1-4000), Varbinary(1-8000)
La dimensione max della colonna rimane 8,000 bytesUn record può ora superare la dimensione di una pagina
Varchar(max), Nvarchar(max), Varbinary(max)
Possono ospitare più di 8000 character / byteVarbinary(max) Filestream
Date, Time – data e ora separata (sono tipi CLR)XML – Supporto completo al nuovo tipoUDDT – User-defined Data Types utilizzando il CLR
Varchar(1-8000), Nvarchar(1-4000), Varbinary(1-8000)
La dimensione max della colonna rimane 8,000 bytesUn record può ora superare la dimensione di una pagina
Varchar(max), Nvarchar(max), Varbinary(max)
Possono ospitare più di 8000 character / byteVarbinary(max) Filestream
Date, Time – data e ora separata (sono tipi CLR)XML – Supporto completo al nuovo tipoUDDT – User-defined Data Types utilizzando il CLR
17
FILESTREAMFILESTREAMFILESTREAM permettono un accesso al filesystem attraverso le API del database server (transazionali) in modo trasparente
Per applicazioni che gestiscono immagini, documenti, video, ecc.
FILESTREAM è un’attributo dello storage che può essere specificato per colonne varbinary(max)La gestione delle colonne FILESTREAM avviene attraverso comendi DDL
FILESTREAM permettono un accesso al filesystem attraverso le API del database server (transazionali) in modo trasparente
Per applicazioni che gestiscono immagini, documenti, video, ecc.
FILESTREAM è un’attributo dello storage che può essere specificato per colonne varbinary(max)La gestione delle colonne FILESTREAM avviene attraverso comendi DDL
18
Access via Database Access via Database
FILESTREAM DataFILESTREAM DataSQL Server’sSQL Server’sRow DataRow Data
SQL Server
Application
Win32 NTFS Win32 NTFS FilesystemFilesystem
19
Access via Database Access via Database
FILESTREAM DataFILESTREAM DataSQL Server’sSQL Server’sRow DataRow Data
SQL Server
Application
Win32 NTFS Win32 NTFS FilesystemFilesystem
20
Access via Database Access via Database
FILESTREAM DataFILESTREAM DataSQL Server’sSQL Server’sRow DataRow Data
SQL Server
Application
Win32 NTFS Win32 NTFS FilesystemFilesystem
21
Access via Database Access via Database
SQL Server’sSQL Server’sFILESTREAMFILESTREAM
AgentAgent
FILESTREAM DataFILESTREAM DataSQL Server’sSQL Server’sRow DataRow Data
SQL Server
Application
Win32 NTFS Win32 NTFS FilesystemFilesystem
22
Access via Database Access via Database
SQL Server’sSQL Server’sFILESTREAMFILESTREAM
AgentAgent
FILESTREAM DataFILESTREAM DataSQL Server’sSQL Server’sRow DataRow Data
SQL Server
Application
Win32 NTFS Win32 NTFS FilesystemFilesystem
23
Access via Database Access via Database
SQL Server’sSQL Server’sFILESTREAMFILESTREAM
AgentAgent
FILESTREAM DataFILESTREAM DataSQL Server’sSQL Server’sRow DataRow Data
SQL Server
Application
Win32 NTFS Win32 NTFS FilesystemFilesystem
24
Access via FilesystemAccess via Filesystem
SQL Server’sSQL Server’sFILESTREAMFILESTREAM
AgentAgent
FILESTREAM DataFILESTREAM DataSQL Server’sSQL Server’sRow DataRow Data
SQL Server
Application
Win32 NTFS Win32 NTFS FilesystemFilesystem
25
Access via FilesystemAccess via Filesystem
SQL Server’sSQL Server’sFILESTREAMFILESTREAM
AgentAgent
FILESTREAM DataFILESTREAM DataSQL Server’sSQL Server’sRow DataRow Data
SQL Server
Application
Win32 NTFS Win32 NTFS FilesystemFilesystem
Path obtained Path obtained from SQL Serverfrom SQL Server
26
Access via FilesystemAccess via Filesystem
SQL Server’sSQL Server’sFILESTREAMFILESTREAM
AgentAgent
FILESTREAM DataFILESTREAM DataSQL Server’sSQL Server’sRow DataRow Data
SQL Server
Application
Win32 NTFS Win32 NTFS FilesystemFilesystem
Security checkSecurity check
Path obtained Path obtained from SQL Serverfrom SQL Server
27
Access via FilesystemAccess via Filesystem
SQL Server’sSQL Server’sFILESTREAMFILESTREAM
AgentAgent
FILESTREAM DataFILESTREAM DataSQL Server’sSQL Server’sRow DataRow Data
SQL Server
Application
Win32 NTFS Win32 NTFS FilesystemFilesystem
Security checkSecurity check
Path obtained Path obtained from SQL Serverfrom SQL Server
28
Access via FilesystemAccess via Filesystem
SQL Server’sSQL Server’sFILESTREAMFILESTREAM
AgentAgent
FILESTREAM DataFILESTREAM DataSQL Server’sSQL Server’sRow DataRow Data
SQL Server
Application
Win32 NTFS Win32 NTFS FilesystemFilesystem
Security checkSecurity check
Path obtained Path obtained from SQL Serverfrom SQL Server
29
Access via BothAccess via Both
SQL Server’sSQL Server’sFILESTREAMFILESTREAM
AgentAgent
FILESTREAM DataFILESTREAM DataSQL Server’sSQL Server’sRow DataRow Data
SQL Server
Application
Win32 NTFS Win32 NTFS FilesystemFilesystem
Security checkSecurity check
Path obtained Path obtained from SQL Serverfrom SQL Server
Transaction ManagerTransaction Manager
30
Fast RecoveryRestart o RestoreFast RecoveryRestart o Restore
SQL Server 2000Database disponibile dopo l’Undo
SQL Server 2000Database disponibile dopo l’Undo
UndoUndoRedoRedo
AvailableAvailableTimeTime
31
Fast RecoveryRestart or RestoreFast RecoveryRestart or Restore
SQL Server 2000Database is available after Undo completes
YukonDatabase disponibile all’inizio dell’Undo
SQL Server 2000Database is available after Undo completes
YukonDatabase disponibile all’inizio dell’Undo
UndoUndoRedoRedo
AvailableAvailable
UndoUndoRedoRedo
AvailableAvailable
TimeTime
32
Database “ViewPoint”Database “ViewPoint”
Copia consistente e read-only del databaseOttimo per soluzioni di reportingPosso fare rollback di un db ad un certo ViewPoint
Per correggere errori dell’applicazion o del DBA
Non “sincronizzato” con il database dal quale provienePoco costoso
Veloce alla creazioneEconomico in termini di spazio
Tecnologia “Copy-on-Write”
Possono essere creati per qualsiasi databaseDi produzionePer copie di standby di un Database Mirroring
Copia consistente e read-only del databaseOttimo per soluzioni di reportingPosso fare rollback di un db ad un certo ViewPoint
Per correggere errori dell’applicazion o del DBA
Non “sincronizzato” con il database dal quale provienePoco costoso
Veloce alla creazioneEconomico in termini di spazio
Tecnologia “Copy-on-Write”
Possono essere creati per qualsiasi databaseDi produzionePer copie di standby di un Database Mirroring
33
Snapshot IsolationSnapshot Isolation
Nuovo livello transazionale
Aumenta la disponibilità dei dati per le applicazioni in lettura
Permette la lettura non-bloccante e consistente in un database OLTP
Writers don’t block readersReaders don’t block writers
Permette la modifica dei dati, ma questo causa conflitti
Nel caso, è obbligatorio un sistema di individuazione e gestione dei conflitti
Nuovo livello transazionale
Aumenta la disponibilità dei dati per le applicazioni in lettura
Permette la lettura non-bloccante e consistente in un database OLTP
Writers don’t block readersReaders don’t block writers
Permette la modifica dei dati, ma questo causa conflitti
Nel caso, è obbligatorio un sistema di individuazione e gestione dei conflitti
34
Operazioni online sugli indiciOperazioni online sugli indici
Ora le operazioni sugli indici possono essere fatte durante la modifica delle tabelle sottostanti
Update, Insert, Delete
Manutenzion online degli indiciCreazione, Rebuild e cancellazioneRiorganizzazione (includendo i BLOB)Anche sui vincoli basati sugli indici (PK, Unique)
Gli aggiornamenti possono provocare costi aggiuntivi durante una operazione sugli indici
Vengono mantenute le copie nuova e vecchia dell’indice
Ora le operazioni sugli indici possono essere fatte durante la modifica delle tabelle sottostanti
Update, Insert, Delete
Manutenzion online degli indiciCreazione, Rebuild e cancellazioneRiorganizzazione (includendo i BLOB)Anche sui vincoli basati sugli indici (PK, Unique)
Gli aggiornamenti possono provocare costi aggiuntivi durante una operazione sugli indici
Vengono mantenute le copie nuova e vecchia dell’indice
35
Database MirroringDatabase Mirroring
Meccanismo di failover semplice e istantaneoFailover veloce … meno di 3 secondiAutomatico o manualeNessuna perdita di datiRe-sync automatico dopo un failover
HardwareNessun bisogno di hardware certificatoNessuno storage condiviso
Minimo impatto sulle operazioni transazionaliÈ possibile pensarlo sulle macchine di produzione
I client vengono rediretti automaticamenteIl server mirror non è “online”
Ma posso usare un ViewPoint per creare una soluzione di reporting simile al Log Shipping
Meccanismo di failover semplice e istantaneoFailover veloce … meno di 3 secondiAutomatico o manualeNessuna perdita di datiRe-sync automatico dopo un failover
HardwareNessun bisogno di hardware certificatoNessuno storage condiviso
Minimo impatto sulle operazioni transazionaliÈ possibile pensarlo sulle macchine di produzione
I client vengono rediretti automaticamenteIl server mirror non è “online”
Ma posso usare un ViewPoint per creare una soluzione di reporting simile al Log Shipping
36
Database MirroringDatabase Mirroring
Fault tolerant virtual databaseFault tolerant virtual database
MirrorMirrorPrincipalPrincipal
ClientsClients
WitnessWitness
37
Redirezione automatica del clientRedirezione automatica del client
Nessuna modifica al codice delle applicazioni
Il client viene automaticamente rediretto se la sessione cade
MDAC conosce il server Principal e il Mirror
Dopo la connessioni iniziale al principal, MDAC mantiene in cache il nome del MirrorQuando il client prova a riconnettersi
Se il Principal è disponibile apre la connessioneAltrimenti, MDAC redirige sul Mirror
Nessuna modifica al codice delle applicazioni
Il client viene automaticamente rediretto se la sessione cade
MDAC conosce il server Principal e il Mirror
Dopo la connessioni iniziale al principal, MDAC mantiene in cache il nome del MirrorQuando il client prova a riconnettersi
Se il Principal è disponibile apre la connessioneAltrimenti, MDAC redirige sul Mirror
38
Connessione amministrativa dedicataConnessione amministrativa dedicata
Fornisce un accesso amministrativo al server indipendentemente dal carico di lavoro del server
Accesso privilegiato rispetto alle connessioni degli utenti
Nessun bisogno di far ripartire il server per riguadagnarne il controllo
Ovviamente, riservata ai sysadmin
Fornisce un accesso amministrativo al server indipendentemente dal carico di lavoro del server
Accesso privilegiato rispetto alle connessioni degli utenti
Nessun bisogno di far ripartire il server per riguadagnarne il controllo
Ovviamente, riservata ai sysadmin
39
Restore OnlineRestore Online
Online RestoreIl database rimane online
Solo i dati in fase di restore sono offlineL’unità di disponibilità è il filegroup e non il db
Piecemeal RestoreRestore online dei filegroup per priorità
Tracking delle pagine danneggiate
Page-Level RestoreRestore di pagine individuali mentre il database è online
Online RestoreIl database rimane online
Solo i dati in fase di restore sono offlineL’unità di disponibilità è il filegroup e non il db
Piecemeal RestoreRestore online dei filegroup per priorità
Tracking delle pagine danneggiate
Page-Level RestoreRestore di pagine individuali mentre il database è online
40
Backup e RestoreBackup e Restore
Il backup dei dati non blocca il backup del log
Possono andare in concorrenzaÈ possibile solo un backup dei dati alla volta per database
Backup / Restore includono gli indici FullText e i dati di tipo FILESTREAM
Il backup dei dati non blocca il backup del log
Possono andare in concorrenzaÈ possibile solo un backup dei dati alla volta per database
Backup / Restore includono gli indici FullText e i dati di tipo FILESTREAM
41
Estensioni DDLEstensioni DDL
Attach e Detach includono i cataloghi Fulltext, e i tipi FilestreamPer creare un db partendo dai file dati, ricostruendo il log…
CREATE DATABASE <dbname> … FOR ATTACH_REBUILD_LOG
I file possono essere spostati come posizione
Era solo sul tempdb, ora per qulunque dbOperazione offlineALTER DATABASE <dbname> MODIFY FILE ( name = <logical name>, filename = <new path>)
Attach e Detach includono i cataloghi Fulltext, e i tipi FilestreamPer creare un db partendo dai file dati, ricostruendo il log…
CREATE DATABASE <dbname> … FOR ATTACH_REBUILD_LOG
I file possono essere spostati come posizione
Era solo sul tempdb, ora per qulunque dbOperazione offlineALTER DATABASE <dbname> MODIFY FILE ( name = <logical name>, filename = <new path>)
42
Miglioramenti sugli indiciMiglioramenti sugli indici
La ricostruzione di un indice Clustered, non causa la ricostruzione di tutti i Nonclustered correlatiIndici con Included Columns
Permettono l’inserimento di dati di altre colonne nel livello foglia di un indice
Le colonne non chiave non sono incluse nella struttura dell’indice e nella verifica della dimensione limite
Possibilità di creare più indici ‘covering’Disabilitare gli indici
Possibilità di stoppare l’utilizzo e l’aggiornamento di un indice
Disallocazione dello spazio ma mantenimento dei metadatiOccorre ricostruire prima di poter utilizzare di nuovo
Semplice riattivazione, avendo i metadati disponibiliALTER INDEX … REBUILD
La ricostruzione di un indice Clustered, non causa la ricostruzione di tutti i Nonclustered correlatiIndici con Included Columns
Permettono l’inserimento di dati di altre colonne nel livello foglia di un indice
Le colonne non chiave non sono incluse nella struttura dell’indice e nella verifica della dimensione limite
Possibilità di creare più indici ‘covering’Disabilitare gli indici
Possibilità di stoppare l’utilizzo e l’aggiornamento di un indice
Disallocazione dello spazio ma mantenimento dei metadatiOccorre ricostruire prima di poter utilizzare di nuovo
Semplice riattivazione, avendo i metadati disponibiliALTER INDEX … REBUILD
43
Caricamento massivo di datiCaricamento massivo di dati
Nuovo formato XML-basedFornisce tutte le funzionalità del precedente ma ne consente molte di piùFormato semplice da specificare e comprendereSupportato dai comandi T-SQL e BCPIl vecchio formato può essere ancora utilizzatoIl vecchio formato dati può essere caricato utilizzando i nuovi format file XML
Problematiche di sicurezzaUtilizza i privilegi dell’utente Windows che ha lanciato il programma per leggere/scrivere i file da disco
Performance migliorate
Nuovo formato XML-basedFornisce tutte le funzionalità del precedente ma ne consente molte di piùFormato semplice da specificare e comprendereSupportato dai comandi T-SQL e BCPIl vecchio formato può essere ancora utilizzatoIl vecchio formato dati può essere caricato utilizzando i nuovi format file XML
Problematiche di sicurezzaUtilizza i privilegi dell’utente Windows che ha lanciato il programma per leggere/scrivere i file da disco
Performance migliorate
44
Caricamento massivo di datiCaricamento massivo di dati
Logging degli erroriL’operazione va a termine anche se ci sono erroriLe righe non correttamente formattate vengono redirette sul file di log per analisi successiveLe righe che violano qualche constraint vengono redirette su una tabella degli errori insieme con il messaggio generato
Modello uniforme con il comando di InsertL’Insert-Select del T-SQL guadagna gli stessi miglioramenti e ottimizzazioni
Es: Logging
OPENROWSET migliorato per leggere i dati da file esterni
Logging degli erroriL’operazione va a termine anche se ci sono erroriLe righe non correttamente formattate vengono redirette sul file di log per analisi successiveLe righe che violano qualche constraint vengono redirette su una tabella degli errori insieme con il messaggio generato
Modello uniforme con il comando di InsertL’Insert-Select del T-SQL guadagna gli stessi miglioramenti e ottimizzazioni
Es: Logging
OPENROWSET migliorato per leggere i dati da file esterni
45
Partizionamento dei datiPartizionamento dei dati
Il partizionamento suddivide un oggetto in parti più facilmente gestibili
Trasparente alle applicazioniConsente la gestione di tabelle e indici di grandissime dimensioni in maniera sempliceLa riga è l’unità di partizionamentoTutte le partizioni devono risiedere nello stesso database
Il partizionamento suddivide un oggetto in parti più facilmente gestibili
Trasparente alle applicazioniConsente la gestione di tabelle e indici di grandissime dimensioni in maniera sempliceLa riga è l’unità di partizionamentoTutte le partizioni devono risiedere nello stesso database
A, B, CA, B, C D, E, FD, E, F G, H, IG, H, I J, K, LJ, K, L
A, B, C, D, E, F, G, H, I, J, K, LA, B, C, D, E, F, G, H, I, J, K, LNon PartizionataNon Partizionata
PartizionataPartizionata
46
Perchè partizionare?Perchè partizionare?
Tabelle e indici molto grandi possono essere gestiti in modo semplice
Esempio: i dati di vendita separati per trimestre – backup e operazioni di manutenzione a livello di partizione
Per avvantaggiarsi di macchie con più CPU (16-64) (machine scale-up)
Ogni CPU può lavorare sulla propria partizione indipendentemente (concorrenza migliorata)
Tabelle e indici molto grandi possono essere gestiti in modo semplice
Esempio: i dati di vendita separati per trimestre – backup e operazioni di manutenzione a livello di partizione
Per avvantaggiarsi di macchie con più CPU (16-64) (machine scale-up)
Ogni CPU può lavorare sulla propria partizione indipendentemente (concorrenza migliorata)
47
Partizionamento dei datiPartizionamento dei dati
Le partizioni possono essere aggiunte e cancellate senza perdere la disponibilità della tabella stessa
La tabella rimane completamente disponibile durante il caricamento e l’indicizzazione di una nuova partizioneLa creazione di nuove partizioni e la cancellazione delle vecchie è immediataVelocità di caricamento molto elevate
Se gli indici sono allineati, è possibile muovere partizioni dentro e fuori da una tabella
Scenario “Sliding window”
Le partizioni possono essere aggiunte e cancellate senza perdere la disponibilità della tabella stessa
La tabella rimane completamente disponibile durante il caricamento e l’indicizzazione di una nuova partizioneLa creazione di nuove partizioni e la cancellazione delle vecchie è immediataVelocità di caricamento molto elevate
Se gli indici sono allineati, è possibile muovere partizioni dentro e fuori da una tabella
Scenario “Sliding window”
48
Cosa può essere partizionatoCosa può essere partizionato
Gli oggetti partizionabili sonoTabelle di baseIndici (clustered e non clustered)Viste indicizzate
Solo partizionamento “orizzontale”Riga come più piccola unità di partizionamento
Gli oggetti partizionabili sonoTabelle di baseIndici (clustered e non clustered)Viste indicizzate
Solo partizionamento “orizzontale”Riga come più piccola unità di partizionamento
49
Come partizionareCome partizionare
Ogni riga è assegnata ad una partizione attraverso una “partition function”
Ogni funzione di partizionamento è mappata ad un elemento di storage specifico (Filegroup) attraverso un “partition scheme”
Ogni riga è assegnata ad una partizione attraverso una “partition function”
Ogni funzione di partizionamento è mappata ad un elemento di storage specifico (Filegroup) attraverso un “partition scheme”
50
Partition FunctionPartition Function
Mappa una riga ad una partizione sulla base del valore delle colonne
MyPtnFunc(T.salesdate) --> (1, 2, 3, ...)
Due tipi di funzioni di partizionamentoHash – hashing definito dal sistema; L’utente definisce le colonne della chiave e il numero di partizioniRange – L’utente definisce le colonne chiave, il numero delle partizione e i confini di ogni partizione
Le funzioni di partizionamento devono mappare completamente il dominio del range di input
Tutti i possibili valori per quel tipo di colonna
Mappa una riga ad una partizione sulla base del valore delle colonne
MyPtnFunc(T.salesdate) --> (1, 2, 3, ...)
Due tipi di funzioni di partizionamentoHash – hashing definito dal sistema; L’utente definisce le colonne della chiave e il numero di partizioniRange – L’utente definisce le colonne chiave, il numero delle partizione e i confini di ogni partizione
Le funzioni di partizionamento devono mappare completamente il dominio del range di input
Tutti i possibili valori per quel tipo di colonna
51
Partition SchemePartition Scheme
Assegna una partizione ad un elemento di storage fisico (Filegroup)
Più partizioni possono essere mappate sullo stesso o su differenti Filegroup
In SQL Server 2000, tabelle e indici erano mappati su Filegroup – ora vengono mappati a partition scheme
Una funzione di partizionamento può essere legata a più partition scheme
Assegna una partizione ad un elemento di storage fisico (Filegroup)
Più partizioni possono essere mappate sullo stesso o su differenti Filegroup
In SQL Server 2000, tabelle e indici erano mappati su Filegroup – ora vengono mappati a partition scheme
Una funzione di partizionamento può essere legata a più partition scheme
52
Database Tuning Advisor Database Tuning Advisor
Il successore del “Index Tuning Wizard”Applicazione completa – nuova e più ricca UINon solo per indici e viste indicizzate
Aggiunta di partizione e tuning multi databaseSuggerimenti sulle nuove feature legate agli indici
Es: indici con Included Columns, ecc.
Raccomandazioni sulla high availability tengono conto dei criteri di disponibilità (es. Solo indici che possono essere ricostruiti online)
Limiti di tempo alle operazioniL’amministratore decide il ‘think’ time
Analisi “What-if” sulla base dei suggerimenti del tool
Il successore del “Index Tuning Wizard”Applicazione completa – nuova e più ricca UINon solo per indici e viste indicizzate
Aggiunta di partizione e tuning multi databaseSuggerimenti sulle nuove feature legate agli indici
Es: indici con Included Columns, ecc.
Raccomandazioni sulla high availability tengono conto dei criteri di disponibilità (es. Solo indici che possono essere ricostruiti online)
Limiti di tempo alle operazioniL’amministratore decide il ‘think’ time
Analisi “What-if” sulla base dei suggerimenti del tool
53
Enterprise Data Enterprise Data ManagementManagement
Enterprise Data Enterprise Data ManagementManagement
ProgrammabilitàProgrammabilitàe BIe BI
ProgrammabilitàProgrammabilitàe BIe BI
Prestazioni ePrestazioni eScalabilitàScalabilità
Prestazioni ePrestazioni eScalabilitàScalabilità
Replica dei dati
Replicazione dei tipi .NETReplicazione dei tipi .NET Programmazione attraverso le .NET APIProgrammazione attraverso le .NET API Pubblicazione dei dati da Oracle a SQL ServerPubblicazione dei dati da Oracle a SQL Server Replicazione su HTTP / HTTPSReplicazione su HTTP / HTTPS
Riduzione dei tempi di replicaRiduzione dei tempi di replica Supporto di un più largo numero di Supporto di un più largo numero di
subscribersubscriber Miglioramento della concorrenza con le Miglioramento della concorrenza con le
applicazioniapplicazioni
Increase uptime Increase uptime Semplifica il setup e l’amministrazioneSemplifica il setup e l’amministrazione Nuovo sistema di controllo dello stato della Nuovo sistema di controllo dello stato della
replicazione (health monitor)replicazione (health monitor)
54
In sintesiIn sintesi
Ci sono una “tonnellata” di novità in Yukon per l’amministratore del sistema
I focus particolari:SicurezzaDisponibilità dei datiScalabilitàSemplificazione delle attività amministrative
Per saperne di più:http://www.microsoft.com/sql/yukonhttp://blogs.gotdotnet.com/scoriani ☺
Ci sono una “tonnellata” di novità in Yukon per l’amministratore del sistema
I focus particolari:SicurezzaDisponibilità dei datiScalabilitàSemplificazione delle attività amministrative
Per saperne di più:http://www.microsoft.com/sql/yukonhttp://blogs.gotdotnet.com/scoriani ☺
55© 2003-2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.