Индексирование Oracle и производительность SP - PullRequest
1 голос
/ 26 августа 2011

Пытаюсь оптимизировать некоторые устаревшие SQL SP с представлением Oracle, которое построено из 6 таблиц, каждая из которых объединена одним и тем же полем, числовым идентификатором.Некоторые из таблиц в представлении имеют индекс, который является исключительно этим полем идентификатора, другие нет.

Если я создам индекс для оставшихся таблиц в представлении, используя только это поле, а затем выполню фактический запрос на выборку, используя это поле в качестве единственного параметра, улучшит ли это производительность?Я могу опубликовать s.proc, если это необходимо, поскольку в SP могут быть другие недостатки, которые не могут быть решены с помощью индексации.Запрос возвращает около 6 секунд, чтобы вернуть 1 строку, ни одна из таблиц не содержит большого количества записей, в любом случае, не более 100 000 записей.

Заранее спасибо,

Скотт

Ответы [ 2 ]

0 голосов
/ 26 августа 2011

Если поле идентификатора является первым столбцом в индексах (или единственным столбцом), то добавление индексов в столбец идентификаторов тех оставшихся таблиц, которые в них нуждаются, улучшит запрос, если вы возвращаете небольшое количество строк.

0 голосов
/ 26 августа 2011

Убедитесь, что каждая таблица в представлении имеет индекс, который начинается с поля id.Индекс может содержать больше полей, если поле id является первым.

Если это не помогает производительности, опубликуйте оператор select и план объяснения.

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