PowerPoint Presentation

Documente similare
PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

Mai multe despre optimizare

Baze de date-Anul 2 (semestrul 2)

Microsoft Word - Curs_07.doc

Managementul Resurselor Umane

PHP (II)

Laborator02

PowerPoint Presentation

UNIVERSITATEA POLITEHNICA DIN BUCUREȘTI FACULTATEA DE ELECTRONICĂ, TELECOMUNICAȚII ȘI TEHNOLOGIA INFORMAȚIEI TEMĂ DE CASĂ Gestiunea tranzacțiilor în s

proiectarea bazelor de date

RZOLVARE EXERCITIU ZODII declare cursor distributie_zodie is select nume_zodie, count(*) distributie from zodiac z join utilizatori u on to_date(to_ch

Microsoft Word - Curs 11 - PHP.doc

Aggregating Data

Proceduri stocate Syntax: CREATE PROCEDURE <Name> type1,...] AS -- secventa de comenzi SQL GO O procedura stocata se ruleaza cu EXEC: EXEC <N

Laborator 8: PROIECTAREA BAZELOR DE DATE SUBPROGRAME in PL/SQL (partea II - functii) Un subprogram este un bloc PL/SQL cu nume (spre deosebire de bloc

PowerPoint Presentation

Baze de date - Anul 2 Laborator 8 Limbajul de definire a datelor (LDD) (partea I) În general, instrucţiunile LDD sunt utilizate pentru definirea struc

Cartelele telefonice

Paradigme de Programare

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

PowerPoint Presentation

Proiectarea Sistemelor Software Complexe

Laborator 7: PROIECTAREA BAZELOR DE DATE SUBPROGRAME in PL/SQL (partea I - proceduri) Un subprogram este un bloc PL/SQL cu nume (spre deosebire de blo

Laborator5_SQL_an2

PowerPoint Presentation

Baze de date - Anul 2 Laborator 9 Limbajul de definire a datelor (LDD) - II : Definirea vizualizărilor, secvenţelor, indecşilor, sinonimelor, tabelelo

Baze de date

Platformăde e-learning și curriculăe-content pentru învățământul superior tehnic Sisteme de operare 13. Planificarea proceselor

Gestionarea I/E

aplicatii java

Analiză statică Analiza fluxului de date 23 octombrie 2014

Lucrarea 10

Microsoft Word - lab-fr_3

Prezentarea calculatorului

Dot Matrix Display Module and

Kein Folientitel

Database Management Systems Cap 2. Structured Query Language (1)

Microsoft PowerPoint - SD5-RO.ppt

Matrici și vectori în VBA În VBA, o matrice este un grup de variabile de același tip. De ce ar trebui să utilizați o matrice? Presupunem că ați vrut s

Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011

PROIECT DIDACTIC DATE DE IDENTIFICARE Data: Școala : Școala Gimnazială Grigore Moisil Ploiești Clasa: a VI-a Profesor: Ilie Oana Magdalena Disciplina:

Limbaje de Programare Curs 8 – Fisiere

Microsoft Word - Apostol & Balaceanu 6p.doc

RECOMANDĂRI PRIVIND EFECTUL DE CAPTIVITATE (LOCK-IN) ÎN SECTOARELE SENSIBILE ÎN DOMENIUL ACHIZIȚIILOR PUBLICE, IT ȘI ECHIPAMENTE/APARATURĂ MEDICALĂ Fe

Addendum Syllabus 6 Microsoft Access 2016 REF Syllabus 6.0 Cunoașterea domeniilor în care se utilizează bazele de date Datorită potenţialului ma

GHERCĂ MAGDA CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: GHERCĂ G

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

SSC-Introducere-2

Paradigme de programare

A.E.F. - suport laborator nr.8 sem.ii Analiza structurală la flambaj În acest laborator sunt atinse următoarele aspecte: modalitatea de analiză la fla

BC-2000 Control Acces

Top

SRS-BTS50_QSG_ro

PowerPoint Presentation

Testare manuala: situatia in care o persoana initiaza fiecare test, interactioneaza cu el si interpreteaza, analizeaza si raporteaza rezultatele. Test

Comparație versiuni AOMEI Backupper 1 Care versiune este cea mai potrivită pentru dvs.? AOMEI Backupper este disponibil în prezent în patru ediții dif

Microsoft Word - Curs_09.doc

Microsoft Word - CarteC.doc

Laborator 10 - Paradigme de Programare Corutine - suport nativ pentru paralelism în Kotlin Înainte de a trece la realizarea unei aplicații utilizând c

tehnologii web

Ghid privind raportările referitoare la decontarea internalizată conform articolului 9 din regulamentul privind depozitarii centrali de titluri de val

EXCEL FĂRĂ SECRETE Grafice şi diagrame

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Alexandru Ioan Cuza din Iaşi 1.2 Facultatea Facultatea de

Avenir Telecom isi consolideaza activitatea in Romania cu ajutorul Microsoft Dynamics NAV Despre organizatie Avenir Telecom are peste 3000 de angajati

ADRIAN TRIF BAZE DE DATE APLICAŢII ACCESS UTPRESS Cluj-Napoca, 2019 ISBN

NORMĂ pentru aplicarea Ghidului ESMA privind raportările referitoare la decontarea internalizată conform articolului 9 din regulamentul privind depozi

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O

Concepte de bază ale Tehnologiei Informației

Prezentarea calculatorului

PPSD

PowerPoint Presentation

Matematici aplicate științelor biologie Lab05 MV

Microsoft Word - O problema cu bits.doc

manual_ARACIS_evaluare_experti_v5

Packet Tracer - Configurarea ACL-urilor extinse - Scenariul 1 Topologie Tabela de Adresare R1 Echipament Interfață Adresă IP Masca de subreţea Default

Ch

Modulul 1 M1-2.3 Protocoale şi servicii în reţea În acest capitol ne propunem să abordăm următoarele: Protocoalele şi aplicaţiile folosite în reţelele

Slide 1

Microsoft Word - 2 ES RO.doc

Schliesszylinder_RO_SK_HR.indd

Limbaje de Programare Curs 6 – Functii de intrare-iesire

Atributii:

manual_ARACIS_evaluare_experti_v4

Windows 7

Laborator - Configurarea Rutelor IPv4 Statice și Implicite Topologie Tabela de Adresare Echipame nt Interfață Adresă IP Masca de subreţea Default Gate

TERMENI DE REFERINȚĂ Servicii de consultanță pentru mentenanța Sistemului de Management al Informațiilor existent (SMI) pentru Asistență Socială siste

Analiză de flux de date 29 octombrie 2012

Termeni de utilizare specifici produselor

PowerPoint Presentation

COLEGIUL TEHNIC „VICTOR UNGUREANU” CAMPIA TURZII

PowerPoint Presentation

Microsoft Word - S_c63.doc

PowerPoint-Präsentation

CURS

Raport privind calitatea executiei pentru anul 2018 (MiFID II)

Transcriere:

Seminar 3 Tranzacții Controlul concurenței în MS SQL Server

Tranzacții în SQL Server SQL Server utilizează tranzacții pentru compunerea mai multor operații într-o singură unitate de lucru Acțiunile fiecărui utilizator sunt procesate utilizând o tranzacție diferită Pentru a maximiza throughput-ul, tranzacțiile ar trebui să se execute în paralel Proprietățile ACID ale tranzacțiilor: obiectiv - serializabilitate 2

Tranzacții în SQL Server Mecanisme pentru invocarea tranzacțiilor: fiecare comandă este o tranzacție dacă nu se specifică altceva BEGIN TRAN, ROLLBACK TRAN, COMMIT TRAN - cel mai des utilizate BEGIN TRAN marchează punctul de început al unei tranzacții explicite ROLLBACK TRAN întoarce o tranzacție implicită sau explicită până la începutul tranzacției sau până la un savepoint din interiorul tranzacției COMMIT TRAN marchează finalul unei tranzacții implicite sau explicite efectuate cu succes 3

Tranzacții în SQL Server SET IMPLICIT_TRANSACTIONS ON Se marchează doar finalul tranzacției (tranzacții înlănțuite) În acest caz, o nouă tranzacție este începută în mod implicit atunci când tranzacția anterioară este finalizată (fiecare tranzacție este finalizată explicit cu COMMIT sau ROLLBACK) SET XACT_ABORT ON orice erori SQL vor duce la roll back-ul tranzacției 4

Tranzacții în SQL Server @@TRANCOUNT returnează numărul de instrucțiuni BEGIN TRANSACTION care au avut loc pe conexiunea curentă Instrucțiunile BEGIN TRANSACTION incrementează @@TRANCOUNT cu 1 Instrucțiunile COMMIT TRANSACTION decrementează @@TRANCOUNT CU 1 ROLLBACK TRANSACTION setează @@TRANCOUNT pe 0, excepție ROLLBACK TRANSACTION savepoint_name, care nu afectează @@TRANCOUNT 5

Tipuri de tranzacții SQL Server poate utiliza tranzacții locale sau distribuite Imbricarea tranzacțiilor (dar nu tranzacții imbricate) este permisă Savepoints cu nume - rollback-ul unei porțiuni dintr-o tranzacție 6

Probleme de concurență Izolarea tranzacțiilor în SQL Server rezolvă patru probleme majore de concurență: Lost updates - când doi scriitori modifică aceleași date Dirty read - când un cititor citește date necomise Unrepeatable read - când o înregistrare existentă se schimbă în cadrul unei tranzacții Phantoms - când sunt adăugate noi înregistrări și apar în cadrul unei tranzacții 7

Probleme de concurență SQL Server asigură izolarea prin blocări Blocările pentru scriere sunt blocări exclusive, blocările pentru citire permit existența altor cititori O tranzacție well-formed obține tipul corect de blocare înainte de a utiliza date O tranzacție two-phased menține toate blocările până când s-au obținut toate acestea Nivelurile de izolare determină durata blocărilor, cât timp sunt menținute acestea 8

Blocarea în SQL Server Blocările sunt gestionate de obicei dinamic de Lock Manager, nu prin intermediul aplicațiilor Granularitatea blocărilor: Row/Key, Page, Table, Extent (grup contiguu de 8 pagini), Database Blocările pot fi atribuite la mai mult de un nivel ierarhie de blocări înrudite Lock escalation > 5000 blocări pe obiect (pro&contra) Durata blocărilor (specificată prin niveluri de izolare): până la finalizarea operației până la finalul tranzacției 9

Blocarea în SQL Server Tipuri de blocări Shared (S) pentru citirea datelor Update (U) blocare S - se anticipează X S U X S Da Da Nu U Da Nu Nu X Nu Nu Nu Exclusive (X) pentru modificarea datelor; incompatibile cu alte blocări (excepție hint-ul NOLOCK și nivelul de izolare READ UNCOMITTED) Intent (IX, IS, SIX) intenție de blocare (îmbunătățirea performanței) Schema (Sch-M, Sch-S) modificare schemă, stabilitate schemă (Sch-M și Sch-S nu sunt compatibile) Bulk Update (BU) blochează întregul tabel în timpul bulk insert Key-range blochează mai multe rânduri pe baza unei 10 condiții

Blocări speciale Blocări schema nu blochează LMD, doar LDD Blocări Bulk Update Blocare explicită (TABLOCK) Automat în timpul SELECT INTO Blocări Application Aplicațiile pot utiliza lock manager-ul intern al SQL Server - blocare resurse aplicație 11

Niveluri de izolare în SQL Server READ UNCOMMITTED: fără blocare la citire READ COMMITTED: menține blocările pe durata execuției instrucțiunii (default) (Dirty reads); REPEATABLE READ: menține blocările pe durata tranzacției (Unrepeatable reads); SERIALIZABLE: menține blocările și blocările key range pe durata întregii tranzacții (Phantom reads); SNAPSHOT: lucrează pe un snapshot al datelor sintaxă SQL: SET TRANSACTION ISOLATION LEVEL 12

Grade de izolare Common Denumire Name Chaos Haos Read Uncommitted Read Committed Repeatable Read Serializable Lost Updates? Yes Da Dirty Reads? Yes Da Yes Da Unrepeatable Reads? Yes Da Yes Da Yes Da Phantoms? Yes Da Yes Da Yes Da Yes Da 13

Blocare Key Range blochează seturi de rânduri controlate de un predicat WHERE salary between 35000 and 45000 necesară blocarea datelor care nu există! dacă utilizarea salary between 35000 and 45000 nu returnează niciun rând prima dată, nu ar trebui să returneze niciun rând nici la scanările ulterioare versiunea mai veche - blocare unități mai mari pentru a preveni phantoms înainte de SQL Server 7.0, doar paginile și tabelele erau blocate 14

Blocări Transaction Workspace Indică o conexiune Fiecare conexiune la o bază de date obține blocare Shared_Transaction_Workspace Excepții - conexiunile la master și tempdb Utilizate pentru prevenirea: DROP RESTORE 15

Deadlocks MS SQL Server recunoaște un deadlock Implicit, tranzacția mai nouă este terminată Error 1205 ar trebui detectată și gestionată corespunzător SET LOCK TIMEOUT: se menționează cât timp (în milisecunde) o tranzacție așteaptă ca un obiect blocat să fie eliberat (0 = terminare imediată) SET DEADLOCK PRIORITY Valori: Low, Medium, High, numeric între -10 și 10 16

Reducerea situațiilor de deadlock Tranzacții scurte & într-un singur batch Colectarea și verificarea datelor input de la utilizatori înainte de deschiderea unei tranzacții Accesarea resurselor în aceeași ordine în tranzacții Utilizarea unui nivel de izolare mai scăzut sau a unui nivel de izolare row versioning Accesarea celei mai mici cantități posibile de date în tranzacții 17