La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Microsoft SQL Server 2005: Temporary Objects & Troubleshooting Francesco Quaratino Francesco Quaratino MCP, MCDBA, MCT Francesco

Presentazioni simili


Presentazione sul tema: "Microsoft SQL Server 2005: Temporary Objects & Troubleshooting Francesco Quaratino Francesco Quaratino MCP, MCDBA, MCT Francesco"— Transcript della presentazione:

1 Microsoft SQL Server 2005: Temporary Objects & Troubleshooting Francesco Quaratino Francesco Quaratino MCP, MCDBA, MCT Francesco Quaratinofrancesco@xplayn.orghttp://www.dotnetside.orghttp://www.xplayn.org

2 AgendaAgenda Introduzione Materializzazione dei dati Tabelle temporanee Tempdb Caratteristiche e funzionamento internal objects, version store, user objects User objects Local tables, global tables, in tempdb, table variables Improvements in Sql Server 2005 avoiding “after value” logging, instant data file initialization, deferred drop, caching Troubleshooting Space, I/O bottlenecks, contention in DML/DDL operations Performance counter, Dynamic Management Views (DMVs) Best Practise Number of files, files size, shrinking Introduzione Materializzazione dei dati Tabelle temporanee Tempdb Caratteristiche e funzionamento internal objects, version store, user objects User objects Local tables, global tables, in tempdb, table variables Improvements in Sql Server 2005 avoiding “after value” logging, instant data file initialization, deferred drop, caching Troubleshooting Space, I/O bottlenecks, contention in DML/DDL operations Performance counter, Dynamic Management Views (DMVs) Best Practise Number of files, files size, shrinking

3 IntroduzioneIntroduzione materializzazione dei dati Tabelle temporanee, viste, table variables, table expressions ospitare dati intermedi Possibilità di indicizzare solo una porzione di dati condividere dati fra più connessioni Tempdb come risorse globale condivisa tabelle temporanee nel tempdb o in cache da qualsiasi connessione e database context materializzazione dei dati Tabelle temporanee, viste, table variables, table expressions ospitare dati intermedi Possibilità di indicizzare solo una porzione di dati condividere dati fra più connessioni Tempdb come risorse globale condivisa tabelle temporanee nel tempdb o in cache da qualsiasi connessione e database context

4 Tempdb (Caratteristiche e funzionamento) si ricrea ad ogni riavvio A partire dal database model No Recovery Process Non necessità di ripristino all’avvio del servizio recovery model Simple Non può essere modificato si ricrea ad ogni riavvio A partire dal database model No Recovery Process Non necessità di ripristino all’avvio del servizio recovery model Simple Non può essere modificato

5 Tempdb (Caratteristiche e funzionamento) tempdb log Le operazioni sul tempdb sono loggate! Bulk copy program, bulk insert, SELECT INTO, index rebuild are bulk logged Ammesso il rollback transazioni che coinvolgono tabelle temporanee Non supportato il roll-forward Meno informazioni registrate rispetto a un user-db operazioni fino a 4 volte più veloci! tempdb log Le operazioni sul tempdb sono loggate! Bulk copy program, bulk insert, SELECT INTO, index rebuild are bulk logged Ammesso il rollback transazioni che coinvolgono tabelle temporanee Non supportato il roll-forward Meno informazioni registrate rispetto a un user-db operazioni fino a 4 volte più veloci!

6 Tempdb (internal objects, version store, user objects) Internal objects Ad uso interno di Sql Server Esempi d’uso: Per variabili di tipo XML e LOB Cursori Keyset e Static Dati intermedi di una query da ordinare Messaggi in transito del Service Broker Non utilizzabili dalle applicazioni Non visibili attraverso sys.all_objects No log records Internal objects Ad uso interno di Sql Server Esempi d’uso: Per variabili di tipo XML e LOB Cursori Keyset e Static Dati intermedi di una query da ordinare Messaggi in transito del Service Broker Non utilizzabili dalle applicazioni Non visibili attraverso sys.all_objects No log records

7 Tempdb (internal objects, version stores, user objects) Version stores per registrare row versions Snapshot isolation, tiggers, MARS, online index build Non visibili attraverso sys.all_objects No log records User objects Tabelle e indici definiti dall’utente Visibili attraverso sys.all_objects Trattabili mediante DML e DDL Version stores per registrare row versions Snapshot isolation, tiggers, MARS, online index build Non visibili attraverso sys.all_objects No log records User objects Tabelle e indici definiti dall’utente Visibili attraverso sys.all_objects Trattabili mediante DML e DDL

