Как сравнить выступления двух баз данных
-
16-10-2019 - |
Вопрос
Есть два сервера базы данных, и я хочу сравнить их выступления.
Оба имеют операционную систему Windows и и базу данных Oracle (10.2.0.4 и 11.0.2).
Оба являются базами данных OLAP с 15-20 пользователями каждый. Hardwares разные, но у меня мало информации о конфигурациях.
На них есть похожие таблицы, и я использовал Объясните план Чтобы сравнить производительность запуска те же запросы SQL с точно такими же таблицами. (58 млн рядов, 60 столбцов).
я использовал select * from TABLE
а также select count(*) from TABLE
Один объясняющий план показывает 00:35:00, а другие показывают 01:45:00 для столбца времени.
Я хочу узнать, если сравнивать планы, достаточно для сравнения выступлений, а если не то, что мне делать?
Решение
Вы не можете сравнить производительность 2 баз данных, просто посмотрев на их планы SQL. Те же вопросы могут иметь очень разные планы. Когда версии разные вычисления разных вычислений для стоимости разные. План, которому следует запрос в исполнении, вполне может отличаться от плана, который вы получаете из объяснения плана от вашего клиента.
Единственный способ сравнить производительность - это измерить выполнение запросов или процессов и сравнить эти сроки. Вы можете использовать AWR для сравнения производительности базы данных. Определенная рабочая нагрузка генерирует определенную, хотя и потребляет более или менее DBTIME. Если DBTIME, потраченный и прошедшее время вашей работы ниже, вы можете с уверенностью сказать, что производительность в этой базе данных лучше по сравнению с тем, где время выше.
В 11G, в соответствии с включенными задачами автоматической настройки и включенными профилями SQL Auto, вполне может быть, что следующий прогон уже показывает лучшие времена.
Другие советы
Способ сделать это с Повторите в базе данных, используя реальную рабочую нагрузку, полученную из вашей производственной системы.