dropping an index inside a transaction

Started by Andy Chambersabout 14 years ago3 messagesgeneral
Jump to latest
#1Andy Chambers
achambers@mcna.net

Hi All,

If one drops an index inside a transaction, is that index still usable
by other transactions? My use-case is loading millions of records
into a heavily indexed table. I'd like to speed up the load by
temporarily dropping the indices. I'm wondering if I can do this
inside a transaction so that the rest of the application can still
benefit from the indices.

Cheers,
Andy

--
Andy Chambers
Software Engineer
(e) achambers@mcna.net

#2Scott Marlowe
scott.marlowe@gmail.com
In reply to: Andy Chambers (#1)
Re: dropping an index inside a transaction
Show quoted text

On Sat, Mar 17, 2012 at 8:37 PM, Andy Chambers <achambers@mcna.net> wrote:

Hi All,

If one drops an index inside a transaction, is that index still usable
by other transactions?  My use-case is loading millions of records
into a heavily indexed table.  I'd like to speed up the load by
temporarily dropping the indices.  I'm wondering if I can do this
inside a transaction so that the rest of the application can still
benefit from the indices.

#3Scott Marlowe
scott.marlowe@gmail.com
In reply to: Andy Chambers (#1)
Re: dropping an index inside a transaction

On Sat, Mar 17, 2012 at 8:37 PM, Andy Chambers <achambers@mcna.net> wrote:

Hi All,

If one drops an index inside a transaction, is that index still usable
by other transactions?  My use-case is loading millions of records
into a heavily indexed table.  I'd like to speed up the load by
temporarily dropping the indices.  I'm wondering if I can do this
inside a transaction so that the rest of the application can still
benefit from the indices.

If another transaction is already relying on the index you can't drop
it. Once you drop it in a transaction all other queries against the
tables will be waiting behind the exclusive lock on the transaction to
finish to access the table.