Getting Started with Adobe After Effects - Part 6: Motion Blur


Upload Image Close it
Select File

Learn about SQL Server DBA, SQL Server database performance,SQL Server optimisation,database tuning,t-sql,ssis
Browse by Tags · View All
DBA Scripts 51
performance 37
SQL Server 29
Object Management 24
#SQLServer 24
Backup and Restore 20
Security Management 20
Powershell 17
Indexes 14
DBA 14

Archive · View All
June 2011 38
January 2011 33
May 2011 32
August 2011 27
July 2011 26
January 2012 24
February 2011 19
April 2011 19
March 2011 17
March 2012 17

Jack Vamvas's Blog

Disable Index and Rebuild Index for Updates on very large tables

Jul 26 2011 5:27AM by Jack Vamvas   

This Performance Analysis Case Study looks at UPDATE statements on very large tables and how to use Disable Index and Rebuild Index for performance gains.

A developer was executing an UPDATE statement on an ETL staging table. The table is ~ 550 million rows. The estimated amounts of rows to update was ~ 11 million.

The purpose of the statement is to clean data, prior to UPDATE on main production table.

A look at the Execution Plan using SET SHOWPLAN_XML ON, revealed a Table Scan on the staging table.

The DDL of the Staging table indicated no Index Seek on table

I created a Clustered Index, which still forced a Scan. Looking at the data and statement – a Scan was required, unless I added a WHERE clause.

There were 8 Non-Clustered Indexes on the target table. I disabled them and this solved the problem. The UPDATE went from 63 minutes down to 11 minutes.

I executed Index Rebuilds after the UPDATE.

Notes:

  1. If the table has too many indices, it is better to disable them during update and enable it again after update.
  2. Try and use the WHERE clause as this limits the data and enable it again after update.
  3. Batch Updates.
  4. Ensure all login are disconnected.
  5. Turn off services connecting to database.
----Disable Index 
ALTER INDEX [NC_myindex] ON [dbo].[VeryLargeTable] DISABLE
GO
----Enable Index - 
ALTER INDEX [NC_myIndex] ON [dbo].[VeryLargeTable] 
	REBUILD  WITH ( 
		PAD_INDEX  = OFF, 
		STATISTICS_NORECOMPUTE  = OFF, 
		ALLOW_ROW_LOCKS  = ON, 
		ALLOW_PAGE_LOCKS  = ON, 
		ONLINE = OFF, 
		SORT_IN_TEMPDB = OFF )
GO

Notes:

  1. If the table has too many indices, it is better to disable them during update and enable it again after update.
  2. Try and use the WHERE clause as this limits the data and enable it again after update.
  3. Batch Updates.
  4. Ensure all login are disconnected.
  5. Turn off services connecting to database.

Republished from http://www.sqlserver-dba.com/.


Republished from SQL Server DBA [65 clicks].  Read the original version here [32134 clicks].

Jack Vamvas
5 · 27% · 8528
1
 
0
Lifesaver
 
0
Refreshed
 
0
Learned
 
0
Incorrect



Submit

Your Comment


Sign Up or Login to post a comment.

"Disable Index and Rebuild Index for Updates on very large tables" rated 5 out of 5 by 1 readers
Disable Index and Rebuild Index for Updates on very large tables , 5.0 out of 5 based on 1 ratings
    Copyright © Rivera Informatic Private Ltd Contact us      Privacy Policy      Terms of use      Report Abuse      Advertising      [ZULU1097]