La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Les Webcasts Groupe des Utilisateurs SQL Server Juin 2013 – Tempdb David Baffaleuf– CAPDATA MVP SQL Server.

Présentations similaires


Présentation au sujet: "Les Webcasts Groupe des Utilisateurs SQL Server Juin 2013 – Tempdb David Baffaleuf– CAPDATA MVP SQL Server."— Transcription de la présentation:

1 Les Webcasts Groupe des Utilisateurs SQL Server Juin 2013 – Tempdb David Baffaleuf– CAPDATA MVP SQL Server

2 David Baffaleuf Leader SGBD reconnu en France Conseil Service Formation DBA à distance Management dinfrastructures IT hétérogènes Support Management Technical Management Data Management Production Management

3 Toutes les questions que vous vous posez sur tempdb … Et aussi celles que vous ne vous posez pas ! Démos ! 30 chrono

4 Quest-ce quelle a de plus que les autres ??? Stockage explicite Stockage implicite Worktables, jointures hash, tris, version store … #temp, ##temp, variables table, TVF, TVP… Logging Recovery Allocation Caching Non persistance Partagée SPOF

5 Comment est-elle créée ? Ouverture master Recovery master Ouverture model Recovery model Création tempdev.mdf (4-5M) Import des extents de model Extension taille tempdev.mdf Création tempdb Création templog.ldf Création des autres fichiers Instant File Initialization Pas de model, pas de tempdb Si le fichier tempdev / templog nexiste pas ? sqlservr –f (minimal start) Création tempdev.mdf (4-5M) …dans le répertoire par défaut Création journal bytes

6 Stockage explicite : Tables, indexes physiques, LOBs… (attention non persistées !!) Tables temporaires (créées par utilisateur / par feature Dbmail, UCP, DataCollector…) Variables tables, TVF, TVP. Mais aussi stockage implicite: Tris ORDER BY Checkdb facts Workfiles (Hash Join) Worktables (spools, features…) Tables internes trigger Online index operations Version store… Quest-ce quelle stocke ?

7 Nommage: #temp__________________________________________14563 ##temp Allocation: – Extents mixtes dabord (sauf si –T1118) – IAM toujours en extent mixte – Extents uniformes si taille > 8 pages Scope/durée de vie: session / procédure (#) instance (##). Tables temporaires 1/2

8 PLAN PS SELECT INTO #temp … Mécanismes de cache particuliers: Cachestore: CACHESTORE_MEMOBJECTS Tables systèmes. Seulement dans procédures, fonctions, triggers. 2 pages par #temp < 8Mb (DATA + IAM) Pas de DDL après la création de la table #temp (sauf DROP TABLE) Pas de contraintes nommées (index uniques / clustered supportés mais leaf pages seulement, et 2 pages pour NCI) Tables temporaires 2/2[ Caching ] #temp DEMO TF1106 Nouveau RB: RING_BUFFER_SPACEMGR_TRACE

9 Pas stockées en mémoire mais bien sur disque !! SELECT INTO non autorisé Scope = batch ou procédure (pas session) Mise en cache / suppression différée = temp tables. Pas dindex Pas de statistiques Pas de rollback (transactions implicites sur les VT) TVF = variable table TVP = variable table Tables temporaires vs variables tables ?

10 Utilisées par certaines features (XML, Service Broker, CHECKDB,…) Utilisées par certains opérateurs : Index / Table (Eager) Spools. Exchange Spill. Merge Joins Curseurs, variables type (max). Créées par le code de lengine, donc pas de métadonnées dessus, pas daccès aux tables systèmes. Object_id < 0 Mixed / Uniform extents Seule lallocation est loggée !! Espace tracé dans les DMVs (internal_object_reserved_page_count) Worktables sys.dm_db_%_space_usage

11 Utilisés uniquement par lopérateur Hash Join (recursion). Pas de correspondance dans le buffer pool (BUF). Espace tracé dans les DMVs (internal_object_reserved_page_count)… …mais pas dans sys.dm_os_buffer_descriptors. Toujours en extents uniformes. Aucune journalisation. Workfiles

12 Utilisé pour RCSI / Snapshot Isolation. Online index rebuild, Tables internes des triggers MARS ?... Aucune journalisation de lallocation dans le version store. Allocation tracée séparément de internal dans sys.dm_db_file_space_usage (version_store_reserved_page_count). Non tracée dans %session% ou %task% Trace séparée dans sys.dm_tran_version_store. Désallocation asynchrone (Garbage Collection) Version Store

