A conversão de um banco de dados non-PDB para PDB, leva cerca de 20 minutos, segundo documentação da Oracle.
Mas, em uma das minhas experiências o tempo de conversão do banco de dados levou mais de 3 horas.
Pesquisando na internet sobre esse tipo de problema, encontrei 2 blogs que ajudaram a esclarecer as dúvidas e demonstram os testes feitos para chegar na solução abaixo.
O links desses sites (blogs) são:
https://ilmarkerm.eu/blog/2016/07/experiences-with-moving-to-multitenant-in-12-1-0-2/ (NONCDB_TO_PDB.SQL TAKES A REALLY LONG TIME TO EXECUTE)
https://bdrouvot.wordpress.com/2014/10/17/watch-out-for-optimizer_adaptive_features-as-it-may-have-a-huge-negative-impact/
A solução para deixarmos essa conversão mais rápida é acrescentarmos o parâmetro "alter session set optimizer_adaptive_features=false;" no script de conversão noncdb_to_pdb.sql, localizado em $ORACLE_HOME/rdbms/admin.
Sendo assim, podemos:
Editar o arquivo noncdb_to_pdb.sql e adicionar:
alter session set optimizer_adaptive_features=false;
Logo abaixo da linha:
exec dbms_pdb.noncdb_to_pdb(1);
Como não é recomendável alterar os arquivos do fornecedor, podemos optar por fazer a mesma alteração de parâmetro apenas passando para nossa sessão a informação com a configuração desejada, como segue abaixo:
Conectar no banco de dados PDB:
SQL> alter session set container=nome_do_pdb;
Configurar o parâmetro para a sessão ativa:
SQL> alter session set optimizer_adaptive_features=false;
Executar o script de conversão:
SQL> $ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
O ganho estimado no tempo final de execução é de pelo menos 20%.