Continue: How to speed up SQL Server performance? | SQL Server Performance Forums

SQL Server Performance Forum – Threads Archive

Continue: How to speed up SQL Server performance?

Thanks for your help.<br />here is some example of our db updating log.<br /><br />1. I try to delete 1 shift, it involves some updating of 3 tables <br />(Sometimes the user could delete thousands of shifts ,and it will all be included in one large transaction)<br /><br />&lt;2064 04-02-20 08:36:48:049&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRequest – Items = 52, Thread = 2064<br />&lt;2064 04-02-20 08:36:48:049&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 5, Size = 5<br />&lt;2064 04-02-20 08:36:48:049&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-7.gif’ alt=’:S’ />tartTrans()<br />&lt;2064 04-02-20 08:36:48:049&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 57, Size = 100<br />&lt;2064 04-02-20 08:36:48:049&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:049&gt; CTableBuffer::Create()<br />&lt;2064 04-02-20 08:36:48:049&gt; CTableBuffer:<img src=’/community/emoticons/emotion-41.gif’ alt=’:Q’ />uery = ‘delete from schedule_depot_stats where schedule_depot_stats_id = ? and schedule_set_id = ? ‘<br />&lt;2064 04-02-20 08:36:48:049&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 103, Size = 200<br />&lt;2064 04-02-20 08:36:48:049&gt; CDatabaseWriter::ApplyRecord (U)<br />&lt;2064 04-02-20 08:36:48:049&gt; CTableBuffer::Flush. Number of rows = 1<br />&lt;2064 04-02-20 08:36:48:049&gt; CTableBuffer::Create()<br />&lt;2064 04-02-20 08:36:48:049&gt; CTableBuffer:<img src=’/community/emoticons/emotion-41.gif’ alt=’:Q’ />uery = ‘update schedule_set set schedule_set_name = ? ,days_of_operation = ? ,timetable_id = ? ,crew_type_id = ? ,trip_category = ? ,is_read_only = ? ,is_actual = ? ,is_deleted = ? ,reference_count = ? ,date_mod = ? ,user_mod = ? ,date_created = ? ,single_continuous_period = ? where schedule_set_id = ? ‘<br />&lt;2064 04-02-20 08:36:48:049&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 29, Size = 100<br />&lt;2064 04-02-20 08:36:48:049&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:049&gt; CTableBuffer::Flush. Number of rows = 1<br />&lt;2064 04-02-20 08:36:48:049&gt; CTableBuffer::Create()<br />&lt;2064 04-02-20 08:36:48:049&gt; CTableBuffer:<img src=’/community/emoticons/emotion-41.gif’ alt=’:Q’ />uery = ‘delete from schedule_depot where schedule_depot_id = ? and schedule_set_id = ? ‘<br />&lt;2064 04-02-20 08:36:48:049&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 79, Size = 100<br />&lt;2064 04-02-20 08:36:48:049&gt; CDatabaseWriter::ApplyRecord (U)<br />&lt;2064 04-02-20 08:36:48:049&gt; CTableBuffer::Flush. Number of rows = 1<br />&lt;2064 04-02-20 08:36:48:065&gt; CTableBuffer::Create()<br />&lt;2064 04-02-20 08:36:48:065&gt; CTableBuffer:<img src=’/community/emoticons/emotion-41.gif’ alt=’:Q’ />uery = ‘update schedule_activity set schedule_id = ? ,activity_type_id = ? ,days_of_operation = ? ,start_time = ? ,end_time = ? ,start_node_id = ? ,end_node_id = ? ,non_timetabled_work_id = ? ,trip_id = ? ,trip_number = ? ,flags = ? ,direction = ? ,other_schedule_id = ? ,railway_line_id = ? ,number_of_cars = ? ,comment_ = ? ,alternative_index = ? ,other_trip_id = ? ,other_trip_number = ? where schedule_activity_id = ? and schedule_set_id = ? ‘<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 79, Size = 100<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWriter::ApplyRecord (U)<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 79, Size = 100<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWriter::ApplyRecord (U)<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 124, Size = 200<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:065&gt; CTableBuffer::Flush. Number of rows = 3<br />&lt;2064 04-02-20 08:36:48:065&gt; CTableBuffer::Create()<br />&lt;2064 04-02-20 08:36:48:065&gt; CTableBuffer:<img src=’/community/emoticons/emotion-41.gif’ alt=’:Q’ />uery = ‘delete from schedule_activity where schedule_activity_id = ? and schedule_set_id = ? ‘<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 79, Size = 100<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWr iter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:065&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 90, Size = 100<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 100, Size = 100<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 79, Size = 100<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 79, Size = 100<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 79, Size = 100<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 41, Size = 100<br />&lt;2064 04-02-20 08:36:48:080&gt; CDatabaseWriter::ApplyRecord (D)<br />&lt;2064 04-02-20 08:36:48:080&gt; CTableBuffer::Flush. Number of rows = 17<br />=========================================================================================<br />2. I did undo my change, so it will insert all the data back.</b>&lt;2064 04-02-20 <br /><br />08:36:58:235&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-7.gif’ alt=’:S’ />tartTrans()<br />&lt;2064 04-02-20 08:36:58:235&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 41, Size = 100<br />&lt;2064 04-02-20 08:36:58:235&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:235&gt; CTableBuffer::Create()<br />&lt;2064 04-02-20 08:36:58:235&gt; CTableBuffer:<img src=’/community/emoticons/emotion-41.gif’ alt=’:Q’ />uery = ‘insert into schedule(schedule_id,schedule_set_id,shift_type_id,schedule_number,days_of_operation,is_dummy,amendment_number,previous_amendment,is_frozen,crew_number,modified) values (?,?,?,?,?,?,?,?,?,?,?)'<br />&lt;2064 04-02-20 08:36:58:251&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:58:251&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:251&gt; CTableBuffer::Flush. Number of rows = 1<br />&lt;2064 04-02-20 08:36:58:266&gt; CTableBuffer::Create()<br />&lt;2064 04-02-20 08:36:58:266&gt; CTableBuffer:<img src=’/community/emoticons/emotion-41.gif’ alt=’:Q’ />uery = ‘insert into schedule_activity(schedule_activity_id,schedule_set_id,schedule_id,activity_type_id,days_of_operation,start_time,end_time,start_node_id,end_node_id,non_timetabled_work_id,trip_id,trip_number,flags,direction,other_schedule_id,railway_line_id,number_of_cars,comment_,alternative_index,other_trip_id,other_trip_number) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)'<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 79, Size = 100<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 79, Size = 100<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:282& gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 79, Size = 100<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 79, Size = 100<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 79, Size = 100<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 79, Size = 100<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 90, Size = 100<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:282&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:58:298&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:298&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:58:298&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:298&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:58:298&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:298&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 91, Size = 100<br />&lt;2064 04-02-20 08:36:58:298&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:298&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 79, Size = 100<br />&lt;2064 04-02-20 08:36:58:298&gt; CDatabaseWriter::ApplyRecord (U)<br />&lt;2064 04-02-20 08:36:58:298&gt; CTableBuffer::Flush. Number of rows = 17<br />&lt;2064 04-02-20 08:36:58:345&gt; CTableBuffer::Create()<br />&lt;2064 04-02-20 08:36:58:345&gt; CTableBuffer:<img src=’/community/emoticons/emotion-41.gif’ alt=’:Q’ />uery = ‘update schedule_activity set schedule_id = ? ,activity_type_id = ? ,days_of_operation = ? ,start_time = ? ,end_time = ? ,start_node_id = ? ,end_node_id = ? ,non_timetabled_work_id = ? ,trip_id = ? ,trip_number = ? ,flags = ? ,direction = ? ,other_schedule_id = ? ,railway_line_id = ? ,number_of_cars = ? ,comment_ = ? ,alternative_index = ? ,other_trip_id = ? ,other_trip_number = ? where schedule_activity_id = ? and schedule_set_id = ? ‘<br />&lt;2064 04-02-20 08:36:58:345&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 79, Size = 100<br />&lt;2064 04-02-20 08:36:58:345&gt; CDatabaseWriter::ApplyRecord (U)<br />&lt;2064 04-02-20 08:36:58:345&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 79, Size = 100<br />&lt;2064 04-02-20 08:36:58:345&gt; CDatabaseWriter::ApplyRecord (U)<br />&lt;2064 04-02-20 08:36:58:345&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 79, Size = 100<br />&lt;2064 04-02-20 08:36:58:345&gt; CDatabaseWriter::ApplyRecord (U)<br />&lt;2064 04-02-20 08:36:58:345&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:58:345&gt; CDatabaseWriter::ApplyRecord (U)<br />&lt;2064 04-02-20 08:36:58:345&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 83, Size = 100<br />&lt;2064 04-02-20 08:36:58:345&gt; CDatabaseWriter::ApplyRecord (U)<br />&lt;2064 04-02-20 08:36:58:345&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 29, Size = 100<br />&lt;2064 04-02-20 08:36:58:345&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:345&gt; CTableBuffer::Flush. Number of rows = 6<br />&lt;2064 04-02-20 08:36:58:345&gt; CTableBuffer::Create()<br />&lt;2064 04-02-20 08:36:58:345&gt; CTableBuffer:<img src=’/community/emoticons/emotion-41.gif’ alt=’:Q’ />uery = ‘insert into schedule_depot(schedule_depot_id,schedule_set_id,schedule_id,days_of_operation,crew_depot_id,is_preferred) values (?,?,?,?,?,?)'<br />&lt;2064 04-02-20 08:36:58:360&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 57, Size = 100<br />&lt;2064 04-02-20 08:36:58:360&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:360&gt; CTableBuffer::Flush. Number of rows = 1<br /& gt;&lt;2064 04-02-20 08:36:58:376&gt; CTableBuffer::Create()<br />&lt;2064 04-02-20 08:36:58:376&gt; CTableBuffer:<img src=’/community/emoticons/emotion-41.gif’ alt=’:Q’ />uery = ‘insert into schedule_depot_stats(schedule_depot_stats_id,schedule_set_id,schedule_id,schedule_depot_id,days_of_operation,alternative_index,paid_time,work_time,over_mileage_shift_limit_time,kilometreage,dust_allowance,is_kilometreage,sign_on_time,sign_off_time) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)'<br />&lt;2064 04-02-20 08:36:58:376&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 41, Size = 100<br />&lt;2064 04-02-20 08:36:58:376&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:391&gt; CTableBuffer::Flush. Number of rows = 1<br />&lt;2064 04-02-20 08:36:58:438&gt; CTableBuffer::Create()<br />&lt;2064 04-02-20 08:36:58:438&gt; CTableBuffer:<img src=’/community/emoticons/emotion-41.gif’ alt=’:Q’ />uery = ‘insert into schedule(schedule_id,schedule_set_id,shift_type_id,schedule_number,days_of_operation,is_dummy,amendment_number,previous_amendment,is_frozen,crew_number,modified) values (?,?,?,?,?,?,?,?,?,?,?)'<br />&lt;2064 04-02-20 08:36:58:438&gt; CDatabaseWriter:<img src=’/community/emoticons/emotion-4.gif’ alt=’:p‘ />rocessRecord – Length = 79, Size = 100<br />&lt;2064 04-02-20 08:36:58:438&gt; CDatabaseWriter::ApplyRecord (I)<br />&lt;2064 04-02-20 08:36:58:438&gt; CTableBuffer::Flush. Number of rows = 1<br /><br />*********************************************************************************<br />If I split the deleting transaction up, like <br /><br />begin tran<br />begin tran 1<br />…<br />commit tran 1<br />begin tran 2<br />…<br />commit tran 2<br />….<br />commit tran<br /><br />If currently it running on transaction 2, it is still holding the locks from tran 1 until the last commit happens.<br />
Have you ever checked execution plan for these update statements and how about indexes involved? Satya SKJ
Moderator
http://www.SQL-Server-Performance.Com/forum
This posting is provided “AS IS” with no rights for the sake of knowledge sharing.
quote:Originally posted by satya Have you ever checked execution plan for these update statements and how about indexes involved? Satya SKJ
Moderator
http://www.SQL-Server-Performance.Com/forum
This posting is provided “AS IS” with no rights for the sake of knowledge sharing.

Thanks for your advice. Most time the updats are done through primary key, and all the tables we set the primary keys as clustered index. We also have a scheduled task that will back up the database and check the database and index nightly. Due to our functionality, sometimes we have really large update transactions. so the locks will be hold for quite a long time. Do you know there is some way that we can split the large transaction but won’t involve in a lot of extra work for us to keep the data consistency?
Due to the clustered index on the inserted data, the performance is slow as compared.
Follow thru these links in this website for tips and tricks :
http://www.sql-server-performance.com/indexes_not_equal.asp
http://www.sql-server-performance.com/q&a116.asp HTH Satya SKJ
Moderator
http://www.SQL-Server-Performance.Com/forum
This posting is provided “AS IS” with no rights for the sake of knowledge sharing.
]]>