Тема тестирования задач Warehousing весьма обширная и нетривиальная. Здесь речь пойдет о создании таблиц с целью протестировать свой скрипт перед тем, как отдать этот скрипт на ревью.
Тестировать скрипт придется либо в тестовой среде либо в своей персональной схеме в продуктовой среде.
В тестовой среде будет хилый сервер и маленький объём данных. Не стоит рассчитывать на качественное тестирование на маленьких объёмах данных.
В продуктовой среде в своей персональной схеме будут другие ограничения. Во-первых, полный доступ только к своим объектам, которые созданы в своей схеме, к остальным объектам доступ только на чтение. Во-вторых, в нашем расположении будет небольшой доступный объём места на диске для создания таблиц (и индексов) и наполнения их данными, например, 20Гб. Если размер таблицы, которую необходимо скопировать больше 20 Гб, то можно скопировать какой-либо её раздел (partition).
При тестировании в продуктовой среде необходимо будет создать несколько таблиц в своей схеме и проводить над ними DML операции, отмечая время выполнения каждой из них.
Объем информации, который можно записать в своей схеме можно узнать из представления dba_ts_quotas по имени своего пользователя.
max_bytes - указывает на максимальный выделенный объём в байтах в своей схеме;
bytes - указывает на то, сколько байт уже занято;
Так же из этого представления можно узнать наименование tablespace, в котором будут создаваться таблицы и индексы. У tablespace есть ограничение на объём информации и это надо обязательно учитывать, когда собираемся создать копию таблицы. Доступный объём можно узнать из следующего запроса:
По свойствам tablespace можно узнать важные параметры, которые будут по умолчанию применяться к создаваемым таблицам: включены ли компрессия и логирование. Если эти функции включены, то на создание больших таблиц будет уходить много времени. Эти параметры можно узнать из представления:
По свойствам tablespace можно узнать важные параметры, которые будут по умолчанию применяться к создаваемым таблицам: включены ли компрессия и логирование. Если эти функции включены, то на создание больших таблиц будет уходить много времени. Эти параметры можно узнать из представления:

В том случае, если эти функции включены, то при создании таблиц для тестирования следует отключать их:

Если в создаваемой тестовой таблице данные не планируется обновлять, обязательно указываем pctfree 0. Таким образом мы сэкономим место на диске. Если данные в тестовой таблице будут изменяться, то можно задать pctfree 2.
Для оценки времени выполнения скрипта, вполне достаточно перенести в свою схему только одну партицию огромной таблицы. Оценить время выполнения скрипта на одной партиции и увеличив это время на количество партиций, можно получить примерное время выполнения скрипта над всеми разделами таблицы. Если при обновлении данных будут использоваться индексы, то необходимо также создать их в тестовой таблице.
По окончании тестирования в продуктовой среде необходимо удалить свои тестовые таблицы с опцией purge. Или если забыли дописать эту опцию к drop, необходимо выполнить дополнительную команду: purge recyclebin.
Комментариев нет:
Отправить комментарий