8 Local (or Private) Temporary Tables Visibilità solo nella connessione che l’ha creata Solo nel batch che l’ha creata Se creata in una SP, al termine di quest’ultima non è più visibile perché automaticamente distrutta No name-collision Ammessi tutti i constraints eccetto Foreign Key Visibilità solo nella connessione che l’ha creata Solo nel batch che l’ha creata Se creata in una SP, al termine di quest’ultima non è più visibile perché automaticamente distrutta No name-collision Ammessi tutti i constraints eccetto Foreign Key CREATE TABLE #T1 ( [id] INT NOT NULL PRIMARY KEY, [nome] VARCHAR(50) DEFAULT ('Ivan'), [età] TINYINT CHECK ([età]>18) )

9 Local temporary tables

10 Global Temporary Tables Visibilità Da tutte le connessioni Non necessità di permessi (non molto salutare..) Ogni sessione può farne il DROP Possibilità di name-collision Ammessi tutti i constraints eccetto Foreign Key Visibilità Da tutte le connessioni Non necessità di permessi (non molto salutare..) Ogni sessione può farne il DROP Possibilità di name-collision Ammessi tutti i constraints eccetto Foreign Key CREATE TABLE ##T1 (... )

11 Global Temporary Tables Muore con la chiusura dell’ultima connessione che la usa Dopo la chiusura della connessione in cui è stata creata, vi accede solo le connessioni che la stanno già utilizzando Di fatto, una connessione che la sta usando detiene un lock sulla tabella e quando l’ultimo lock viene rilasciato, la tabella viene distrutta automaticamente Muore con la chiusura dell’ultima connessione che la usa Dopo la chiusura della connessione in cui è stata creata, vi accede solo le connessioni che la stanno già utilizzando Di fatto, una connessione che la sta usando detiene un lock sulla tabella e quando l’ultimo lock viene rilasciato, la tabella viene distrutta automaticamente

12 Global temporary tables

13 Direttamente nel tempdb Tabelle temporanee sempre disponibili..un po’ un controsenso Necessità di permessi sul tempdb Da reimpostare a ogni riavvio! Un idea è sfruttare il model (ma non è consigliabile) Ammessi tutti i constraints Tabelle temporanee sempre disponibili..un po’ un controsenso Necessità di permessi sul tempdb Da reimpostare a ogni riavvio! Un idea è sfruttare il model (ma non è consigliabile) Ammessi tutti i constraints CREATE TABLE tempdb.dbo.T1 (... )

14 Table variables Create tacitamente nel tempdb Limitazioni No explicit indexes (except PK e Unique) No alter definition No SELECT INTO e INSERT EXEC Visibilità limitata al livello e al batch corrente (come una qualsiasi variabile) Non è parte di una transazione esplicita Create tacitamente nel tempdb Limitazioni No explicit indexes (except PK e Unique) No alter definition No SELECT INTO e INSERT EXEC Visibilità limitata al livello e al batch corrente (come una qualsiasi variabile) Non è parte di una transazione esplicita DECLARE @T AS TABLE ( [CustomerID] VARCHAR(100), [name] VARCHAR(100) )

15 Table variables Table variables

16 Improvements in Sql Server 2005 evita il log degli “after value” A vantaggio delle operazioni di INSERT e UPDATE delle dimensioni del file di log del tempdb delle operazioni di I/O sul disco che ospita il log instant data file initialization Non azzera il nuovo spazio del data file Solo per il data file Necessita di WinXP o Win2003 evita il log degli “after value” A vantaggio delle operazioni di INSERT e UPDATE delle dimensioni del file di log del tempdb delle operazioni di I/O sul disco che ospita il log instant data file initialization Non azzera il nuovo spazio del data file Solo per il data file Necessita di WinXP o Win2003

17 Improvements in Sql Server 2005 deferred drop L’applicazione non deve attendere l’avvenuta cancellazione perché realizzata in background Usato per oggetti più grandi di 8 MB Caching A vantaggio delle operazioni di creazione e cancellazione objects smaller than 8 MB are cached Non avviene il cache per le tabelle ridefinite mediante DML dopo la creazione Che presentano constraints con nome Se create in modo dinamico deferred drop L’applicazione non deve attendere l’avvenuta cancellazione perché realizzata in background Usato per oggetti più grandi di 8 MB Caching A vantaggio delle operazioni di creazione e cancellazione objects smaller than 8 MB are cached Non avviene il cache per le tabelle ridefinite mediante DML dopo la creazione Che presentano constraints con nome Se create in modo dinamico

