У меня есть объем данных Oracle, который, как я думаю, вызван проблемой представления данных. У меня есть иерархия, состоящая из семи разных списков, и вам нужно сохранить все уникальные потенциальные комбинации этих элементов. Мне нужно сохранить все возможные комбинации, потому что мне нужно хранить дополнительную информацию вместе с ними.Oracle, представляющий иерархию комбинаций данных
Исторически сложилось так, что мы управляем четырьмя списками, которые пришли к нескольким тысячам комбинаций. Это было прекрасно, но требования изменились, поскольку они привыкли делать, и теперь мы запускаем семь списков. В моей реальной среде списки хранят от 20 до 200 элементов. Общее количество комбинаций для этого сейчас, невероятно, составляет около 350 миллиардов.
В качестве примера того, что мы пытаемся представить с этим, вы могли бы иметь выбор списков, как:
Цвета: красный, зеленый, синий
фигуры: круг, квадрат, треугольник
Вкусы: Персик, банан, малин
Они будут храниться в виде отдельных таблиц в Oracle, как цвет, форма, ароматизаторы и т.д., и что мы будем делать это умножая их все вместе (через декартовый присоединиться) для получения таблицы взорванных тел: Thi s - это то, что мы храним в Oracle на данный момент.
COLOUR SHAPE FLAVOUR DATA_1 DATA_2
Red Circle Peach -- these hold additional information
Red Circle Banana
Red Circle Raspberry
Red Square Peach
Red Square Banana
...
и так далее.
Мы обнаружили, что мы не можем хранить миллиарды записей в таблице Oracle и выполнять любую операцию, выполняемую на них своевременно. Я пытался думать о разных способах хранения этой информации, но мой мозг постоянно забивает количество комбинаций. Есть ли что-нибудь, что я могу сделать, чтобы хранить записи по-другому? Принимая во внимание, что это все уникальные комбинации, нам нужно хранить данные вместе с ними.
Спасибо за помощь!
Вам действительно нужно хранить данные о каждой возможной комбинации? Где эти 350 миллиардов единиц информации (или 700 миллиардов, если вы храните по два для каждого)? Если вы этого не сделаете, и значительная часть ваших полей данных на самом деле равна нулю, то насколько велика будет разреженное представление - если вы только сохраняете записи по мере необходимости, когда данные существуют для присоединения к комбинации? –
@AlexPoole Мы не думаем, что можем использовать разреженное представление - ни одно из полей данных не будет равно нулю, и пользователь может запросить информацию о любой из комбинаций по желанию. – Kieran