Вопрос

Я пишу несколько новых SQL-запросов и хочу проверить планы запросов, которые оптимизатор запросов Oracle разработал бы в процессе производства.

В моей базе данных разработки нет ничего похожего на объемы данных производственной базы данных.

Как я могу экспортировать статистику базы данных из производственной базы данных и повторно импортировать их в базу данных разработки?У меня нет доступа к производственной базе данных, поэтому я не могу просто сгенерировать объяснительные планы по производству, не обращаясь к сторонней хостинговой организации.Это болезненно.Итак, мне нужна локальная база данных, которая в некотором роде является репрезентативной для производства, на которой я мог бы опробовать разные вещи.

Кроме того, это относится к устаревшему приложению.Я бы хотел "улучшить" схему, добавив соответствующие индексы.ограничения и т.д.

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

Если я добавлю индекс и повторно сгенерирую статистику в процессе разработки, то статистика будет сгенерирована по объемам данных разработки, что затруднит оценку влияния моих изменений на производство.

Есть ли у кого-нибудь какие-нибудь советы о том, как с этим справиться?Или это просто случай исправления неожиданного поведения, как только мы обнаружили его на производстве?У меня действительно есть промежуточная база данных с производственными томами, но опять же мне приходится обращаться к третьей стороне для выполнения запросов к ней, что является болезненным.Поэтому я ищу способы максимально исключить посредника.

Все это выполняется с использованием Oracle 9i.

Спасибо.

Это было полезно?

Решение

Смотрите документацию для пакетов DBMS_STATS.EXPORT_SCHEMA_STATS и DBMS_STATS.IMPORT_SCHEMA_STATS.Вам нужно будет попросить кого-нибудь с необходимыми привилегиями выполнить экспорт в производственную базу данных за вас, если у вас нет доступа.Если ваше оборудование для разработки существенно отличается от вашего производственного оборудования, вам также следует экспортировать / импортировать системную статистику с помощью процедур EXPORT /IMPORT_SYSTEM_STATS.

Не забудьте отключить все задания в базе данных разработки, которые пересчитывают статистику после того, как вы сделаете это.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top