Oracle 9i: как определить, используя метаданные, кластеризован ли индекс? - PullRequest
1 голос
/ 23 марта 2009

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

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

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

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

Спасибо!

Ответы [ 2 ]

3 голосов
/ 23 марта 2009

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

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

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

2 голосов
/ 23 марта 2009

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

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