Добавить индексы к столбцам в удаленной таблице - Oracle - PullRequest
0 голосов
/ 29 июля 2011

Запрашиваю удаленную базу данных, используя DBLink. Теперь я хотел бы ускорить запрос, как я могу добавить индексы в несколько столбцов в удаленной таблице. Буду признателен, если кто-нибудь может дать какие-либо рекомендации примерно так же.

Ответы [ 5 ]

3 голосов
/ 29 июля 2011

Вы можете использовать пакеты DBMS_JOB или DBMS_SCHEDULER в удаленной базе данных, чтобы запланировать задание с выполнением DDL.

Но учтите это , если Oracle выдает исключение для DDL по ссылкам базы данных, тамдолжно быть хорошая причина для этого, верно?Вы не хотите, чтобы кто-нибудь связывался с вашей схемой удаленно по ссылке в базе данных.Поэтому вместо этого поговорите с удаленным администратором базы данных и попытайтесь найти с ним решения.

2 голосов
/ 29 июля 2011

Вы можете создать материализованное представление в удаленной базе данных на основе вашего запроса, добавить к нему ваши предпочтительные индексы и затем, если вам это нужно, создать синоним для этого материализованного представления.

2 голосов
/ 29 июля 2011

это нельзя сделать через dblink (даже если ваша dblink использует схему-владелец), вы увидите

ORA-02021: DDL operations are not allowed on a remote database
1 голос
/ 29 июля 2011

вы можете создать индексы в удаленной базе данных и построить свой запрос в виде представления (конечно, в удаленной базе данных).таким образом, удаленная база данных выполнит запрос, используя все методы, которые он получил (например, индексы), и вернет вам только нужные результаты.

1 голос
/ 29 июля 2011

Джон, Хорошее место для начала - следующая документация Oracle по "Настройка распределенных запросов".

http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/ds_appdev004.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...