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

ТЕМА:

insert into table select oracle 12 года 1 мес. назад #4221

  •  аватар Автор темы
  • Посетитель
  • Посетитель
итак, есть несколько таблиц, которые хотелось бы "копировать" по ночам в другую базу.
одна табличка, полмиллиона записей, заливалась 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 12 года 1 мес. назад #4222

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

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




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

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

Re: insert into table select oracle 12 года 1 мес. назад #4223

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

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

Re: insert into table select oracle 12 года 1 мес. назад #4224

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

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

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

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

Re: insert into table select oracle 12 года 1 мес. назад #4225

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

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


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

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

Re: insert into table select oracle 12 года 1 мес. назад #4226

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

Loldor пишет:

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


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

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

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

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

  • Страница:
  • 1
  • 2
Время создания страницы: 0.194 секунд