Должен ли я использовать раздел оракула, если мне нужно выполнить запрос, используя столбец, не используемый в разделе раздела
Вероятно, нет. Разбиение - это, прежде всего, инструмент управления, предназначенный для обработки больших объемов данных и обеспечения их доступности. Влияние производительности на разделы может быть как отрицательным, так и положительным, особенно для запросов, которые не фильтруются по ключу разделения (как в случае с вашим запросом по номеру мобильного телефона).
В любом случае, я сомневаюсь, что разбиение на source
значительно улучшит производительность любых ваших запросов. Это просто недостаточно избирательно для сокращения разделов, чтобы дать заметное преимущество.
Что может быть более полезным, так это составные индексы на (source, customerid)
и (source, accountid)
с compress 1
в обоих случаях. Стоит сжать ведущий столбец индекса именно потому, что source
настолько не селективен. Также индекс для одного столбца в (mobile)
(без сжатия).
Кстати, почему source
определяется как varchar2 (100) ? Это кажется безумно долгим для того, что является трехвалентным идентификатором. Это должен быть код из одного (или двух, или трех) символов (с таблицей поиска для полного описания, если требуется). Я думаю, что это может объяснить, почему «вставка записей без раздела занимает много времени» . Решение этой проблемы должно стать центром ваших усилий.