Я сражаюсь с случаем глупости/упрямства клиентов здесь. У нас есть приложение для поиска розничного покупателя по различным критериям. Наиболее распространенным видом, который мы видим, является некоторая комбинация (частичная) фамилии и (частичный) почтовый код.индекс oracle для похожих запросов
Когда они вводят полный почтовый индекс, он работает замечательно хорошо. Проблема в том, что они иногда предпочитают вводить эффективный почтовый код, например, '3%'
.
Любое чудо, чтобы преодолеть нашу глупость наших клиентов?
ETA: В этой конкретной собаке есть две таблицы операций: клиенты и адреса. Я - администратор базы данных, участвующий в поддержке этого приложения, а не на стороне разработки. У меня нет возможности изменить код (хотя я могу передать предложения в этом ключе), но у меня есть некоторая свобода в улучшении индексации.
У клиентов есть 22 миллиона строк; адресов - 23 миллиона.
«Глупость» может быть суровым словом, но я не понимаю, почему вы попытаетесь найти клиента по почтовому индексу, например «3%». Я имею в виду, сколько усилий стоит набрать полный почтовый индекс или почтовый индекс?
Когда клиент глуп, каково влияние? Разрывы приложений? Низкая производительность? Что-то другое? – BobC
В зависимости от вашей веры, вы можете молиться или вы можете предположить, что чудес не существует. Кроме того, то, что вы представили до сих пор, не доказывает, что ваш клиент глуп без разумных сомнений; было бы лучше оставить это. Теперь: если у вас есть соответствующие индексы, убедитесь, что статистика обновлена. Кроме того, распределение почтовых кодов может быть искажено; вам может понадобиться использовать гистограммы. – mathguy
Кстати, снова взглянув на ваш заголовок: если у вас есть индекс почтового кода, оптимизатор может использовать его в запросах с такими условиями, как 'like '3%'' - до тех пор, пока подстановочный знак находится в конце. Он не сможет использовать его для такого состояния, как 'like '% 3'', но это не ** ваш случай. Таким образом, проблема не в индексе; проблемой может быть статистика и, возможно, дико неравномерное распределение почтовых кодов. – mathguy