Проверяется тестом memtest.
Перераспределение внешней памяти, занимаемой файлами базы данных, может происходить только в двух случаях: расширении таблиц и удалении таблиц. При изменении содержимого таблиц (удалении данных) перераспределения не происходит. Для тестирования освобождения внешней памяти анализируется содержимое памяти до, и после удаления некоторой таблицы.
Реализация:
на гибком диске создается БД. Очередь файлов БД устанавливается равной 5 файлам;
в процессе работы теста создаются таблицы TEST1
, TEST2
, TEST3
, TEST4
, состоящие из 1 столбца типа char(20). В таблицу TEST1
заносится строка TESTING
. С помощью последующего открытия таблиц TEST2
, TEST3
, TEST4
таблица TEST1
вытесняется на диск;
производится сканирование диска для определения количества строк TESTING
;
производится удаление таблицы TEST1
;
повторяется сканирование диска. Если количество строк TESTING
не изменилось, значит, очистка памяти не происходит, иначе остаточная информация удаляется. Т.к. обрабатываемая информация хранится в системном журнале и в файлах таблицы БД, то при удалении таблицы выполняется очистка записанной в её файлах информации. Однако эта информация может некоторое время оставаться в системном журнале. Именно поэтому в данном тесте после удаления таблицы количество строк TESTING уменьшается, но не становится равным 0. Файлы системного журнала не перераспределяются при удалении таблицы, и в них остается остаточная информация до тех пор, пока она не будет перезаписана новой информацией.
При выполнении теста в ОС должны быть загружены драйвера работы с гибким диском (devb-fdc для ОС QNX, floppy – для ОС Linux). Все компьютеры должны быть оборудованы приводом гибкого диска.
При использовании для проверки устройств, отличных от гибкого диска, может потребоваться изменение исходных текстов memtest2 и последующая компиляция тестов.