Hans Olav Norheim

Slides:



Advertisements
Liknende presentasjoner
Nedlasting av Adobe Reader Adobe Reader brukes bl.a. for å åpne vedlegg i en E-post. Åpne Internett og skriv, adobe.no i adressefeltet, klikk Enter. Rull.
Advertisements

GoOnline XP publisering Hvordan komme i gang med GoOnline XP. Denne presentasjonen tar deg steg for steg gjennom oppsett av nettsted med bruk av GoOnline.
Design av sikre web-applikasjoner
Høgskolen i Oslo Webprogrammering Tilstandsbevaring Sessions og cookies.
Nedlasting av Adobe Flash Player Adobe Flash Player brukes for å se video på Internett, YouTube, nett-TV osv. Åpne Internett og skriv, adobe.no i adressefeltet,
SQLHiA DAT 2800 Databaser I Flerbrukerproblematikk.
INF3100 – Databasesystemer Systemfeil og logging Basert på lysark laget av Hector Garcia-Molina Oversatt og bearbeidet av Ragnar Normann.
SQL Server: Skalerbarhet
Nøkkelen til sikker og effektiv IT-forvaltning
Progress ”Transparent Data Encryption”
Innføring i 4.0 Av Morten Pedersen HiT.
Nedlasting av Java Java bruker du til bl.a. å logge deg inn i nettbanken. Åpne Internett og skriv, java.com i adressefeltet, klikk Enter. Klikk på Free.
Høgskolen i Oslo Webprogrammering SQL og databaser del 3.
Java database persistence framework.  SELECT by FROM postnr AS p WHERE ( SELECT DISTINCT postnr FROM addr AS a WHERE user.adrId = a.Id ) = p.postnr;
LC238D Datamodellering og databaser Introduksjon til fagfeltet Else Lervik, august 2012Forelesning 1, uke 34 Datafilerside.
Kapittel 6 Data Backup Service. Tradisjonell arkitektur •Mange klienter •En server (evt. et cluster) •Klientene tar backup m jevne mellomrom •Inkrementell.
Avansert SQL og problemløsning
Tips og triks MSP og Projectserver 1) Vise prosjektsammendrag
Essbase for nybegynnere
Operativsystemer.  En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen.  Ofte vil det være flere prosesser/tråder på datamaskinen.
Databaser Verktøybok om Access med innslag av Frontpage: Snarveien til Access.
Datamodellering og databaser Else Lervik, oktober 2011 Forelesning 9, uke 41 SQL, del 2 Eksempelbaseside 2 Virtuelle.
LC238D Datamodellering og databaser Else Lervik, november 2012 Forelesning 12, uke 45 Transaksjoner og flerbrukerproblematikk.
Tips og triks Strukturering av større applikasjoner Automatiserte tester. Kristian Johannessen
Databasehåndtering med MySQL
Aksess kontroll None shall pass.
1 Øvingsforelesning 7 Kai Olav Ellefsen. 2 I dag… Databaser: Databasedesign og SQL JSP: Koble databasen til nettsiden Kai Olav Ellefsen, NTNU, 2010.
SQL The questing beast Sir Thomas Mallory. Codds krav 5.Krav om omfattende språk for datahåndtering Det må finnes et relasjonelt språk som støtter datadefinisjon,
In113 filsystem, admin. filsystem legges ut på partisjon eller volum består av –kontrollblokk (overordnet, statistikk) –datadel (kataloger og filer/innhold)
Data Integrity Integrity without knowledge is weak and useless, and knowledge without integrity is dangerous Samuel Johnson, 1759.
Datamodellering og databaser Else Lervik, oktober 2012 Forelesning 11, uke 44 Å programmere databasetjeneren – JavaDB.
Datamodellering og databaser Else Lervik, oktober 2011 Forelesning 9, uke 41 SQL, del 2 Eksempelbaseside 2 Virtuelle.
Datalagrings- og databehandlingsarkitekturer
Sqlite Et lite eksempel på en SQL- database. SQL kan startes på ulike måter Kommandolinjeversjon or Windows –Programmet må innstalleres Hentes fra
SQLHiA DAT 2800 Databaser I Prosedyrer / Triggere.
Apache POI.
Web-applikasjoner Prosjekt3 Logging Gruppe 9 Malik Muhammad Naeem Kevan Qureshi.
Løsning hos RSH Norge En gjennomgang av løsning hos Reitan Servicehandel Norge Edvard Gundersen – ProfitBase AS Løsningsarkitekt.
Rune Log Senior Konsulent, Ergogroup
Administrasjon av SQL Server 2008 Av: Ole Kristian Bangås Fagansvarlig SQL Server.
Entity Framework Andreas Knudsen, Bekk Consulting AS 31/
SQLHiA Transaksjoner. SQLHiA TransaksjonDefinisjon En transaksjon er en serie av en eller flere SQL-statement som til sammen danner en logisk enhet. Med.
Høgskolen i Oslo Webprogrammering Filbehandling i PHP.
Structured Query Language Kræsj-kurs
Høgskolen i Oslo Webprogrammering Ajax og PHP. I dag l Hvordan få en bedre brukeropplevelse via Ajax- script l Gjennomgang av kode l Oppgaveløsning på.
Instead-of-trigger Faglig forum. Instead-of-trigger Problem: En har et VIEW som består av mange JOINs. Komplekst å oppdatere alle tabellene som inngår.
Eksempel på SQL ”SQL-setninger” har en struktur som likner på ”naturlig språk”, med ”verb, subjekter og adjektiver”. SQL-setningene begynner alltid med.
Databasen III Nodekoblinger og tags. Mer om proptype Spesifikasjonen for egenskaper. Verdikolonner: value, number, url, datetime, lang, ref. Kan egenskaper.
Linq To SQL Fagdag 20. November DataContext  DataContexten er mappingen mot databasen –Generer objekter for alle entiteter (tabeller), med properties.
Å lese tall fra en fil, klassen Scanner 1.Et Scanner-objekt kan knyttes til et strømobjekt eller til en streng. 2.Kan skanne teksten etter data av ulike.
Introduksjon til bruk av oversetterverktøy
Praktiske erfaringer med Objektorientert Progress og.NET Jan Kolstad PUG Norway, Lillehammer 2005.
Kontinuerlig kvalitetskontroll. Hvordan komme helt i mål.
State Of The Union – Backend & Desktop –
Parallellisering av Coin3D for Systems in Motion av Sveinung Thunes.
Redusere kompleksitet i Entity Framework spørringer Skrevet av Tore Aurstad,
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
RBA ved System Center Configuration Manager 2012 Ernesto Gonzalez USIT - Gruppe for Windowsdrift.
Hurtigreferanse for Lync 2013 for Office 365 © 2012 Microsoft Corporation. Med enerett. Med Lync kan du begynne å samarbeide uten å måtte planlegge et.
Trondheim Lytte- og Læresenter. Sammendrag Prosjektet ble iverksatt fordi Trondheim Lytte- og Læresenter så behovet i å ha et elektronisk kundearkiv i.
HPR 56 - Cross Platform Gaming Server Av Bjørn Haugen, og Hans Kristian Hovland.
Upload av bildefiler Utdrag fra ImageIn Ved Kirsten Klæbo Tirsdag 25/11-03.
2003 Ontopia AS1 Tanker om standarder for e-læring Emnekart og published subjects Lars Marius Garshol, utviklingsleder Ontopia,
© UNIVERSITETETS SENTER FOR INFORMASJONSTEKNOLOGI UNIVERSITETET I OSLO USIT Side 1 Patching En patch er en fiks for en eller flere feil i et program/operativ.
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
Expression web. Front Page vs Expression web ● Front Page er ute ● Undervisning i Front Page er undervisning i gammeldags teknologi i forhold til standarder.
Ә.Тәжібаев “Сырдария ” өлеңі ашық сабақ 7-сынып
Екпетал мектеп – балабақшасы Ана тілі 2 класс Өткізген: Г
Database.
IN3030 – Effektiv parallellprogrammering Uke 1 2. del, våren 2019
Utskrift av presentasjonen:

