Discover how to resolve deadlock in sql server, include the articles, news, trends, analysis and practical advice about how to resolve deadlock in sql server on alibabacloud.com
Tags: io os sp data on CTI Code BS ASRecently in a large-scale project, because data design uses a discrete database design to facilitate requirements change and user-defined process elements, because the user-defined features, data integrity by code constraints become less realistic, can only rely on the relationship between the table constraints, resulting in data operations often produce X (exclusive) lock, Severely affect data performance.The most straightforward solution to a database
SYS. sysprocesses is an important system view. It is mainly used to locate and solve SQL Server blocking and deadlock.
Msdn: contains information about processes running on an SQL server instance. These processes can be client processes or system processes.
Main
@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
SQL Server deadlock makes the problem that we often encounter, the deadlock of database operation is unavoidable, this article does not intend to discuss how deadlocks are produced, the focus is to resolve deadlocks. Hopefully it will help you learn about the
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
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
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
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
Query deadlock Process Statement
Select
request_session_id spid,
object_name (resource_associated_entity_id) tablename
from
sys.dm _tran_locks
where
resource_type= ' OBJECT '
Kill the deadlock process statement
Kill spid
Let's share a section about SQL Server detection
Label: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_
Find the next information, http://www.cnblogs.com/qanholas/archive/2013/05/15/3080013.html the gods are such a standard answer, the mark should be worthy of the standard answer, write too detailed , considering a variety of situations, but spit groove ah, too much content, find useful information is very difficult, I here to filter the content, the problem is basically server configuration problems, the solution is as follows, to have a picture of
Label:Many times, deadlocks are requested by two or more sessions to hold the other session of the lock while holding other session, but there are some special deadlock only by a single session lock triggered, today saw a related article, transported to share with you! The code that caused the deadlock: Execution Environment SQL
of inside SQL Server 2005:the Storage engine 8th "Lock and Concurrency" Kalen Delaney writes ( See references in this book's Bibliography: Other resources and references. Specifically, that chapter contains the necessary information about what is required to resolve concurrency issues in SQL
Using SQL Server as a database application system, can not avoid the sometimes deadlock, deadlock, maintenance personnel or developers will only through the sp_who to find the deadlock process, and then kill with Sp_kill. Using Sp_who_lock, this stored procedure makes it eas
Deadlocks and blockages have always been the focus of performance test execution.Here are the monitored SQL Server databases I've compiled, whether there are deadlocks or blocked SQL statements during the performance test, and it's relatively ready to leave.--Number of deadlocks per secondSELECT * from Sys.dm_os_performance_counters WHERE counter_name like ' numb
.
status
nchar (+)
Process ID status. The possible values are: dormant= SQL Server is resetting the session. The running= The session is running one or more batches. When multiple Active Result sets (MARS) is enabled, a session can run multiple batches. For more information, seeusing multiple Active Result sets (MARS). Background= The session is running a background task,
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.