Using the workload capture and replay (WCR) in 11G

Отличная (и очень короткая) Note: 445116.1 посвещенная Real Application Testing. Хочется процитировать те операции, которые не захватываются в процессе capture:

o Direct path load of external files
o Shared Server requests
o Streams
o Advanced Replication streams
o Non PL/SQL AQ
o Flashback queries
o OCI based object navigations
o Non SQL based object access
o Distributed transactions
o Remote describe/commit operations

Некоторые возможности по установке фильтров за capture, скорости replay и т.д. описаны в

Oracle® Database Performance Tuning Guide
11g Release 1 (11.1)
Part Number B28274-01
PART V

Важно помнить, что рекомедуется перед началом захвата рестартовать БД, а тестовую (на которой все будет проигрываться) восстановить из backup производственной именно на момент этого последнего останова.

С картинками EM как настроить WCR можно посмотреть здесь.

Формальную презентацию (включая SQL Perfomance Analyzer) можно скачать здесь.

Хочется повторить, что особенно полезно использовать WCR при

- тестировании новой платформы
- переводе в кластер

Ограничение также понятно: поскольку все запросы захвачены в binary виде, то вы не можете поменять часть из них, таким образом не можете оценить как улучшится общая производительность системы при изменении отдельных запросов или изменении структуры данных.

С другой стороны, если Вы используете процедуры, кто мешает прямо перед стартом replay подменить ее на тестовой систем ? (ушел думать...)


PS
У меня еще сомнения в полноте приведенного списка ограничений. В частности не уверен насчет захвата операций с CLOB...

PS.2

Сергею Томину на его замечательном семинаре задали массу вопросов по поводу wrc клиентов. Так вот, режим calibrate пытается подсказать Вам сколько следует запустить клиентов, одновременно читающих файл с захваченными данными. Однако каждый клиент может открыть несколько соединений с БД

"
Since one replay client can initiate multiple sessions with the database, it is not necessary to start a replay client for each session that was captured. The number of replay clients that need to be started depends on the number of workload streams, the number of hosts, and the number of replay clients for each host.
"
Однако, я не могу найти параметра, отвечающего за кол-во соединений с БД, кроме как
threads_per_process. Поэтому мне кажется, что число соединений будет число wrc процессов*threads_per_process.

Насколько я понял, Сергей предложил запускать wrc с нескольких хостов сразу, разместив данные для replay на разделяемой файловой системе. Это очень разумно, если это заработает :)

2 комментария:

  1. Дмитрий!

    А можно ли захватывать workload с Oracle 10? 9?

    Спасибо.

    ОтветитьУдалить
  2. Обещают что можно будет захватывать нагрузку с 10.2.0.4 (когда этот патч появится). Про другие версии я ничего не слышал.

    ОтветитьУдалить