Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Администрирование Oracle Database:
- Установка и настройка базы данных
- Обновление, применение патчей
- Оптимизация, настройка производительности
- Обучение, подготовка персонала, оптимизация
  • Страница:
  • 1
  • 2

ТЕМА: insert into table select oracle

insert into table select oracle 22 янв 2012 11:26 #4221

  • Ilfoer
  • Ilfoer аватар Автор темы
  • Посетитель
  • Посетитель
итак, есть несколько таблиц, которые хотелось бы "копировать" по ночам в другую базу.
одна табличка, полмиллиона записей, заливалась 2 часа.
подумал маленько и сделал так:
1. таблица, делаем TRUNCATE
2. таблица, делаем NOLOGGING
3. выбираю все индексы на таблицу, делаю NOLOGGING и UNUSABLE
4. заливаю данные
insert into table 
select * from table@DB2
5. возвращаю свойства таблиц и индексов

ругается на
ORA-01502: индекс 'BAANDB.TTIBOM010020$IDX1' или часть такого индекса находится в неиспользуемом состоянии



я так понимаю, нужно drop-ать индексы (?), а после заливки заново создавать.
Так вот вопрос.
Где удобнее брать скрипты по созданию индексов (существующих в БД), где они хранятся?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: insert into table select oracle 22 янв 2012 11:27 #4222

  • Stivin
  • Stivin аватар
  • Посетитель
  • Посетитель

Где удобнее брать скрипты по созданию индексов (существующих в БД), где они хранятся?




select dbms_metadata.get_ddl('INDEX','INDEX_NAME','OWNER') from dual;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: insert into table select oracle 22 янв 2012 11:28 #4223

  • Ilfoer
  • Ilfoer аватар Автор темы
  • Посетитель
  • Посетитель
замечательно!
а если используется 8i ?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: insert into table select oracle 22 янв 2012 11:29 #4224

  • Stivin
  • Stivin аватар
  • Посетитель
  • Посетитель

Ilfoer пишет: замечательно!
а если используется 8i ?

select * from dict where table_name like '%IND%';

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: insert into table select oracle 22 янв 2012 11:32 #4225

  • Loldor
  • Loldor аватар
  • Посетитель
  • Посетитель

я так понимаю, нужно drop-ать индексы (?), а после заливки заново создавать.


Нет. Ты забыл самую главную вещь, insert /*+ append */ into table. После этого просто делаешь индексам rebuild.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: insert into table select oracle 22 янв 2012 11:33 #4226

  • Girdal
  • Girdal аватар
  • Посетитель
  • Посетитель

Loldor пишет:

я так понимаю, нужно drop-ать индексы (?), а после заливки заново создавать.


Нет. Ты забыл самую главную вещь, insert /*+ append */ into table. После этого просто делаешь индексам rebuild.

ORA-26026: уникальный индекс . не может использоваться

можно побороть?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2