Уникальный индекс для каждого столбца - PullRequest
0 голосов
/ 16 июля 2010

Итак, я смотрю на этот огромный оракул 10г. Я посмотрел на его индексы и увидел, что ВСЕ столбцы находятся под одним уникальным индексом. Предоставляет ли это на самом деле какие-либо преимущества в производительности?

Ответы [ 2 ]

2 голосов
/ 16 июля 2010

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

На первый взгляд кажется, что это должно было быть создано как таблица INDEX ORGANIZED.

0 голосов
/ 17 июля 2010

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

  • Любое обновление таблицы приведет к обновлению этого индекса. В «нормальной» таблице (слово «обычный» используется очень свободно) будут некоторые поля, не проиндексированные. Если обновлено одно из этих полей, оно будет более эффективным, поскольку не нужно обновлять индексы.
  • Описанный индекс несколько ограничен в оптимизации запросов. Например, предположим, что таблица имеет поля a, b, c, d и e, и что индекс определен с полями в этом порядке. Любой запрос, который не ссылается на a в предложении WHERE, не может использовать этот индекс.
  • В зависимости от количества и размера используемых полей такой индекс может иметь очень большие ключи. С большими ключами это означает, что на каждой странице может быть сохранено меньше ключей, и поэтому обновление индекса означает, что будет задействовано больше операций чтения и записи страницы.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...