Тест производительности SQL запросов - PullRequest
15 голосов
/ 27 июля 2011

У нас есть две одинаковые четвертиные стойки Oracle Exadata, каждая из которых использует пару экземпляров базы данных Мои тесты производительности «мокрый палец на ветру» показывают, что один работает с четвертью скорости другого.

Существует ли набор SQL-запросов, которые можно запускать с таймерами, чтобы обеспечить более научное сравнение производительности запросов между двумя серверами?

Я знаю, что могу написать набор запросов. Мне интересно, существует ли уже полустандартный набор тестов. Что-то вроде нескольких запросов на создание таблиц, за которыми следуют итеративные операторы вставки (много случайных данных), индексы, ограничения, триггеры, функции, сценарии создания процедур и представлений (предпочтительно с материализованными представлениями), а затем набор сложных запросов, которые растягивают движок. бит с соединениями, срабатыванием триггеров, вызовами функций и процедур и т. д. при записи статистики производительности в некоторые временные таблицы?

Кто-нибудь сталкивался с таким набором библиотек / инструментов / скриптов?

1 Ответ

1 голос
/ 03 августа 2011

Попробуйте запустить awrgrpt.sql для каждой стойки и сравните вывод. Обычно он находится здесь $ {ORACLE_HOME} /rdbms/admin/awrgrpt.sql

Это даст вам кучу информации, такой как события ожидания, и топ статистики sql. Должен дать вам представление о том, почему один ухудшил производительность по сравнению с другим.

...