Call now: 252-767-6166  
Oracle Training Oracle Support Development Oracle Apps

 E-mail Us
 Oracle Articles
New Oracle Articles

 Oracle Training
 Oracle Tips

 Oracle Forum
 Class Catalog

 Remote DBA
 Oracle Tuning
 Emergency 911
 RAC Support
 Apps Support
 Oracle Support

 SQL Tuning

 Oracle UNIX
 Oracle Linux
 Remote s
 Remote plans
 Application Server

 Oracle Forms
 Oracle Portal
 App Upgrades
 SQL Server
 Oracle Concepts
 Software Support

 Remote S


 Consulting Staff
 Consulting Prices
 Help Wanted!


 Oracle Posters
 Oracle Books

 Oracle Scripts

Don Burleson Blog 







Oracle read-only table tips

Oracle Database Tips by Donald BurlesonDecember 15, 2015

Question:  I need to drop an index in production, yet when I try to drop index, I get an ORA-00054 error that says that there are updates against the table:

ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified

How can I drop a production index while the system is running?

Answer:  First, see these notes on 11g using read only tables.

You need to schedule the ?drop index? for when there is low activity and notify the end-users about the scheduled maintenance.

Before 11g, you can mark the tablespace read-only for the duration of the drop index:

alter tablespace tab_ts read only

In 11g, you can mark the table as read-only to prevent updates during an index drop:

alter table mytab read only

You can verify that the table is read-only with this command:

   table_name, read_only
owner = ?myowner? and table_name = ?mytab?;

As an alternative to making the table read-only, you can create a temporary trigger to prevent updates:

create or replace trigger
   insert or update or delete
on mytab
raise_application_error (-999999, 'Table mytab is undergoing maintenance.  Try again later.');
end; /


Oracle read-only table performance

Because Oracle does not have the additional overhead of maintaining internal consistency, there may be a small, but measurable reduction in resource consumption. 

The Oracle 10g Database Administrator's Guide also suggests that read-only transactions will have faster performance:  

For better performance while accessing data in a read-only tablespace, you might want to issue a query that accesses all of the blocks of the tables in the tablespace just before making it read-only.

A simple query, such as SELECT COUNT (*), executed against each table will ensure that the data blocks in the tablespace can be subsequently accessed most efficiently. This eliminates the need for Oracle to check the status of the transactions that most recently modified the blocks.


These notes on Oracle read-only tablespaces and Performance suggest that super high-activity system may see gains.


Oracle read-only table tips

If you like Oracle tuning, you might enjoy my book "Oracle Tuning: The Definitive Reference", with 950 pages of tuning tips and scripts. 

You can buy it direct from the publisher for 30%-off and get instant access to the code depot of Oracle tuning scripts.



Oracle Training at Sea
oracle dba poster

Follow us on Twitter 
Oracle performance tuning software 
Oracle Linux poster


Burleson is the American Team

Note: This Oracle documentation was created as a support and Oracle training reference for use by our DBA performance tuning consulting professionals.  Feel free to ask questions on our Oracle forum.

Verify experience! Anyone considering using the services of an Oracle support expert should independently investigate their credentials and experience, and not rely on advertisements and self-proclaimed expertise. All legitimate Oracle experts publish their Oracle qualifications.

Errata?  Oracle technology is changing and we strive to update our BC Oracle support information.  If you find an error or have a suggestion for improving our content, we would appreciate your feedback.  Just  e-mail:  

and include the URL for the page.


Burleson Consulting

The Oracle of Database Support

Oracle Performance Tuning

Remote DBA Services


Copyright © 1996 -  2020

All rights reserved by Burleson

Oracle ® is the registered trademark of Oracle Corporation.