PowerPoint Presentation

Documente similare
PowerPoint Presentation

Mai multe despre optimizare

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

PHP (II)

PowerPoint Presentation

Baze de date-Anul 2 (semestrul 2)

Managementul Resurselor Umane

PowerPoint Presentation

Microsoft Word - Curs_07.doc

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

Laborator02

proiectarea bazelor de date

Microsoft Word - Curs 11 - PHP.doc

PowerPoint Presentation

Aggregating Data

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

Baze de date

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

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

PowerPoint Presentation

PowerPoint Presentation

EXCEL FĂRĂ SECRETE Grafice şi diagrame

Laborator5_SQL_an2

Microsoft Word - Fisa disciplinei BD_I_IE doc

PowerPoint Presentation

Prezentarea calculatorului

PowerPoint Presentation

Metode avansate de gestiune a documentelor și a sistemelor de calcul - LABORATOR 1 -

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

PowerPoint Presentation

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

Prezentarea calculatorului

aplicatii java

Entrepreneurship and Technological Management

Utilizare Internet

Microsoft Word - Apostol & Balaceanu 6p.doc

Matematici aplicate științelor biologie Lab05 MV

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

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

Example Title with Registration Microsoft® and Trademark SQL ServerTM

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

Utilizarea îmbinării corespondenței pentru crearea şi imprimarea scrisorilor şi a altor documente Dacă utilizați îmbinarea corespondenței când doriți

Slide 1

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

Inserarea culorilor in tabele

Gestiunea serviciilor de recuperare a sănătăţii în sanatorii şi preventorii

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

Microsoft Word - 2 ES RO.doc

Microsoft Word - WME-versiunea rtf

PowerPoint Presentation

Platforma 5. 1 Introducere in MSSQL Introducere Pe parcursul ultimilor ani, se poate observa o cuplare a limbajelor de programare majore cu tipuri de

Termeni de utilizare specifici produselor

PowerPoint Presentation

Unitatea: Școala Gimnazială Disciplina: Informatică și TIC Programa școlară aprobată cu OMEN nr.3393 din Profesor: prof. Clasa: a V-a A, B

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

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

PowerPoint Presentation

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

Kein Folientitel

PowerPoint Presentation

PowerPoint Presentation

Paradigme de Programare

Atestat 2007

Corporate 2 Template

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

Addendum Syllabus 6 Microsoft Word 2016 REF Syllabus 6.0 Crearea unui document nou pe baza unor șabloane disponibile local sau online Microsoft

Slide 1

