sql-deadlock-examples/README.MD

59 lines
1.1 KiB
Plaintext
Raw Normal View History

2023-12-11 23:58:57 +01:00
# Purpose
This repostiory contains examples which might be used to show/explain why and when deadlocks happen in MSSQL.
# How to
2023-12-12 17:50:19 +01:00
1. Create example tables using ddl-script.sql
2. Open two different SQL sessions.
3. In each session open one file.
4. Run SQL commands according to comments.
2023-12-11 23:58:57 +01:00
For example - running Read Commited should look like:
### Session 1
```sql
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
BEGIN TRANSACTION
UPDATE Wycieczki
SET cena = cena*2
WHERE
kraj = 'Bangkok'
-- STEP 1 RUN ABOVE
```
### Session 2
```sql
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
BEGIN TRANSACTION
UPDATE Bilety
SET cena = cena * 2
WHERE
kraj = 'Ateny'
-- STEP 2 - RUN ABOVE
```
### Session 1
```sql
SELECT
*
FROM
Bilety
WHERE
kraj = 'Ateny'
-- STEP 3 RUN BETWEEN 1 AND 3
COMMIT TRANSACTION -- COMMIT AFTER DEADLOCK HAPPENS
```
### Session 2
```sql
SELECT
*
FROM
Wycieczki
WHERE
kraj = 'Bangkok'
-- STEP 4 RUN BETWEEN 2 AND 4
COMMIT TRANSACTION -- COMMIT AFTER DEADLOCK HAPPENS
```