Использование секционирования и индексации для одного столбца в Oracle - PullRequest
0 голосов
/ 05 марта 2012

У нас есть дизайн базы данных, где у нас есть таблица, в которой у нас есть разделение на 1 день с интервалом по столбцу с именем «5mintime», и для того же столбца мы также создали индекс. Столбец «5 минут» может содержать данные, такие как 1 марта 2011 года 2 марта 2011 года, короче говоря, в нем нет компонента времени, и из пользовательского интерфейса пользователь также может выбрать минимальный срок только один день. Мой вопрос заключается в том, что при выполнении запросов select есть какое-либо преимущество, получаемое благодаря индексам, поскольку раздел уже существует, с другой стороны, если я удалю индексы, вставка будет происходить быстрее, поэтому любая помощь по этому вопросу будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 05 марта 2012

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

Вы можете проверить, используют ли SQL-запросы этот индекс, включив мониторинг:

alter index myindex monitoring usage;

, а затем проверьте, использовался ли он, запросив у него v$object_usage через некоторое время..

1 голос
/ 05 марта 2012

Если я вас правильно понимаю, то, думаю, индекс не нужен:
Локальный индекс индексируется для каждого раздела, который в вашем случае имеет одинаковое значение во всех строках (то есть: 1 марта 2011 года в разделе 1 марта 2011 года, 2 марта 2011 года в части 2 марта 2011 года и так далее).
Глобальный индекс на самом деле будет индексировать всю таблицу, но найдет целое разделение, что также бесполезно, так как у вас уже есть разделы ...

Но почему бы не проверить это?

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