Laborator 1 suport teoretic Mediul de dezvoltare Eclipse GLOSAR - Aplicaţie: program obţinut în urma aplicării operației BUILD asupra unui proiect (ve

FIŞA DISCIPLINEI

Gestiunea serviciilor de recuperare a sănătăţii în sanatorii şi preventorii

Microsoft Word - 6 FD_Informatica SGBD II CIG 2017.doc

Microsoft Word - Politică de cookie-uri OK_v1.docx

1 Lucrarea nr. 8 - Structuri de date de tip liste sortate O listă sortată reprezintă un aranjament al înregistrărilor din cadrul listei în funcţie de

Microsoft Word - Ansamblul software CRONIS

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

ANEXĂ

(Microsoft PowerPoint SIBIUEVIDENTA [Doar \356n citire])

Carrier Pidgeon Protocol

Capitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursu

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 4. Dezvoltarea site-urilor si blog-uri

Laborator 3

INFORMATICĂ ŞI MARKETING

Microsoft Word - BD4_Curs11.doc

RainbowCrack Rodocea Madalina Grupa Martie 2016

Metode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1

Anexa nr. 2 FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior UNIVERSITATEA DE VEST TIMISOARA 1.2 Facultatea FIZICA 1.3 De

Paradigme de programare

Furnicuţa şi-a construit un depozit pentru grăunţe

Style Sample for C&N Word Style Sheet

Style Sample for C&N Word Style Sheet

Microsoft PowerPoint - UBD3-slides.ppt

Microsoft Word - Curs_10.doc

Curs de formare Informatică și TIC pentru clasa a V-a Portofoliu pentru evaluarea finală Tema: ELEMENTE DE INTERFAŢĂ ALE UNUI SISTEM DE OPERARE (DESKT

Raportarea serviciilor de dializă la nivel CNAS

Transcriere:

Seminar 4 Multiversionarea

Monitorizarea blocărilor SQL Server Profiler Interfață grafică pentru SQL Trace pentru monitorizarea unei instanțe Database Engine sau Analysis Services Evenimentele sunt salvate într-un fișier trace care poate fi mai apoi analizat sau folosit pentru a relua o serie de pași specifici în încercarea de a diagnostica o problemă sp_lock - oferă informații despre blocări sys.dm_tran_locks - returnează informații despre resursele lock manager active în prezent 2

Monitorizarea blocărilor SQL Server Profiler sp_lock, sys.dm_tran_locks sys.dm_tran_active_transactions Tipuri de resurse: RID identificator de înregistrare Key interval de chei într-un index (blocări key-range) Pagină pagină de 8 KB din tabele/indecși HoBT Heap or balanced tree Tabel, fișier, bază de date Metadate Aplicație 3

DBCC LOG DBCC LOG returnează informații despre logul de tranzacții DBCC LOG (<databasename>,<output id>) Output id: 0-4 precizează gradul de detaliere 4

Niveluri de izolare în SQL Server READ UNCOMMITTED: fără blocări 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 {READ UNCOMMITTED READ COMMITTED REPEATABLE READ SNAPSHOT SERIALIZABLE} 5

Multiversionarea Într-un SGBD cu multiversionare, fiecare scriere a unui item x produce o nouă copie (sau versiune) a lui x. La fiecare citire a lui x, SGBD selectează pentru citire una dintre versiunile lui x. Întrucât nu există suprascrieri (între operațiile de scriere), iar operațiile de citire pot citi orice versiune, SGBD are mai multă flexibilitate în controlul ordinii citirilor și scrierilor. 6

Versionarea la nivel de rând (RLV) Introdusă în SQL Server 2005 Utilă când este nevoie de date comise, dar nu neapărat de cea mai recentă versiune Read Committed Snapshot Isolation & Full Snapshot Isolation cititorul nu se blochează niciodată. Accesează valoarea comisă anterior. Toate versiunile mai vechi sunt stocate în baza de date tempdb. Pe baza versiunilor vechi se poate construi un snapshot al bazei de date. 7

Read Committed Snapshot Isolation ALTER DATABASE MyDatabase SET READ_COMMITTED_SNAPSHOT ON Operațiile văd înregistrări comise la începerea execuției lor => snapshot al datelor la nivel de comandă citire consistentă la nivel de comandă disponibil la utilizarea nivelului de izolare READ COMMITTED (default) 8

Full Snapshot Isolation ALTER DATABASE MyDatabase SET ALLOW_SNAPSHOT_ISOLATION ON Operațiile văd înregistrări comise la începerea execuției tranzacției => snapshot al datelor la nivel de tranzacție citire consistentă la nivel de tranzacție nivelul de izolare SNAPHOT 9

Versionare la nivel de rând O înregistrare conține TSN (transaction sequence number). Toate versiunile sunt stocate într-o listă înlănțuită. Rând curent (cod = 1, col2 = 10) creat de tranzacția T 3 Versiunea anterioară a rândului (cod = 1, col2 = 20) creat de tranzacția T 2 Versiunea anterioară a rândului (cod = 1, col2 = 15) creat de tranzacția T 1 10

Versionare la nivel de înregistrare Avantaje Crește nivelul de concurență. Sporește performanța triggerelor / creării indecșilor. Dezavantaje Cerințe de gestiune suplimentare pentru monitorizarea utilizării tempdb Performanță mai scăzută a operațiilor de modificare Viteza cititorilor este afectată de costul traversării listelor înlănțuite. Rezolvă conflictul între scriitor și cititori, dar scriitorii simultani tot nu sunt permiși. 11

Triggere & RLV Triggerele au acces la 2 pseudo-tabele: tabelul deleted conține rânduri șterse sau versiuni vechi ale rândurilor modificate; tabelul inserted conține rânduri inserate sau versiuni noi ale rândurilor modificate. Înainte de SQL Server 2005: tabelul deleted creat pe baza logului de tranzacții afectează performanța Utilizând RLV: Pentru tabele cu triggere relevante schimbările sunt versionate. 12

Crearea indecșilor & RLV În versiunile anterioare de SQL Server crearea sau reconstrucția indecșilor însemna: tabel blocat exclusiv, date complet inaccesibile (index clustered); tabel disponibil doar pentru citire; indexul nu este disponibil (index non-clustered). Cu versionare la nivel de rând: Indecșii sunt creați și reconstruiți online. Toate cererile sunt procesate pe date versionate. 13

Niveluri de izolare și anomalii de concurență Nivel de izolare Read Uncommitted Read committed Locking Read committed Snapshot Repeatable read Row-Level Versioning Dirty Read Non-repeat. Read Phantom Read Update Conflict Model conc. Da Da Da Nu Pesimist Nu Da Da Nu Pesimist Nu Da Da Nu Optimist Nu Nu Da Nu Pesimist Nu Nu Nu Da Optimist Serializable Nu Nu Nu Nu Pesimist 14

PIVOT / UNPIVOT Schimbă o expresie table-valued într-un alt tabel. PIVOT rotește o expresie table-valued transformând valorile unice dintr-o coloană din expresie în mai multe coloane în output și calculează valori agregate acolo unde este necesar, pe valorile oricăror coloane rămase care sunt dorite în rezultatul final. UNPIVOT realizează operația opusă, rotind coloanele dintr-o expresie table-valued în valori de coloană. 15

PIVOT SELECT <coloana nepivotata>, [prima coloana pivotata] AS <nume coloana>, [a doua coloana pivotata] AS <nume coloana>,... [ultima coloana pivotata] AS <nume coloana> FROM (<interogare SELECT care produce datele>) AS <interogare sursa> PIVOT ( <functie agregare>(<coloana agregata>) FOR [<coloana care contine valorile care devin capete de coloane>] IN ( [prima coloana pivotata], [a doua coloana pivotata],... [ultima coloana pivotata]) ) AS <alias pentru tabelul pivot> 16 <clauza optionala ORDER BY>;

Clauza OUTPUT Oferă acces la înregistrările inserate, modificate sau șterse. Poate implementa anumite funcționalități care se pot realiza doar prin triggere. UPDATE Cursuri SET numec = 'Sisteme de gestiune a bazelor de date' OUTPUT inserted.codc, deleted.numec, inserted.numec, GETDATE(), SUSER_SNAME() INTO ModificariCursuri WHERE codc = 3 17

Instrucțiunea MERGE MERGE oferă posibilitatea de a compara rânduri dintr-un tabel sursă și un tabel destinație; pe baza rezultatului acestei comparații se pot executa comenzi INSERT, UPDATE sau DELETE. 18

Sintaxa generală MERGE MERGE Definitie_Tabel AS Destinatie USING (Tabel_sursa) AS Sursa ON (Termeni de cautare) WHEN MATCHED THEN UPDATE SET sau DELETE WHEN NOT MATCHED [BY TARGET] THEN INSERT WHEN NOT MATCHED BY SOURCE THEN UPDATE SET sau DELETE 19

Exemplu MERGE Tabelul Carti 20

Exemplu MERGE MERGE Carti USING (SELECT MAX(CodCarte) CodCarte, Titlu, MAX(Autor) Autor, MAX(ISBN) ISBN, MAX(Pagini) Pagini FROM Carti GROUP BY Titlu ) MergeData ON Carti.CodCarte = MergeData.CodCarte WHEN MATCHED THEN UPDATE SET Carti.Titlu = MergeData.Titlu, Carti.Autor = MergeData.Autor, Carti.ISBN = MergeData.ISBN, Carti.Pagini = MergeData.Pagini WHEN NOT MATCHED BY SOURCE THEN DELETE; 21

Exemplu MERGE 22