Olá a todos, há algumas semanas, durante um projeto, nosso cliente solicitou que durante o processo de migração do banco de dados tomássemos o SQL PLAN Baseline dos bancos de dados atuais.
Achei o tópico interessante para compartilhar com vocês, como fazer essa migração do SQL PLAN Baselines de um banco de dados para outro.
NOTA: O usuário do banco de dados deve ter o privilégio de “administer sql management object” para executar os passos abaixo.
- Crie uma tabela STAGING no banco de origem para exporta seus SQL PLAN Baselines. A tabela de STAGING não pode ser criado no esquema SYS para não receber o erro (ORA-19381)
Estou usando o esquema SYSTEM para executar este procedimento.
exec DBMS_SPM.CREATE_STGTAB_BASELINE('MIGBASELINE', MIGUSER);
2. Gere o Pack Baselines no banco de dados de Origem
Aqui podemos fazê-lo de quatro maneiras:
A) Gere um pack com todos os baselines do banco de dados.
set serveroutput on DECLARE x number; BEGIN x := DBMS_SPM.PACK_STGTAB_BASELINE('MIGBASELINE', MIGUSER); dbms_output.put_line(to_char(x) || ' plan baselines packed'); END; /
B) Gere um pack com todos os Baselines Plan de uma query
set serveroutput on
DECLARE
x number;
BEGIN
x := DBMS_SPM.PACK_STGTAB_BASELINE('MIGBASELINE', MIGUSER, sql_handle => 'SYS_SQL_58d940ad9b3ac043');
dbms_output.put_line(to_char(x) || ' plan baselines packed');
END;
/
C) Gere um pack de um Baseline Plan específico de uma query
set serveroutput on DECLARE x number; BEGIN x := DBMS_SPM.PACK_STGTAB_BASELINE('MIGBASELINE', MIGUSER, sql_handle => ' SYS_SQL_58d940ad9b3ac043', plan_name => 'SYS_SQL_PLAN_d380ae0c0a76c437' ); dbms_output.put_line(to_char(x) || ' plan baselines packed'); END; /
D) Gere um pack com os Baselines Plan que foram aceitos de uma query
set serveroutput on DECLARE x number; BEGIN x := DBMS_SPM.PACK_STGTAB_BASELINE('MIGBASELINE', MIGUSER, sql_handle => ' SYS_SQL_58d940ad9b3ac043', accepted => 'YES' ); dbms_output.put_line(to_char(x) || ' plan baselines packed'); END; /
3. Exporte a tabela de STAGING “MIGBASELINE” do banco de origem.
4. Importe a tabela de STAGING “MIGBASELINE” no banco de destino.
5. Descompacte as Baselines Plan no seu banco de destino.
set serveroutput on DECLARE x number; BEGIN x := DBMS_SPM.UNPACK_STGTAB_BASELINE('MIGBASELINE', MIGUSERN); dbms_output.put_line(to_char(x) || ' plan baselines unpacked'); END; /
Espero que isso ajude você!!!
André Luiz Dutra Ontalba
Disclaimer: “The postings on this site are my own and don’t necessarily represent may actual employer positions, strategies or opinions. The information here was edited to be useful for general purpose, specific data and identifications was removed to allow reach generic audience and to be useful
10 Comments
HenryVap
Deixe o robô lhe trazer dinheiro enquanto descansa. https://Vap.bookeat.es/gotodate/promotion
HenryVap
Faça dólares ficando em casa e lançou este Bot. https://Vap.bookeat.es/gotodate/promotion
HenryVap
Todo mundo que precisa de dinheiro deve experimentar este Robô. https://Vap.bookeat.es/gotodate/promotion
HenryVap
As pessoas ricas são ricas porque usam esse robô. https://Vap.bookeat.es/gotodate/promotion
LjGodRcDHJUP
mQvBUkWSrub
HenryVap
Precisa de dinheiro? Obtê-lo aqui facilmente! Basta pressionar isso para iniciar o robô. https://Vap.battletech-newsletter.de/Vap
HenryVap
Não há necessidade de trabalhar mais enquanto você tem o robô lançado! https://Vap.battletech-newsletter.de/Vap
Richardfub
Я смотрел дорамы на многих сайтах и могу сказать, что лучший из них – rezka.men. Там собрана самая большая база первоклассного контента, главное – всё абсолютно бесплатно.
HenryVap
Faça dólares ficando em casa e lançou este Bot. https://Vap.battletech-newsletter.de/Vap
HenryVap
Deixe seu dinheiro crescer na capital com este Robô. https://Vap.battletech-newsletter.de/Vap