Как экспортировать статистику Oracle
Вопрос
Я пишу несколько новых SQL-запросов и хочу проверить планы запросов, которые оптимизатор запросов Oracle разработал бы в процессе производства.
В моей базе данных разработки нет ничего похожего на объемы данных производственной базы данных.
Как я могу экспортировать статистику базы данных из производственной базы данных и повторно импортировать их в базу данных разработки?У меня нет доступа к производственной базе данных, поэтому я не могу просто сгенерировать объяснительные планы по производству, не обращаясь к сторонней хостинговой организации.Это болезненно.Итак, мне нужна локальная база данных, которая в некотором роде является репрезентативной для производства, на которой я мог бы опробовать разные вещи.
Кроме того, это относится к устаревшему приложению.Я бы хотел "улучшить" схему, добавив соответствующие индексы.ограничения и т.д.
Сначала мне нужно сделать это в моей базе данных разработки, прежде чем переходить к тестированию и производству.
Если я добавлю индекс и повторно сгенерирую статистику в процессе разработки, то статистика будет сгенерирована по объемам данных разработки, что затруднит оценку влияния моих изменений на производство.
Есть ли у кого-нибудь какие-нибудь советы о том, как с этим справиться?Или это просто случай исправления неожиданного поведения, как только мы обнаружили его на производстве?У меня действительно есть промежуточная база данных с производственными томами, но опять же мне приходится обращаться к третьей стороне для выполнения запросов к ней, что является болезненным.Поэтому я ищу способы максимально исключить посредника.
Все это выполняется с использованием Oracle 9i.
Спасибо.
Решение
Смотрите документацию для пакетов DBMS_STATS.EXPORT_SCHEMA_STATS и DBMS_STATS.IMPORT_SCHEMA_STATS.Вам нужно будет попросить кого-нибудь с необходимыми привилегиями выполнить экспорт в производственную базу данных за вас, если у вас нет доступа.Если ваше оборудование для разработки существенно отличается от вашего производственного оборудования, вам также следует экспортировать / импортировать системную статистику с помощью процедур EXPORT /IMPORT_SYSTEM_STATS.
Не забудьте отключить все задания в базе данных разработки, которые пересчитывают статистику после того, как вы сделаете это.