Hans Olav Norheim

Agenda  Transaksjoner  ACID, transaksjonslogging  Samtidighet og effekter av samtidighet  Isolasjonsnivåer  Deadlocks

Databaser  Litt mer enn bare tabeller med data…  Datauavhengighet  Spørringer og optimalisering  Samtidighetskontroll

Hvorfor transaksjoner?  Vi flytter penger fra en konto til en annen via nettbank  Hva om …  Transaksjon: En separat enhet arbeid som enten er vellykket og lagres eller rulles tilbake.

Transaksjoner i SQL  Autocommit  Ekplisitte  BEGIN TRAN … COMMIT/ ROLLBACK TRAN på en connection til DB .NET:  conn.BeginTransaction();  using (TransactionScope ts = new Tr…()) {}  Kan også inneholde DDL  CREATE/DROP TABLE/VIEW/PROC…

ACID  Atomicity  trans.logging  Alt eller ingenting  Consistency  Oppfyller krav/constraints  Isolation  låsing  Som om de var kjørt en om gangen  Durability  trans.logging  ”Commit OK” til klient er bindene for SQL Server

Transaksjonslogging  Alle SQL Server databaser har en.ldf-fil (loggen)  Logger alle endringer som gjøres mot databasen til disk  Nødvendig for å oppfylle ACID  Bonus: Gir også mulighet for point-in-time recovery dersom recovery model er satt til Full