13 Pas de database snapshot dans tempdb pour CHECKDB !! CHECKDB peut utiliser tempdb pour stocker les facts: Tracer lallocation des objets à contrôler durant le CHECKDB Suivre les liens précédent / suivant dans le chaînage Suivre les pointeurs forwarding / forwarded records Par type dallocation: LOB, B-TREE, FILESTREAM, IAM, … Normalement stockés en mémoire, et dans des worktables si plus assez de place. 1 fact ~= 1 ligne de 5 colonnes dans une worktable. DBCC CHECKDB (bigDB) WITH ESTIMATE_ONLY CHECKDB et Tempdb ?

14 Ne pas laisser la taille par défaut. Initialisation instantanée !! DBCC CHECKDB WITH ESTIMATE_ONLY est un minimum. Monitorer la taille, réévaluer la taille initiale au besoin. Pas dautogrow ! SIZE = MAXSIZE. Pour réduire: v > =2008 : ALTER DATABASE TEMPDB MODIFY FILE … + stop / start V < 2008: net start MSSQLSERVER /f Comment dimensionner Tempdb ? Perfmon Volume Maintenance Tasks

15 Contention sur PFS/GAM/SGAM Création / suppression massive de tables temporaires (proc / session) Création / suppression dobjets internes plus incontrôlable encore. Impliquent des modifications dans ces 3 pages PFS, GAM, SGAM. Impliquent des modifications dans les tables systèmes (sysschobjs, sysallocunits, syscolpars, sysrscols…) Ces pages sont protégées par des latches Chaque accès en lecture / écriture nécessite dobtenir un latch (SH/EX). On constate des attentes globales sur PAGELATCH_SH et PAGELATCH_EX Sur les ressources types : PFS (2:1:1), GAM (2:1:2) et SGAM (2:1:3), et parfois des pages appartenant à des tables systèmes et les pages IAM. Les mécanismes de caching permettent de réduire cette contention Mais ne fonctionnent que pour les tables temporaires dans des procédures, fonctions ou triggers. Problèmes liés à lallocation PFS GAMSGAM

16 Combien de fichiers de données 1/2 OK W WW W W

17 Bonne pratique = 1 fichier de même taille par CPU. Observer la contention avant de multiplier les fichiers. Attentes de type PAGELATCH_SH / PAGELATCH_EX sur : 2:1:1 PFS (=Page Free Space) 2:1:2 GAM (=Global Allocation Map) 2:1:3 SGAM (=Shared GAM) Ajouter des fichiers additionnels au besoin Réévaluer la contention… … jusquà disparition de la contention. …et si le caching est insuffisant: -T1118 pour tables < 8 pages et contention SGAM. Combien de fichiers de données 2/2

18 Proportionnal Fill / Round Robin Espace Libre Espace Libre Espace Libre Espace Libre Proportion réévaluée: Au restart de linstance (lorsque les fichiers sont créés) Lors dun ajout / retrait de fichier Toutes les 8192 allocations dextents (mixtes ou uniformes) Attention –T1117 sapplique à toutes les bases, pas seulement tempdb.

19 Combien de journaux de transactions ? 1

20 Les avantages: Isoler les fluctuations: moins dimpacts sur les autres bases. SSD Les inconvénients: Moins de disques disponibles en tout. Lissage plus difficile Précos SQLCAT 10Tb range. Tempdb sur des disques dédiés ?

21 Images après pour INSERT / UPDATE non loggées pour les heaps (tables tempo). Journal de transactions utilisé uniquement pour les ROLLBACKS. Pas de REDO. Pas de write ahead logging => lazy commits Auto Checkpoint exécuté seulement lorsque le journal est plein à 70% Attention si CHECKPOINT manuel dans tempdb Internal objects (sorts, worktables) => seule lallocation est loggée. Parfois même rien nest loggé !! (workfiles, version store) Logging & recovery ? -- a=1 update #t set a=2 update base.dbo.t set a=2 #t t

22 Perfmon: Temp Tables Creation Rate Workfiles Created/sec Worktables Created/sec Pages Allocated/sec Free Space in tempdb (KB) Version Store Size (KB) SQL Trace / XEvents: Hash Warning / hash_warning Sort Warning / sort_warning Exchange Spill Event / exchange_spill Mesurer la contention DEMO DMVs: tempdb.sys.dm_db_file_space_usage tempdb.sys.dm_db_session_space_usage tempdb.sys.dm_db_task_space_usage sys.dm_os_wait_stats sys.dm_os_waiting_tasks

23 Des questions (pas dans la liste) ?

24 Les Webcasts Groupe des Utilisateurs SQL Server GUSS.fr


Télécharger ppt "Les Webcasts Groupe des Utilisateurs SQL Server Juin 2013 – Tempdb David Baffaleuf– CAPDATA MVP SQL Server."

Présentations similaires


Annonces Google