@intCounter @intCountProperties
begin
--take the first record
Select @spid =spid@bl =BL from#tmp_lock_whowhereId= @intCounter
begin
if @spid =0
Select 'causing the database deadlock is:'+ CAST(@bl as VARCHAR(Ten))+ 'process number, which executes the following SQL syntax'
Else
Select 'process number spid:'+ CAST(@spid as VARCHAR(T
/* -- Handle deadlocks
View the current process or deadlock process and automatically kill the dead Process
Because it is intended for dead, if there is a deadlock process, you can only view the deadlock ProcessOf course, you can use Parameter Control to check only the deadlock process, whether there is a
Label:Write a stored procedure a few days ago, the stored procedure used a transaction, and then I put some code comments out to debug the wrong, suddenly found a table is locked, the original is the code to create a transaction forget to comment out. This table locks the workaround. In fact, not only the situation described above will lock the table, there are many kinds of scenes will make the table life and Death lock, unlocking is actually very simple, the following with an example to explai
Tags: DDR amp ESC sel EPO system datetime Order AddressViewing with extended events for dynamic viewsSELECT
xed.value (' @timestamp ', ' datetime ') as Creation_date,
xed.query ('. ') As Extend_event
from
(
SELECT CAST ([Target_data] as XML) as Target_data
from sys.dm_xe_session_ Targets as XT
sys.dm_xe_sessions as xs on
xs.address = xt.event_session_address
WHERE Xs.name = N ' system_health ' and
xt.target_name = n ' ring_buffer '
) as Xml
Tags: info troubleshooting alt Software Profiler COM sharing summary selectionRemember the previous customer in the use of software, there are occasional deadlock problems, because the time is uncertain, not good to reproduce the problem, at that time to solve the problem is a bit tricky.Here is a summary of the two common ways to look at deadlocks:The first is the graphical monitoring of:SQL Server Profile
1. First we need to determine which user is locked in which table.
--Query Locked table
Select request_session_id spid,object_name (resource_associated_entity_id) tablename
A table that contains the SPID and tablename columns is returned after the query.
Where the SPID is the process name and TableName is the table name.
2. Knowing which process has locked the table, you need to find the host that locked the table through the process.
--Query host name
exec sp_who2 ' xxx '
xxx
server|sqlserver| Solution
In fact, the deepest cause of all deadlocks is one: resource competitionPerformance One:A User A accesses table A (lock table a) and then accesses table BAnother User B accesses table B (lock table B), and then attempts to access table AAt this point user a because User B has locked table B, it must wait for User B to release table B, to continue, well, his ladyship will have to wait here.The same user B will wait for user A
creating a transaction. Solution to table lock in this article. In fact, not only will the table be locked as described above, but there are also many scenarios that cause a deadlock in the Table. Unlocking is actually very simple. The following example is used to explain: 1. first create a table for testing:
Create table Test (tid int identity (1, 1 ))
2. Execute the following SQL statement to lock
I wrote a stored procedure the other day and used transactions in the stored procedure.CodeComment out to debug and find the error. Suddenly, a table is locked. It turns out that the code for creating the transaction has forgotten to comment out. Solution to table lock in this article.There are many other scenarios that cause a deadlock in the Table. Unlocking is actually very simple. Here is an example:
1. First create a test table: Create Table Tes
I wrote a stored procedure the other day and used transactions in the stored procedure.CodeComment out to debug and find the error. Suddenly, a table is locked. It turns out that the code for creating the transaction has forgotten to comment out. Solution to table lock in this article.
In fact, not only will the table be locked as described above, but there are also many scenarios that will cause a deadlock in the Table. Unlocking is actually very si
Label:In today's article I want to demonstrate how missing indexes on tables in SQL Server cause deadlocks (deadlock). To prepare the test scenario, the following code creates 2 tables, and then 2 tables insert 4 records. 1 --Create a table without any indexes
2 CREATE TABLETable13 (
4Column1INT,
5Column2INT
6 )
7 GO
8
9 --Insert a few record
Ten INSERT intoTab
If @ error -- find the number of records in the temporary table select @ intcountproperties = count (*), @ intcounter = 1 from # tmp_lock_who If @ error If @ intcountproperties = 0 select 'no blocking and deadlock information' as message
-- Start of LoopWhile @ intcounter Begin-- Retrieve the first recordSelect @ spid = spid, @ BL = blFrom # tmp_lock_who where id = @ intcounterBeginIf @ spid = 0Select '+ Cast (@ BL as varchar (10) +' causes
In fact, not only the situation described above will lock the table, there are many kinds of scenes that will put the table to lock the life and death, unlock is actually very simple, the following an example to explain:
1 Create a test table first:
Copy Code code as follows:
CREATE TABLE Test
(
TID INT IDENTITY (1,1)
)
2 Execute the following SQL statement to lock the table:
Copy Code code as follows:
SELECT * from Test
In fact, not only will the table be locked as described above, but there are also many scenarios that will cause a deadlock in the Table. Unlocking is actually very simple. The following example is used to explain:1. First create a test table:Copy codeThe Code is as follows:Create table Test(Tid int identity (1, 1)) 2. Execute the following SQL statement to lock the table:Copy codeThe Code is as follows:SEL
I wrote a stored procedure the other day and used transactions in the stored procedure. Later I commented out some code for debugging and found that a table was locked, I forgot to comment out the code for creating a transaction. Solution to table lock in this article.
I wrote a stored procedure the other day and used transactions in the stored procedure. Later I commented out some code for debugging and found that a table was locked, I forgot to comment out the code for creating a transaction.
Tags: style blog http io using ar strong data SPTurning on deadlock monitoring in the database collects the deadlock conditions that occur in the database. There are 2 ways to open it:1 Turn on 1222 monitoringExecute SQL statement:DBCC Traceon (1222,-1);Then view the deadlock information in the system log.2 Start
1 first create a test table:Copy the code code as follows:CREATE TABLE Test (TID INT IDENTITY)2 Execute the following SQL statement to lock the table:Copy the code code as follows:SELECT * from Test with (Tablockx)3 You can see which tables in the current library are deadlocked by using the following statement:Copy the code code as follows:SELECT request_session_id spid,object_name (resource_associated_entity_id) tableName from Sys.dm_tran_locks WHERE
four necessary conditions of the joint action produced, so according to the general idea, as long as can break one of them, can effectively avoid the production of deadlocks.
The following are the processing that can be made for the four prerequisites:
Allows concurrent access to resources.
Allow resource deprivation for the process.
The resources required for the process to be submitted once.
The orderly allocation of resources, that is, access to resources in the
paragraph of SQL, only the update Table2 section is run
USE testdb;
-- Transaction2
BEGIN TRAN
UPDATE table2
SET student_name = student_name + 'Transaction2'
WHERE id = 1
UPDATE table1
SET student_name = student_name + 'Transaction2'
WHERE id IN (1,2,3,4,5)
COMMIT TRANSACTION
Run again, the first SQL update table2, run the second SQL
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.