Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > Проблемы с большим объёмом данных в Access


Автор: reggga 2.4.2011, 17:45
Здравствуйте! У меня проблема. В БД Access я создала две таблицы. 1-ая небольшая (Название_парам., Описание, Признак).
А 2-ая (Название_парам., Время, Значение) очень большая (больше 5 млн записей).
Во-первых, не удаётся поменять тип данных во 2-й таблице. "Не хватает места на диске или в памяти." Может, разбить её на несколько таблиц? Можно так сделать не вручную?
Во-вторых, чтобы связать таблицы, нужно, чтобы у них были ключевые поля. Я так понимаю, у меня это должны быть поля Название_парам. Но во 2-й таблице значения данного поля повторяются. Что же мне делать????  smile 

Автор: bopoha 2.4.2011, 18:02
Цитата(reggga @  2.4.2011,  17:45 Найти цитируемый пост)
Во-вторых, чтобы связать таблицы, нужно, чтобы у них были ключевые поля. Я так понимаю, у меня это должны быть поля Название_парам. Но во 2-й таблице значения данного поля повторяются. Что же мне делать????

reggga, значит во второй таблице это не ключевое поле, а внешний ключ. Стоит создать еще одно поле счетчик, которое и будет ключевым.

Цитата(reggga @  2.4.2011,  17:45 Найти цитируемый пост)
А 2-ая (Название_парам., Время, Значение) очень большая (больше 5 млн записей).

MS Access не очень то расчитан на такие объемы. Стоит посмотреть в сторону mySQL, Postgress и пр.

Автор: Данкинг 2.4.2011, 18:59
Цитата(reggga @  2.4.2011,  18:45 Найти цитируемый пост)
очень большая (больше 5 млн записей).

Это явно не для Access'а.
Цитата(reggga @  2.4.2011,  18:45 Найти цитируемый пост)
Во-первых, не удаётся поменять тип данных во 2-й таблице. "Не хватает места на диске или в памяти." 

Естественно. Такое часто бывает даже когда в таблице записей раз в 10 меньше.
Цитата(reggga @  2.4.2011,  18:45 Найти цитируемый пост)
Может, разбить её на несколько таблиц? Можно так сделать не вручную?

Если бы в таблице был ключ, т.е. уникальное числовое поле, то можно было бы разбить запросами на основе диапазонов ключа. А так - ну, программу пиши для разбивания на несколько таблиц.

Автор: Akina 2.4.2011, 19:16
Цитата(reggga @  2.4.2011,  18:45 Найти цитируемый пост)
очень большая (больше 5 млн записей).

Количества записей недостаточно. Если каждая запись по полсотни байт - то это не такая уж и большая таблица. У меня есть БД с таблицами по 35-40 млн. записей, есть даже БД с таблицей в 270 млн. записей - и никаких проблем я не испытываю. Вопрос тюнинга.

Цитата(reggga @  2.4.2011,  18:45 Найти цитируемый пост)
 не удаётся поменять тип данных во 2-й таблице. "Не хватает места на диске или в памяти.

Создайте шаблон новой структуры, скопируйте туда записи запросом, удалите исходную таблицу, переименуйте новую.

Цитата(reggga @  2.4.2011,  18:45 Найти цитируемый пост)
чтобы связать таблицы, нужно, чтобы у них были ключевые поля

Ключевые поля и индексы должны быть в каждой таблице. Даже если их не надо ни с чем связывать.

Цитата(reggga @  2.4.2011,  18:45 Найти цитируемый пост)
Что же мне делать?

Во-первых, почитать хоть что-то по проектированию баз данных и по нормализации. После этого начать БД заново, с нуля, но уже по науке, а не по наитию.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)