• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 208
  • Last Modified:

URGENT !!! Process locking itself

We have a table with more than  5 Million records and when we try to do an update the process got blocked by itself.
Some times get locked and some times not.

The query is quite simple

UPDATE 5MILLIONTABLE
SET COL1 = COL2
FROM 20RECORDTABLE
WHER  <JOIN CONDITION>

We have a sqlserver 2000 standard edition with sp 4 and runing in a windows 2003 with 4 proc. and 4 Gb ram.
0
PSOHEALTH_IS
Asked:
PSOHEALTH_IS
  • 12
  • 6
1 Solution
 
MikeWalshCommented:
Can you break this into smaller chunks?

Do this in smaller batches to help minimize the impact.. Is there a trigger on the table?
0
 
PSOHEALTH_ISAuthor Commented:
No Triggers, and we can not break the update
0
 
MikeWalshCommented:
Well that is good about the triggers..

How many updates do you expect to be made? Are you forgetting any other where criteria or are you updating all rows based on the join??

Can you post a more complete query example.. Do you have indexes on the join Condition Columns? If you don't it might be good to add indexes on those columns..

Do you have indexes on the columns being updated? If you do it might be good to drop the index for the time being and then recreate it as an index on the column being updated has the potential to slow it down.

Are you doing this during live production? Can it wait until after hours?

Why can't you batch it? If you are updating the majority of those 5 million rows, it would be best to split up the work, and if you have a primary key that is incremental or some other criteria (maybe a daterange for date entered) it would be helpful to even just make 5 smaller updates.....

0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
PSOHEALTH_ISAuthor Commented:
This is a Datawarehouse Db so right now I am the only one in the server and the problem is not performance because when it does, takes like 3 mintutes to update.

The problem is that sometimes (frequently) gets locked by itself and I have tried to move the table to another database in the same server with select * into db1..table b from db2..table and gets locked also by itself
0
 
MikeWalshCommented:
Well I am confused on how it locks itself if there are no triggers and circular references here.. Can you post a more complete script that you are running?

You could put a nolock hint on the join clause.

Also to try and move the other records into different databases you can add a with nolock to the select.

Since you are the only one in the system you don't have to worry about dirty reads.
0
 
PSOHEALTH_ISAuthor Commented:
Yes that's the problem as you see this statement select * into xx from yy gets locked also and it does not have any extra tables or circular reference.

I tried the nolock hint and gets locked also
0
 
MikeWalshCommented:
Well hang on.. Locking isn't bad.. Locking will happen.. When you write a select, you are holding a shared lock on the table..

What are you referring to with the locking? Are you receiving an error message? Does it hang and show blocking in Activity Monitor or when you run SP_WHO or SP_WHO2?

Locking isn't an evil, but deadlocks or blocks are..
0
 
PSOHEALTH_ISAuthor Commented:
We saw the activity report thru enterprise manager and we saw 2 process with same id one blocking the other and hangs and does not complete process.
0
 
MikeWalshCommented:
the same SPID?

Are you able to stop and restart your SQL Service to rule out any connections cached? Then run the query again, and in another query window run the SP_WHO2 stored procedure (system stored procedure)..

In the original query window where you run the select, look at the SPID for that process (should be in the bottom taskbar of the window).. Look for that SPID in the results from SP_WHO2 see what you see there.

Are you running any of these queries through enterprise manager or all through Query Analyzer? Do you have any windows open displaying rows in Enterprise manager while this is running? SQL Has "funny" locking behavior when working wtih data in Enterprise Manager,and you should use Query Analyzer for such queries.
0
 
PSOHEALTH_ISAuthor Commented:
we already resstarted the sql server serveral times and the problem goes on.  We are running this process thru query analyzer but does the same thru DTS Packages.
0
 
MikeWalshCommented:
well that shouldln't be a problem (DTS)...

Just post the full query, the results from SP_WHO2 for your SPID and I will be able to help more.
0
 
PSOHEALTH_ISAuthor Commented:
This is the sp_who2 result

