Может ли ORA_HASH увеличить производительность соединения / обработки
У меня есть (относительно) основные права доступа к хранилищу данных 11G. Некоторая обработка, которую я выполняю, включает в себя соединение больших таблиц с большими таблицами с некоторыми вычислениями или добавление дополнительных столбцов в базовый набор данных. Как правило, данные вносятся в мою собственную схему для расчета, но вычислительная мощность хранилища ограничена, и некоторые запросы занимают много времени, так как большая часть работы заключается в воздействии или объединении данных во все строки таблицы (много полных сканирований таблицы в плане объяснения!).
У меня вопрос: есть ли у меня ссылочный номер в качестве первичного ключа в двух таблицах, если я также использую хешированную версию этого ссылочного номера, увижу ли я увеличение производительности?
Если нет, есть ли другой способ повысить производительность в этих ситуациях?
1 ответ
Если вы равносильны, тогда вы, вероятно, все равно получаете хеш-соединение, и преобразование ключей соединения в значения хеша подразумевается в этом.
Наилучший метод для улучшения производительности выравнивания между большими таблицами - это хэширование их обоих на ключ (ы) соединения.
Соединение по разделам дает преимущества в производительности, предотвращая разлив хеш-таблиц на диск, если они превышают определенный размер, поэтому вы выбираете количество разделов, чтобы попытаться сохранить выделение памяти при хеш-соединении на низком уровне.