Atomicity  Krasj/strømmbrudd midt i transaksjonen  Hvis ikke committet, MÅ rulles tilbake  ”Undo” under recovery ved oppstart ”Alt eller ingenting”

Durability  Transaksjonen må ikke mistes selv om krasj/strømbrudd etter commit  Loggen, inkludert commit-recorden flushes til disk  ”Redo” under recovery ved oppstart ”Endringer lagret når klient fått OK”

Isolasjon  Full isolasjon: Som om transaksjonene kjørte etter hverandre i serie  Serializable  I praksis senker vi isolasjonen for å få bedre ytelse…  Lese/Lese    Lese/Skrive  

Samtidighetsmodeller  Pessimistisk samtidighet  Antar at transaksjoner kommer i konflikt og forhindrer det  Tar låser under lesing – unngår konflikter  Transaksjoner må vente på hverandre

Samtidighetsmodeller  Optimistisk samtidighet  Antar at vi ikke kommer i konflikt med andres skriving  Ingen låser når vi leser, får en gammel versjon  Ingen venting  Skrivekonflikt  rulles tilbake

Lost Update Tran1 Tran2 Tid X=10X=20 X=25 Les X (10) X=X+15 (25) Skriv X Les X (10) X=X+10 (20) Skriv X To transaksjoner overskriver hverandre Sjeldent særlig bra…

Dirty Read Tran1 Tran2 Tid X=10X=25X=10 Les X (10) X=X+15 (25) Skriv X Les X (25) Rollback Leser ucommittede data (kan forsvinne igjen) Kan bedre ytelse der det ikke er så farlig (eks. rapporter)

Non-Repeatable Read Tran1 Tran2 Tid X=10X=25 Les X (10) X=X+15 (25) Skriv X Les X (25) Les X (10) Gjentatt lesing ulik i samme transaksjon

Phantoms Tran1 Tran2 Tid INSERT (ID, Navn) (4, Nissen) SELECT COUNT(*) WHERE Name = ’Nissen’ (1) Data ”dukker opp” 3, Nissen 4, Nissen SELECT COUNT(*) WHERE Name = ’Nissen’ (2) Demo

Isolasjonsnivåer  Egenskap for en transaksjon  SET TRANSACTION ISOLATION LEVEL …  conn.BeginTransaction(IsolationLevel.Serializable);  Definerer hvilke effekter du tillater  Hvor isolert trans. skal være fra andre trans’ endringer

Isolasjonsnivåer  Høy isolasjon – Lav samtidighet, ressurskrevende  Lav isolasjon – Høy samtidighet, minimalt overhead

Isolasjonsnivåer (<= Shiloh, SQL2000) IsolasjonsnivåLost UpdatesDirty ReadsNon-RepeatablePhantoms Read UncommitedJa Read Committed (default) JaNeiJa Repeatable ReadNei Ja SerializableNei Forhindrer kun fysisk korrupte data Fullstendig isolasjon Ikke ved enkelt- statement UPDATE Demo

MVCC (>= Yukon, SQL2005)  Multi Version Concurrency Control  Optimistisk samtidighet  God idé: Snapshot Isolation Tar ikke låser, får gammel versjon

Deadlocks  Når to (eller flere) oppgaver/transaksjoner blokkerer hverandre og ingen kommer videre  En velges som deadlock victim Tran A Tran B Tran C

Demo Tran 1 Tran 2 Exclusive (Foo.RID1) •INSERT Foo VALUES (1) Shared(Bar.RID1) •SELECT * FROM Bar Exclusive (Bar.RID1) •INSERT Bar VALUES (1) Shared(Foo.RID1) •SELECT * FROM Foo DEADLOCK!

Hvordan unngå?  Aksesser objekter i samme rekkefølge (!demo)  Så korte transaksjoner som mulig  Ikke brukerinteraksjon i en transaksjon  Færrest mulig roundtrips til SQL Server  Bruk så lavt isolasjonsnivå som mulig  …

Oppsummering  En database er litt mer enn bare datalagring  Tenk over hvilken isolasjon du kjører under  Følg ”best practices” for deadlocks

Ressurser  performance.com/articles/dba/isolation_levels_2005_ p1.aspx performance.com/articles/dba/isolation_levels_2005_ p1.aspx   us/library/ms aspx us/library/ms aspx