SQL Server Lock Model

30
SQL Server Lock Model 1

description

SQL Server Lock Model. Lock Model , o que é ?. Como o SQL Server gere toda a problemática dos locks. Lock Model , porquê ?. Os locks , em conjunto com os índices, são as 2 coisas que mais contribuem para escalabilidade do SQL Server, ou para a falta dela. - PowerPoint PPT Presentation

Transcript of SQL Server Lock Model

Regras funcionamento

SQL Server Lock Model1Como o SQL Server gere toda a problemtica dos locks2Lock Model, o que ?Lock Model, porqu ?Os locks, em conjunto com os ndices, so as 2 coisas que mais contribuem para escalabilidade do SQL Server, ou para a falta dela.

Conhecer o lock model uma grande ajuda, nos despiste de problemas estranhos, como por exemplo a aplicao estar lenta e o CPU, IO no ter utilizao significativa ou ainda um determinado job s vezes no terminar.

3Locks4Problemtica dos locks5cargatpsDurao

Phantoms

IntegridadeDirty ReadEscalabilidadeNon repeatable ReadsProblemas estranhosConcurrncia

Propriedades das transacesACIDA)tomicity (tudo ou nada)C)onsistency I)solation (grau de independncia)D)urability 6Uma transao7BEGIN TRYBEGIN TRANSACTION T1INSERT INTO dbo.t1 SELECT p.ProductID FROM Production.Product AS pINSERT INTO dbo.t1 VALUES (1)COMMIT TRANSACTION T1END TRY

BEGIN CATCHROLLBACK TRANSACTION T1PRINT 'An error occurred'RETURNEND CATCHGranularidade dos LocksRow (RID)Key (KEY)Page (PAG)Extent (EXT)Table (TAB)Database (DB)88Background informationP:Qual a dimenso mxima de uma row ?R:8060 bytes

P:Qual a dimenso de uma pgina ?R:8Kb

P:Qual a dimenso de um extent ?R:8 Pginas, 64 Kb9Row : at 8Kb (8060 Bytes)Extent (8 pages) 8 x 8Kb =64KbMixed exents (8 objectos)Page : 8Kb (8192 Bytes)10Tipos de LockShared (S)Update (U)Exclusive (X)Intent Shared (IS)Intent Exclusive (IX)Shema Modification (Sch-M)Shema Stability (Sch-S)RangeS-SEtc..

11

Gesto da concorrncia:a) Nveis de IsolamentoRead UncomitedRead CommittedRead Commited SnapshotRepeatable ReadSerialzableSnapshot

12b) Lock Hints

Sistema Solar do SQL13Comportamentos Permitidos14Transaction LevelComportamentoOutros LocksX LockRead Uncommited

Dirty ReadsNon repeatable ReadsPhantoms--Read Commited (Locking)

Non repeatable ReadsPhantomsSProcess.

FimRead Commited (Snapshot)Non repeatable ReadsPhantoms--Repeatable ReadPhantomsC:KEY LockNC:S,IS : index e table pag.FimFimSerializableNoneRangeS-S fimFimSnapshotNone--Lock Hints15

Qual estratgia esclher ?16Isolation LevelLock HintsHibridoControloStandardMais finoMais finoPrevisibilidadePrevisvelImprevisvelImprevisvelEscalationSimNoNoP: Como definir o isolation level ?R: DBCC USEROPTIONS17R: SET TRANSACTION ISOLATION LEVELP: Como saber qual o isolation level ?SET TRANSACTION ISOLATION LEVEL SET TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SNAPSHOT | SERIALIZABLE }Nota : Se READ_COMMITTED_SNAPSHOT est ON, O SQL Server usa row versioning (tempdb).

18

Modo de compatibilidade19LockCompatvel ?SimNoGrantWait SET LOCK_TIMEOUT timeout_period@@LOCK_TIMEOUT

S > S > GrantX > S > WaitModo de compatibilidade (full)20

Quais os locks na alterao e porquP: S X ou S U X ?R: S U X2101234SUX--SUXDeadlock

22Tipos de Locks especiaisIntent LockLatches

23Ferramentassp_lockSQL Server Management StudioProfilerPerformance counter

24sp_lock25

S,X,U,etcRecomendaesManter transaces pequenas evitando operaes caras.Optimizar queries usando ndices.Evitar perder controlo no mbito da transaco.Monitorizar long running processes.Investir no tratamento de erros ou usar SET XACT_ABORT ON para evitar uma transaco ficar aberta no surgimento de uma condio de erro.Usar o nvel de isolamento o mais baixo possvel,

26Problemtica dos locks27cargatpsDuraoLock timoutControlo errosSET XACT_ABORT ON

Phantoms Serializable

IntegridadeDirty ReadRead commitedRepetable readsSerializableEscalabilidade Baixar isolation levelNon repeatable ReadsRepeatable readProblemas estranhossp_lockConcurrnciaBaixar isolation level

BibliografiaHand on SQL 2000 Troubleshooting locking and blocking (net impress)Inside Microsoft SQL Server 2005. The Storage Engine (microsoft)Microsoft SQL Server 2008 Internals (microsoft)SQL Server 2008 Query Performance Tuning Distilled (apress)

28Q & A29fim.30