2009-03-22 3 views
1

Вопрос в значительной степени суммирует это, но я предоставлю несколько подробностей.Oracle 9i: Как определить, используя метаданные, независимо от того, кластеризуется или нет?

Я могу почти с уверенностью предположить, что любой индекс первичного ключа в базе данных Oracle кластеризуется. Но я не могу предположить. Кроме того, пользователь мог создать кластеризованный индекс, который не был основным ключом. Если это так, мне бы очень хотелось узнать.

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

(И, по обыкновению, Google был как рыться на свалке, в поисках старинных Action Comics # 1, что ваша мама через, потому что она думала, что это бесполезно в то время.)

Спасибо!

ответ

3

Oracle не имеет понятия «кластерные индексы», как это делает SQL Server. В общем, таблица Oracle - это «кучи» с данными, хранящимися в определенном порядке. Существует таблица особого типа, называемая таблицей INDEX ORGANIZED, которая (как следует из названия) представляет собой таблицу, которая организована как индекс. Однако в Oracle большинство таблиц будет не быть организованным индексом, тогда как я понимаю, что большинство таблиц в SQL Server do имеют кластеризованный индекс.

Не испытывайте соблазн объявить все ваши таблицы Oracle в качестве индекса, организованного в попытке эмулировать SQL Server; то, что подходит для одной СУБД, не обязательно правильно для другого. Я предлагаю вам прочитать Oracle Database Concepts guide, чтобы узнать, как работает Oracle.

Таблицы, упорядоченные по индексу, идентифицируются IOT_TYPE = 'IOT' в ALL_TABLES и USER_TABLES.

2

Что такое кластерный индекс в мире SQL Server, в мире Oracle называется индексированной организованной таблицей. Метаданные таблицы доступны в системных представлениях all_tables или user_tables described here. Моя догадка, после того, как эта ссылка была связана с тем, что вы можете определить, что таблица организована по индексам, проверяя, не является ли столбец IOT_TYPE ненулевым.