18 TroubleshootingTroubleshooting Identificare applicazioni e query che consumano risorse Space, I/O bottlenecks, contention in DML/DDL operations Intraprendere azioni correttive Dimensionamento dei file Potenziamento hardware Modifica delle applicazioni Identificare applicazioni e query che consumano risorse Space, I/O bottlenecks, contention in DML/DDL operations Intraprendere azioni correttive Dimensionamento dei file Potenziamento hardware Modifica delle applicazioni

19 TroubleshootingTroubleshooting Tools for monitoring (for Space) Performance counters Dynamic Management Views (DMVs) Sys.dm_db_file_space_usage allocazione file - a livello di istanza - divisi per categorie di oggetti (internal, versin store, user) Sys.dm_db_session_file_usage allocazione file - livello di sessione Sys.dm_db_task_space_usage allocazione file – livello di task (batch) Tools for monitoring (for Space) Performance counters Dynamic Management Views (DMVs) Sys.dm_db_file_space_usage allocazione file - a livello di istanza - divisi per categorie di oggetti (internal, versin store, user) Sys.dm_db_session_file_usage allocazione file - livello di sessione Sys.dm_db_task_space_usage allocazione file – livello di task (batch)

20 Best Practices for tempdb (1/2) Numero di file più file di dati e log per potenziare I/O linea guida: un file per ogni CPU Dischi ad-hoc RAID10 per dati RAID1 per log Evitare l’auto-incremento di dafult impostato a 10% Induce alla frammentazione dei dati Numero di file più file di dati e log per potenziare I/O linea guida: un file per ogni CPU Dischi ad-hoc RAID10 per dati RAID1 per log Evitare l’auto-incremento di dafult impostato a 10% Induce alla frammentazione dei dati

21 Best Practices for tempdb (2/2) Files size Dopo aver osservato le dimensioni del tempdb per un lungo periodo di attività senza riavvio, modificare manualmente la dimensione dei file di dati e log Shrinking non è una buona norma Non agisce su internal object e version store Necessita avvio in single user mode Files size Dopo aver osservato le dimensioni del tempdb per un lungo periodo di attività senza riavvio, modificare manualmente la dimensione dei file di dati e log Shrinking non è una buona norma Non agisce su internal object e version store Necessita avvio in single user mode

22 RiferimentiRiferimenti Inside Microsoft Sql Server 2005: T-sql Programming Itzik Ben-Gan, Microsoft Press, 2006 Working with tempdb in SQL Server 2005 (whitepaper) http://download.microsoft.com/download/4/f/8 /4f8f2dc9-a9a7-4b68-98cb- 163482c95e0b/WorkingWithTempDB.doc Inside Microsoft Sql Server 2005: T-sql Programming Itzik Ben-Gan, Microsoft Press, 2006 Working with tempdb in SQL Server 2005 (whitepaper) http://download.microsoft.com/download/4/f/8 /4f8f2dc9-a9a7-4b68-98cb- 163482c95e0b/WorkingWithTempDB.doc

23 RisorseRisorse DotNetSide User Group: http://www.dotnetside.org Xplayn: http://www.xplayn.org Ugiss: http://www.ugiss.org My.settings.email: francesco@xplayn.org DotNetSide User Group: http://www.dotnetside.org Xplayn: http://www.xplayn.org Ugiss: http://www.ugiss.org My.settings.email: francesco@xplayn.org

24 Prossimi Webcast Dotnetside 19/10/2006 - Introduzione a Windows Presentation Foundation Vito Arconzo

25 Prossimi Webcast Sql Server 2005 16/10/2006 – Backup & Restore dei dati Gianluca Hotz 23/10/2006 – Programmazione T-SQL: le stored procedure e le viste Andrea Benedetti 16/10/2006 – Backup & Restore dei dati Gianluca Hotz 23/10/2006 – Programmazione T-SQL: le stored procedure e le viste Andrea Benedetti

26 Workshop Un workshop gratuto a Bari in cui parleremo di Asp.net, Click Once, Team System, Workflow e Windows Communication Foundation, il tutto accompagnato da esempi reali e subito disponibili per il download! Ed in più un.netShow in compagnia di Francesco Balena e Giuseppe Di Mauro! Consulta l’agenda all’indirizzo: http://www.dotnetside.org/content/netpresentandfuture.aspx Registrati subito! I posti sono limitati!!!

27 Grazie! & Enjoy Your SeQueL Grazie! & Enjoy Your SeQueL


Scaricare ppt "Microsoft SQL Server 2005: Temporary Objects & Troubleshooting Francesco Quaratino Francesco Quaratino MCP, MCDBA, MCT Francesco"

Presentazioni simili


Annunci Google