SQL Server Deadlock While Inserting Rows In A Table
Oct 15, 2010
The topic of sql server deadlock has been discussed many times, however, I was unsure that even two simultaneous inserts on a table can end up in a deadlock situation. Scenario: While testing our application (SQL Server 2005 as backend, ASP.net 3.5) we inserted records into a table simultaneously (simplified overview) and that resulted into a deadlock for more than 70% of users.
I could not get a hang of this as how an insert is being deadlock as this is not a case of multiple resources. After a detailed analysis (of reproducing the bug by two users) I found that both the processes were holding a RangeS-S lock on the primary key index of the table and were trying to convert this into RangeI-N lock, that resulted into a deadlock and one transaction being killed.
Question: Can we avoid or reduce these kind of deadlocks as this is not a case of change in order of access of resources? Cant' we force the transaction to get exclusive lock initially so that it blocks the other process and avoid deadlock? What (adverse) effects that may have? Also could some one explain more about RangeI-N lock.
Isolation Level for this was "Serializable".
View 2 Replies
Similar Messages:
Jun 11, 2010
I m getting following error in my eventvwr . I couldnt find reasons of the following error.
"Transaction (Process ID 110) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. "
The only thing my page is doing is inserting/updating data into a table in sql and the thing I can think of is because multiple users are using the same page to insert/update data? Will that cause deadlock?
View 4 Replies
Dec 13, 2010
code for inserting rows by button click on table or grid
View 5 Replies
Sep 14, 2010
I have one table named 'dbo.ac_Products' Within this table there is a column named 'ProductId' There is also another table named 'dbo.ac_CatalogNodes' Within this table there is a column named 'CatalogNodeId' and a column named 'CatalogNodeType'
I need to delete all the rows from 'dbo.ac_Products' and 'dbo.ac_CatalogNodes' where 'ProductId' = 'CatalogNodeId' and 'CatalogNodeType' = 1
View 4 Replies
Oct 22, 2010
If I create a data tabe in C# like so:
datatable t = new DataTable;
DataColum C1 = new DataColum;//ID column
t.Columns.Add(C1);
//the same with column C2
Then I fill up the table with some data. Then the goal is to either insert this data or update data in an SQLtable in SQL. If the data is inserted, the ID column in t would be empty, if updated, it would not be. So in the insertion case, the sql query needs to make sure that unique IDs are assigned during insertion, in the update case, it just has to look for the right IDs.How to go about this? Asking because I am only familiar with updating and inserting single lines into a table. One could loop in C# over the datatable t of course and insert or update line by line, but this would probably be slow. Is there a way to write an SQL query like this somehow:
Insert Into SQLTable Values (@t)
?
And Update like this:
Update SQLTable SET ... Where C1 = @t.C1
Or something like that.
I know that SQL server can create automatic update and insert queries and that you can then type things in C# like
Adapter.Update(t);
But, this has proven to be super slow on our server, for unknown reasons. I have asked on this forum and got some answers from experts, but was not able to srot out the problem. How can we write a custom SQL query that allow updating and inserting a whole table, instead of just one line at a time?
View 3 Replies
Jan 20, 2011
I have table a and would like update table a whose values from table b, but not update all rows at table a. Only update record ID in table a match record ID in tableC.
Here is my query
update a
set a.Desc = b.Desc,
a.Value = b.Value
from TableA a, TableB b
where a.name = b.name
and a.ID = b.ID
and a.ID in ( select ID from TableC)
I only have 12 a.ID match TableC, but above query update whole TableA.
How to only update 12 record at TableA from TableB?
View 2 Replies
Sep 16, 2010
I have created table into database dynamicaly,while inserting records into that dynamic table i faced problem.
The name "STD000001" is not permitted in this context. Valid expressions are constants, constant expressions, and (in some contexts) variables. Column names are not permitted. this error occured.
I created dynamic table by ,
declare @STUDENT_Table varchar(50)
set @STUDENT_Table = [dbo].[GetStudentTable](@SchoolID)
exec (@cmd)
[code]....
this stored procedure.....
Should i give any permission while creating dynamic table.
View 7 Replies
Dec 15, 2010
I have one SP in sql server which takes the data from user and inserts into three tables. My problem is if multiple users call the same SP in same time it throwing error..(I guess one user at a time can access the table and table will be locked, that is why remaning users getting error)how to handle this situation. it is a web application, so at a time so many people can call the same SP.How can many users insert data in the same table in the same time?
View 5 Replies
Sep 28, 2010
how to prevent deadlock? read from other forum knowing that even a simple select statement will cause deadlock, but i confuse on how can i prevent it?
View 8 Replies
Jan 7, 2011
My application is a survey application and I am using asp.net 2.0 and sql server 2005 version. There are many users taking survey at a single point of time. Some times delock is coming at a single method where i am deleting some records in a loop one by one(This delete statement may be executed for about 20 question in a page). This is a simple delete statement as below
delete table_name where column_name1='' and column_name2=''
column_name1 has foriegn key constraint, column_name2 also has foriegn key constraint.
The exception is as below.
Transaction (Process ID 204) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction
View 6 Replies
Feb 25, 2011
I am writing code to insert values from an xml file. I check for a duplicate before inserting and delete if there is a match. Is there a more effecient way to prevent duplicates before insert a record? my code: private void LoadFData() { SqlConnection oConn = new SqlConnection(ConnectionString); SqlCommand oCommand = new SqlCommand(); oCommand.Connection = oConn; oCommand.CommandType = CommandType.Text; oConn.Open(); // Load committee master files string[] strFiles = System.IO.Directory.GetFiles("fff", "ffff.dta", System.IO.SearchOption.AllDirectories); for (int i=0; i
View 2 Replies
May 12, 2010
I have a customized data import executable in .NET 3.5 which the SqlBulkCopy to basically do faster inserts on large amounts of data. The app basically takes an input file, massages the data and bulk uploads it into a SQL Server 2000. It was written by a consultant who was building it with a SQL 2008 database environment. Would that env difference be causing this? SQL 2000 does have the bcp utility which is what BulkCopy is based on. So, When we ran this, it triggered a Deadlock error.
Error details: Transaction (Process ID 58) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
I've tried numerous ways to try to resolve it. like temporarily setting the connection string variable MultipleActiveResultSets=true, which wasn't ideal, but it still gives a Deadlock error. I also made sure it wasn't a connection time out problem. here's the function.
/// <summary>
/// Bulks the insert.
/// </summary>[code].....
View 4 Replies
Aug 30, 2010
Recently i have come across one question in sql query
Question: Which SQL Query helps to view the TOP N rows From the particular SQL table?
View 3 Replies
Jan 12, 2010
a script which creates a deadlock in a Sql Server 2008 database?I want to do a trace in a customer environment using a trace flag but first I want to test it in my own environment.
View 4 Replies
Mar 11, 2011
I have a large database of user profile data. I need to be able to compare 1 row against all of the other rows, for all columns to find the best match.There are around 30 columns of data for each row. I need to be able to find the 5 best matching rows.
I.E.
Row 1 matches on 2 column's
Row 2 matches on 12 column's
Row 3 matches on 7 column's
Row 4 matches on 4 column's
Row 5 matches on 9 column's
Row 6 matches on 23 column's
Row 7 matches on 29 column's
In the end it will show me the data for rows 7, 6, 2, 5, 3 Now to make it even harder, Some of the columns are bit, some are varchar.Some of them may be a direct match, some will need to search if the column for row2 contains the text of row 1.
View 6 Replies
Nov 13, 2010
I have a table think as table1, with 3 columns
col1 col2 col3 -- Columns
Y N 1 -- Data
but i want
colname val
col1 Y
col2 N
col3 1
View 3 Replies
Mar 5, 2011
I have a data table called Songs It has SongId as Primary Key of type INT SongName of Type VarChar UserId of Type Int. I simply want to check how many entries are in the Table already by The UserId before they insert more. So If there are already 3 songs by that User, I want to stop the insert process and warn them they have the maxium already. I think i am halfway there already using code below but problem is that UserId is of Type GUID, and not Int so I am missing something. On my Aspx, Page, I have a DetailsView for the Database Insert. I also have the following code using BusLogic Layer and DAL
SongsBLL
public int ScalarQuery(Guid ArtistId)
{
int returnValue = ScalarQuery(ArtistId);
return returnValue;
}
Code Behind ASPX page
This in in DetailsView_ Item Inserting Event
SongsBLL number = new SongsBLL();
currentCount = Convert.ToInt32(number.ScalarQuery(currentCount).ToString());..........
View 9 Replies
Dec 15, 2010
Let's say I have a table (Table1) with three columns (Col1, Col2, Col3) and two rows. Let's say I have a button on a page. I want to send the contents of those two rows in an email in the Click event handler of the button. Here's the SQL framework I've got:
[Code]....
View 11 Replies
Mar 21, 2011
Suppose I have a temporary table (Shown below). The table is defined and populated in my stored procedure. After it is populated, I need to go through every row in the table. Here is what I need to do :
Check if Amount2 > Amount1 If Amount2 > Amount1 then set Amount1 = Amount2
It feels a little akward for me to use the temp table.
[code]....
View 2 Replies
Mar 23, 2011
I have a table called Student with a lot foreign keys that will be used after to filter students(table rows).The structure of this table is like:
StudentId GenderId DegreeId NatioanlityId
1 2 2 3
....
As a student can speak one or more language,the Sudent Table is linked to language table like this
StudentId LangaugeId
1 1
1 2
1 3
And a student can chose one or many subjects for exam:
StudentId ExamId
1 1
1 2
....
In my asp.net page I would like to filter students via checkbox using ajax for example, student having female and male gender with Degree 1,speaking language 1,2... I filter rows in a stored proc using user defined table,and I have to use a lot of IF statements like this
if(EXISTS(SELECT GenderId FROM @GenderTable))
if(EXISTS(SELECT DegreeId FROM @DegreeTable))
if(....)
else
if(...)
How can I avoid all the IF statements? I have more than 5 filters.It's boring.
View 1 Replies
Sep 29, 2010
I have a one sql table, it contain 5 column id, ipaddress, status, datetime, value. I need to find distinct rows as per ipaddress column basic..
View 7 Replies
Feb 22, 2011
I have a table which contains asp radiobuttonlists (see below) for a survey. Once submitted the results are written to a database.I would like to use this same table for a similar survey, but the trouble is the question order needs to be different. The questions are the same, just in a different order. Is there a way (server side) to change the order of the table rows?
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td> </td>
[code]...
View 1 Replies
Jan 18, 2010
I would like to know how deadlock is happen, i have facing alot of sql deadlock in my event handle on server computer.
View 3 Replies
Mar 25, 2011
write the query for merging two rows in a table with same date and time into one row...
2009/12/23 13:46:50 -0.43546 0.02395 -7.1621 0.45529
2009/12/23 13:46:50 0 0 0 0
2009/12/23 13:47:00 -0.47114 -0.00515 -7.1779 0.42751
2009/12/23 13:47:00 0 0 0 0
i want to merge this same datetime rows into one row ..
View 4 Replies
Mar 8, 2011
I've a table where one person teaches multiple classes. It looks like this.
Table1
Id Name Class Subject
----------------------------------------
2 Sam 12 English
2 Sam 10 Maths
2 Sam 10 English
2 Sam 8 History
2 Sam 12 Economics
Here Sam teaches Class 12 - English & Economics, Class 10 - Maths & English, Class 8 - History
I want to display the result like this -
Id Name Class Subject
---------------------------------------------------------------
2 Sam 12 English, Economics
2 Sam 10 Maths, English
2 Sam 8 History
How to concatenate multiple Rows?
View 6 Replies