Можно не соглашаться со мной, однако,
- Использование памяти должно быть с умом, так как размер 2ГБ не является столь распространённым среди ПК. И не факт , что система сможет себе позволить отдать кусок памяти размером более 1.2 ГБ.
Не стоит также забывать, что перерасход памяти ведёт к интенсивному использованию файла/раздела подкачки системой, что резко снизит её производительность вместе с программой. - В БД используются различные техники оптимизации расхода памяти и быстродействия, использующие особенности систем, могущие оказаться гораздо эффективнее многочисленных сортировок с переразмещениями данных в памяти твоей программы по скорости и объёму потребляемой памяти. Создание индексов нужных полей позволит находить нужные записи одним запросом.
Во всяком случае, не стоит отказывать себе в проверке БД на деле, особенно, если данные используются на продолжительный срок. Кроме того, SQLite, к примеру, позволяет держать данные полностью в памяти, если это так нужно (плюс она ещё и бесплатна).
Насчёт природы происхождения данных - ничего не было сказано. Будем считать, что данные случайны. Если это не так, то стоит перерассматривать дизайн программы.