How do you simulate a deadlock for testing purposes



How do you simulate a deadlock for testing purposes..

Answer / jay

Below is a quick recipe for a dead lock. Two transactions,
one first updating table 1, then 2 and the other one doing
it in reverse order.

Both transactions wait in the middle for 20 seconds to give
you some time to execute them 'simulaneously'.

When you run the two in transactions in two windows 'at the
same time', you'll only have to wait ~20 seconds, and one of
the windows will experience a dead lock.




CREATE TABLE t1 (i int);
CREATE TABLE t2 (i int);

INSERT t1 SELECT 1;
INSERT t2 SELECT 9;


/* in one window enter: */
BEGIN TRAN
UPDATE t1 SET i = 11 WHERE i = 1
WAITFOR DELAY '00:00:20'
UPDATE t2 SET i = 99 WHERE i = 9
COMMIT

/* in a second window (another transaction) enter: */
BEGIN TRAN
UPDATE t2 SET i = 99 WHERE i = 9
WAITFOR DELAY '00:00:20'
UPDATE t1 SET i = 11 WHERE i = 1
COMMIT

Is This Answer Correct ?    8 Yes 1 No

Post New Answer

More SQL Server Interview Questions

What is inner join? Explain with an example?

0 Answers  


What is the optimization being performed in oracle and SQL Server?

0 Answers   Cap Gemini,


Can we delete data from a view?

0 Answers  


Plz tell about backup&recovery?

3 Answers  


which database is best to use in oracle and sql server? explain reasons?

5 Answers   TCS,






what is the disadvantage of SQL Loder?

1 Answers   TCS,


What is de-normalization in sql database administration? Give examples?

0 Answers  


Explain the concept of recursive stored procedure.

0 Answers  


What is merge join?

0 Answers  


How reterive duplicate value in SQL?

6 Answers  


What is the difference between implicit and explicit transaction?

0 Answers  


Explain about analysis services?

0 Answers  


Categories