spid   ecid   status                         loginame                                                                                                                         hostname                                                                                                                         blk   dbname                                                                                                                           cmd              
------ ------ ------------------------------ -------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- ----- -------------------------------------------------------------------------------------------------------------------------------- ----------------
1      0      background                     sa                                                                                                                                                                                                                                                                0     NULL                                                                                                                             LOCK MONITOR    
2      0      background                     sa                                                                                                                                                                                                                                                                0     NULL                                                                                                                             LAZY WRITER    
3      0      background                     sa                                                                                                                                                                                                                                                                0     master                                                                                                                           SIGNAL HANDLER  
4      0      sleeping                       sa                                                                                                                                                                                                                                                                0     NULL                                                                                                                             LOG WRITER      
5      0      background                     sa                                                                                                                                                                                                                                                                0     master                                                                                                                           TASK MANAGER    
6      0      sleeping                       sa                                                                                                                                                                                                                                                                0     NULL                                                                                                                             CHECKPOINT SLEEP
7      0      background                     sa                                                                                                                                                                                                                                                                0     master                                                                                                                           TASK MANAGER    
8      0      background                     sa                                                                                                                                                                                                                                                                0     master                                                                                                                           TASK MANAGER    
9      0      background                     sa                                                                                                                                                                                                                                                                0     master                                                                                                                           TASK MANAGER    
10     0      background                     sa                                                                                                                                                                                                                                                                0     master                                                                                                                           TASK MANAGER    
11     0      background                     sa                                                                                                                                                                                                                                                                0     master                                                                                                                           TASK MANAGER    
12     0      background                     sa                                                                                                                                                                                                                                                                0     master                                                                                                                           TASK MANAGER    
13     0      background                     sa                                                                                                                                                                                                                                                                0     master                                                                                                                           TASK MANAGER    
14     0      background                     sa                                                                                                                                                                                                                                                                0     master                                                                                                                           TASK MANAGER    
15     0      background                     sa                                                                                                                                                                                                                                                                0     master                                                                                                                           TASK MANAGER    
16     0      background                     sa                                                                                                                                                                                                                                                                0     master                                                                                                                           TASK MANAGER    
51     0      sleeping                       sa                                                                                                                               xxxxxx  0     master                                                                                                                           AWAITING COMMAND
52     0      sleeping                       sa                                                                                                                               xxxxxx  0     MBSSG                                                                                                                            UPDATE          
52     9      sleeping                       sa                                                                                                                               xxxxxx  0     MBSSG                                                                                                                            UPDATE          
52     8      sleeping                       sa                                                                                                                               xxxxxx  0     MBSSG                                                                                                                            UPDATE          
52     7      sleeping                       sa                                                                                                                               xxxxxx  0     MBSSG                                                                                                                            UPDATE          
52     6      sleeping                       sa                                                                                                                               xxxxxx  0     MBSSG                                                                                                                            UPDATE          
52     4      sleeping                       sa                                                                                                                               xxxxxx  52    MBSSG                                                                                                                            UPDATE          
52     3      sleeping                       sa                                                                                                                               xxxxxx  52    MBSSG                                                                                                                            UPDATE          
52     2      sleeping                       sa                                                                                                                               xxxxxx  52    MBSSG                                                                                                                            UPDATE          
52     1      sleeping                       sa                                                                                                                               xxxxxx  52    MBSSG                                                                                                                            UPDATE          
53     0      sleeping                       sa                                                                                                                               xxxxxx  0     master                                                                                                                           AWAITING COMMAND
54     0      runnable                       sa                                                                                                                               xxxxxx  0     MBSSG                                                                                                                            SELECT          

(28 row(s) affected)

0
 
MikeWalshCommented:
Ok.. so I see the blocking... Can you post the entirety (with the appropriate dumbing down of sensitive object names) that is being run?
0
 
MikeWalshCommented:
How long have you let this hang also? Sorry to pepper you with questions... Does it eventually timeout or error? Blocking is not necessarilly evil unless you are in a dead lock. If you are just blocking then the blocked process will wait for the blocking process to finish and then run (or timeout first)
0
 
MikeWalshCommented:
See this article as well. http://support.microsoft.com/kb/906344
0
 
MikeWalshCommented:
One last question.. How many procs do you have? I wonder if it is more than 1 if it is a problem like this one:

http://www.sqlservercentral.com/forums/shwmessage.aspx?forumid=5&messageid=207405&p=1

If that is the case trying to change the max degree of paralellism may help. You can supply a hint for a stored proc that would do all of this.
0
 
MikeWalshCommented:
Or just with your update

SELECT * INTO tableB FROM TableA OPTION (MAXDOP 1)

Try that and see if it makes a difference. Sometimes parallelism can hurt us as well as help us... Setting it off for this operation isn't going to make a huge difference since your bottleneck would be I/O and Memory not really CPU
0
 
MikeWalshCommented:
How is this issue going? I had some meetings and then dinner. I know it was urgent for you so I want to make sure you have it figured out.
0
 
DarthModCommented:
PAQed with no points refunded (of 500)

DarthMod
Community Support Moderator
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 12
  • 6
Tackle projects and never again get stuck behind a technical roadblock.
Join Now