С одной стороны, что касается места для хранения в базе данных, это нормально.Поля VARCHAR2 занимают столько места, сколько требуется для фактических данных, поэтому, если у вас есть только 100 символов, в базе данных будет использоваться только пространство, необходимое для этих 100 символов.
С другой стороны, когда вы прочитайте данные из базы данных, у вас могут возникнуть проблемы.Поскольку программа, считывающая данные, не знает, сколько символов на самом деле хранится в каждой строке, она может выделить все 2000 символов пространства, чтобы при передаче данных из базы данных в память программы это пространство было доступно.Для двух миллионов записей, которые будут занимать около четырех гигабайт памяти, если все эти строки будут считаны в память одновременно.
Сжимая руку, у вас может не быть большого выбора.Если вам нужно хранить строки символов этой длины в столбце, сделайте столбец VARCHAR2(2000)
(или 4000, или до 32 КБ в новых версиях Oracle).Просто знайте о потенциальных проблемах и не удивляйтесь, если возникнут проблемы с памятью.Помните, что аппаратные средства дешевы - время программиста дорого стоит.
(Кстати, мем «одна рука / другая рука / захватывающая рука» происходит из книги Ларри Найвена и Джерри Пурнелла «Мот в глазу богов»).Если вы фанат научной фантастики и не читали ее, вам следует: -).