Sessions 1 and Session 2 cannot continue until the other party frees resources. Therefore, SQL Server chooses a session in the deadlock as the "deadlock victim."
Note: The deadlock victim's session will be killed and the transaction will be rolled back.
Note: deadlocks and
this time, we can use the following stored procedures to detect the process and SQL statements that cause the deadlock. The built-in system stored procedures sp_who and sp_lock of SQL Server can also be used to find blocking and deadlocks, but the method described here is not easy to use.
Use masterGoCreate procedur
Let's start with an example of this, which can cause deadlocks in SQL Server 2000 and 2005. In this article, I use the latest CTP (Community Technology Preview, Community Technology Preview) version of SQL Server 2005, and the same applies to SQL
Record the deadlock process and solution of the company's warehouse database server, and the warehouse database
Four Conditions for deadlock:
Mutual exclusion: resources cannot be shared and can only be used by one process.
Hold and wait: processes that have obtained resources can apply for new resources again.
No pre-emption: allocated resources cannot be forcib
large transaction, the transaction is too large to allow other sessions to wait for exclusive lock time to become longer
2, everyone is using the same nonclustered index, and scan the Pricingexpressproductcode field
3, the index of repeated values are many
From the above symptoms can be basically judged, this nonclustered index is useless, you can disable the
ALTER INDEX [ix_pricingexpressproductcode_state] on [dbo]. [Orderxxx] DISABLE
After disabling, the
Label:"SQL Server 2005 deadlock resolution Exploration" mentioned earlier, deadlock severity, an average of one deadlock per day, and a lot of data and ideas in resolving and handling SQL server2005 deadlocks, and then we used the
('dbcc inputbuffer ('+ @ spid + ')')
If @ sign = 'deadlocked process' exec ('Kill '+ @ spid)
Set @ I = @ I + 1
End
End
Else
While @ I
Begin
Select @ s = 'dbcc inputbuffer ('+ Cast (process ID as varchar) +') 'from # t where id = @ I
Insert # T1 exec (@ s)
Set @ I = @ I + 1
End
Select a. *, the SQL statement of the Process = B. eventinfo
From # t a join # t1 B on A. ID = B. ID
End
Go
Set quoted_identifier off
Go
Set
Document directory
Problem description
Problem troubleshooting
Problem description
An inadvertent deadlock in the application code can cause a server to hang. for example, a situation in which thread1 is waiting for resource1 and is holding a lock on resource2, while thread2 needs resource2 and is holding the lock on resource1. neither thread can progress.Problem troubleshooting
This application
The use of SQL Server as a database application system, will not be able to sometimes create a deadlock, after the deadlock, the maintenance personnel or developers will mostly only through the sp_who to find the deadlock process, and then killed with Sp_kill. With Sp_who_lo
Select T.username,count (*) from v$session T GROUP by T.username
//Find the sql_id value that a user is executing based on the user group session Select
* From V$session t where T.username = ' BUDGET ' and t.sql_id are NOT NULL
//lookup corresponding SQL_ID's corresponding SQL statement
select M.sql_text from V$session T, V$sqlarea m where t.username = ' BUDGET ' and t.sql_id = m.sql_id
//
SELECT * from V$sqlarea t where T. sql_id = ' G92sy7kwt6mrq '
Tags: style blog io color ar sp Data div onIntroductionToday in the group to see the resolution of the deadlock of the SQL statement, just think of this thing will definitely use, download down, here to record, later find also convenient.Sql1SET QUOTED_IDENTIFIEROn2GO3SET ANSI_NULLSOn4GO5CREATEPROCEDURESp_who_lock6As7BEGIN8DECLARE@spidInt,9@blInt,10@intTransactionCountOnEntryInt,11@intRowcountInt,12@intCoun
Tags: style blog http color os io data arOriginal: [SQL] Deadlock processing statementIntroductionToday in the group to see the resolution of the deadlock of the SQL statement, just think of this thing will definitely use, download down, here to record, later find also convenient.Sql1 SETQuoted_identifier on2 GO3 SETAn
An SQL example that causes a deadlock is provided.Deadlock definition: in a broad sense, it includes the operating system application database. If two Process sessions hold each other's resources, they always wait for the other to release. This situation may cause a deadlock.Misunderstanding: Session blocking is not a deadlock, because one of the sessions can con
writable (blocked) not apply (blocked) not apply (block)--1. Using an exclusive lock thread can read its locked record, read the latest version of the current transaction, and for a thread that does not apply an exclusive lock, it is also possible to read operations, which is a consistent, non-locking read.-that is, for the same record, the database records multiple versions, and the update operation within the transaction reacts to the new version, and the old version is provided to other thre
Tags: style blog color io data cti ar DivIntroductionToday in the group to see the resolution of the deadlock of the SQL statement, just think of this thing will definitely use, download down, here to record, later find also convenient.Sql1 SETQuoted_identifier on2 GO3 SETAnsi_nulls on4 GO5 CREATE PROCEDURESp_who_lock6 as7 BEGIN8 DECLARE @spid INT ,9 @bl INT ,Ten @intTra
Mysql uses the kill command to solve the deadlock problem (killing an SQL statement being executed)
When using mysql to run certain statements, the deadlock is caused by a large amount of data, which is not reflected. At this time, you need to kill a query statement that is consuming resources. The syntax format of the kill command is as follows: Mysql uses the
Use of MSSQL webmaster Friends will be MSSQL database to eat memory ability to admire admiration, a small site, run a few days later, MSSQL will put all the memory on the server, at this time you have to restart the server or MSSQL to free memory, Some people think that the MSSQL has a memory leak problem, in fact, Microsoft gave us a clear explanation:
After you start
Release date: 2008.02.01 Source: CCID Author: Alice
If a deadlock occurs, how can we check which SQL statement or stored procedure is causing the deadlock? In this case, we can use the following stored procedure to detect the process and SQL statements that cause the
Use of MSSQL webmaster Friends will be MSSQL database to eat memory ability to admire admiration, a small site, run a few days later, MSSQL will put all the memory on the server, at this time you have to restart the server or MSSQL to free memory, Some people think that the MSSQL has a memory leak problem, in fact, Microsoft gave us a clear explanation:
After you start
A deadlock occurs when the data table is manipulated in PL/SQL and is unresponsive for a long time, and when editing data in a table, there is a "record is locked by another user".Below, a brief description of the solution:Step1.pl/sql View Lock:Select T2.username, T2.sid, T2.serial#,t2.logon_timeFrom V$locked_object t1,v$session T2where t1.session_id = T2.sid[Or
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.