Управление оперативной памятью

Управление данными во внешней памяти.

Основные функции СУБД.

Современные СУБД обладают очень широким набором функций, и с каждым выпуском новой версии этот набор еще расширяется. Тем не менее, можно выделить несколько основных функций, которые должна реализовывать каждая СУБД.

Размер базы данных может достигать очень больших размеров, вплоть до терабайт. И управление хранением таких объемов данных на жестких дисках и других носителях – нетривиальная задача. При этом система хранения может организовываться разнообразно – начиная с единственного файла для настольных СУБД типа Microsoft Access, и заканчивая большими наборами файлов табличных пространств, сегментов отката и так далее в промышленных СУБД, таких как Oracle.

В выполнении этой функции СУБД может опираться на функции управления файлами, предоставляемые операционной системой, организовывать свои файлы средствами файловой системы, а может реализовывать и свои процедуры работы с носителями данных.

Так или иначе, от прикладных программистов уровень работы с файлами обычно скрыт, и учитывать использование тех или иных способов организации данных на носителях не требуется, оно не должно отражаться на схеме базы данных и процедурах для работы с ней.

Поскольку реальные базы данных довольно быстро достигают значительного размера, превышающего объем доступной оперативной памяти, то помимо управления хранением данных на диске остро встает вопрос повышения производительности. Понятно, что если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью устройства внешней памяти. Практически единственным способом повышения производительности является кэширование данных в оперативной памяти. Управление такими данными – задача тоже достаточно непростая. Конечно, в состав любой ОС входят средства управления памятью, но их использование возможно далеко не всегда. Мало того, скажем, в ОС семейства Windows использование системного управления памятью, предполагающее работу со swap-файлом может повлиять на производительность отрицательно. Так что СУБД реализует свои алгоритмы управления памятью, размещения в ней временных данных, отслеживания их актуальности и т. п.

Существует отдельная группа СУБД, так называемые in-memory СУБД, IMDS, которые ориентированы на работу только в оперативной памяти и организуют хранение данных непосредственно в ней. Очевидно, что даже при сегодняшних относительно низких ценах на микросхемы памяти, разместить таким образом значительный объем данных не получится. Тем не менее, с учетом значительно более высокой производительности, такие СУБД могут применяться в случаях, когда размер БД относительно невелик, зато обрабатываться она должна с максимальной скоростью.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: