Pessoal.Segue uma dica para analise de fragmentação dos indices .
(1) -- CRIAR A TABELA ONDE ARMAZENAMENTOS AS INFORMAÇÕES
CREATE TABLE SGDB_INDICE_STATUS (INDEX_NAME VARCHAR(100),PCT_DELETED NUMBER,PCT_USED NUMBER,BLOCK NUMBER,DTEXECUAO DATE DEFAULT SYSDATE) ;
ALTER TABLE SGDB_INDICE_STATUS ADD CONSTRAINT PK_MMED_IND_STATUS PRIMARY KEY (INDEX_NAME,DTEXECUAO) ;
(2) -- RODAR A QUERY ABAIXO E PEGAR O RESULTADO DELA PARA EXECUAR
SELECT COMM
FROM(
SELECT 1 AS ID,
ROWNUM AS ID2,
'ANALYZE INDEX ' ||INDEX_NAME || ' VALIDATE STRUCTURE ; ' AS COMM
FROM DBA_INDEXES
WHERE OWNER = 'DBA_CLINICA'
UNION ALL
SELECT 2 AS ID,
ROWNUM ID2,
'INSERT INTO SGDB_INDICE_STATUS SELECT NAME,TRUNC(100*(NVL(DEL_LF_ROWS,1)/NVL(LF_ROWS,1))) PCT_DELETED, PCT_USED ,BLOCKS ,SYSDATE FROM INDEX_STATS ;' AS COMM
FROM DBA_INDEXES
WHERE OWNER = 'DBA_CLINICA' AND
ORDER BY ID2,ID
)
(3) -- EXECUTAR O RESULTADO DO PASSO 3 E DAR COMMIT .
COMMIT ;
(4) -- VERIFICAR OS ÍNDICES COM MAIS DE 30 % DE FRAGMENTAÇÃO
SELECT DISTINCT A.* ,B.TABLE_NAME
FROM SGDB_INDICE_STATUS A
JOIN DBA_INDEXES B ON B.INDEX_NAME = A.INDEX_NAME
WHERE PCT_DELETED > 20
AND PCT_DELETED < 100
ORDER BY PCT_DELETED DESC
(5) -- AJUSTA OS ÍNDICES QUE FORAM ENCONTADOS COM FRAGMENTAÇÃO MAIOR QUE 20 %
-- RODAR A QUERY ABAIXO E DEPOIS EXECUTAR O RESULTADO
SELECT DISTINCT 'ALTER INDEX ' || A.INDEX_NAME || ' REBUILD TABLESPACE TSP_CLINICA_INDEX ; ' AS RESULTADO
FROM SGDB_INDICE_STATUS A
JOIN DBA_INDEXES B
ON B.INDEX_NAME = A.INDEX_NAME
WHERE PCT_DELETED > 20
AND PCT_DELETED < 100
domingo, 14 de outubro de 2012
quarta-feira, 10 de outubro de 2012
Mover um Datafile de sua Tablespace
segue um exemplo simples de uma das formas seguras de movermos um datafile .
(1) Caso de sgdb em modo sem Archive Mode :
Pare seu banco
shutdown immediate;
Depois faça a copia do datafile :
copy d:/u01/data/datafile.dbf e:/u01/data/datafile_novo.dbf
Inicie o banco em modo mount
startup mount;
faça o rename datafile
ALTER DATABASE RENAME FILE ‘d:/u01/data/datafile.dbf’ TO ‘e:/u01/data/datafile_novo.dbf’;
Inicie o banco em modo open ;
ALTER DATABASE OPEN;
(2) Caso de sgdb em modo Archive Mode :
coloque o seu datafile como offline :
ALTER DATABASE DATAFILE ‘/u01/data/datafile.dbf’ OFFLINE;
Depois faça a copia do datafile :
copy d:/u01/data/datafile.dbf e:/u01/data/datafile_novo.dbf
faça o rename datafile
ALTER DATABASE RENAME FILE ‘d:/u01/data/ datafile.dbf’ TO ‘e:/u01/data/datafile_novo.dbf’;
Fazer o recover do datafile:
RECOVER DATAFILE ‘e:/u01/data/datafile_novo.dbf’;
Colocar online o datafile:
ALTER DATABASE DATAFILE ‘ e:/u01/data/datafile_novo.dbf ’ ONLINE;
terça-feira, 2 de outubro de 2012
Oracle Critical Patch Update
Pessoal.Segue um link onde de forma unificada a Oracle informa o Criticals Paths de seu produtos (incluindo os databases) :
http://www.oracle.com/technetwork/topics/security/alerts-086861.html#CriticalPatchUpdates
Fica a Dica.
http://www.oracle.com/technetwork/topics/security/alerts-086861.html#CriticalPatchUpdates
Fica a Dica.
Assinar:
Postagens (Atom)