Olá pessoal, eu já estava para fazer esse teste há um bom tempo. Há mais de um ano que tinha um rascunho salvo aqui para escrever algo a repeito. Então finalmente vamos tirar a prova se há diferença de desempenho em usar um PDB para armazenar nossos dados.
Para realizar este teste estou usando uma VM no VirtualBox com 8GB de RAM e 2 cores de CPU, entreguei um disco SSD de tamanho fixo exclusivo para o datafile da tablespace SOE num filesystem XFS. O sistema operacional utlilizado no teste é o Oracle Enterprise Linux 6.8 e o banco de dados é o Oracle Database 12.1.0.2. Estou utilizando o Swingbench para realizar o teste de carga. Os parâmetros estão todos nos valores default e não há diferença de parâmetros do CDB para o PDB. A SGA está com 1GB e a PGA com 120MB, o banco de dados não está com Archivelog e nem Flashback habilitado. São 5 grupos de redolog com 500MB cada um e somente um membro em cada grupo. Antes de cada iniciar cada um dos testes efetuo flush da shared pool e do buffer cache.
Teste 1: Desempenho PDB
No primeiro teste crio o schema SOE no SOEPDB e armazeno os dados na tablespace SOE. Após criar o schema SOE e popular inicialmente 1GB de dados disparo a aplicação, que fica em execução durante 10 minutos com 4 usuários realizando operações simultaneamente.
Teste 2: Desempenho CDB
No segundo teste crio o schema SOE diretamente no CDB1 e armazeno os dados na tablespace SOE. Após criar o schema SOE e popular inicialmente 1GB de dados disparo a aplicação, que fica em execução durante 10 minutos com 4 usuários realizando operações simultaneamente.
O teste foi bastante simples e comprovou que não há perda ou ganho significativos de desempenho na nova arquitetura Multitenant. A principal razão para utilizá-la é realmente para facilitar a consolidação e o gerenciamento de bancos de dados, onde podemos isolá-los em PDBs e tratá-los de maneira individualizada.
Espero que tenham gostado e que possam defender o uso do Multitenant sem se preocupar com o desempenho.
Abraços e até mais,
Franky