Query dinamica per la creazione del comando di REBUILD degli INDICI

.

Con le seguenti query dinamiche avremo la possibilità di creare il comando di rebuild degli indici e degli indici partizionati che hanno lo stato UNUSABLE.

Costruzione statement di REBUILD INDEX

SET LINES 170
select 'alter index '||i.OWNER||'.'||i.INDEX_NAME||' REBUILD;'
from dba_indexes i, dba_segments s
where i.OWNER not in ('SYS','SYSTEM') 
and i.OWNER = s.OWNER
and i.INDEX_NAME = s.SEGMENT_NAME
and i.STATUS <>'VALID';


Costruzione statement di REBUILD INDEX PARTITION

SET LINES 170
select 'alter index '||i.index_OWNER||'.'||i.INDEX_NAME||' REBUILD PARTITION ' ||s.PARTITION_NAME|| ';'
from dba_ind_partitions i, dba_segments s
where i.INDEX_OWNER not in ('SYS','SYSTEM') 
and i.INDEX_OWNER = s.OWNER
and i.INDEX_NAME = s.SEGMENT_NAME
and i.partition_name = s.partition_name and i.STATUS <> 'VALID';

Query per verificare la dimensione degli indici partizionati

.

Con l’articolo Query per verificare la dimensione degli indici partizionati,
saremo in grado di verificare
la dimensione degli indici partizionati.

Inoltre vediamo:
il tipo di INDICE,
lo status dell’INDICE,
e il tablespace di provenienza.

I campi selezionati sono:

OWNER – Proprietario dell’indice.
INDEX_NAME – Nome dell’indice.
INDEX_TYPE – Tipo dell’indice.
PARTITION_NAME – Nome della partizione.
TABLESPACE_NAME – Nome della tablespace dove risiede l’indice.
BYTES – Dimensione dell’indice trasformato in MB.
STATUS – Status dell’indice.

Inotre estrapoliamo le informazioni dalle viste
DBA_IND_PARTITIONS e
DBA_SEGMENTS.

Infine sono messe in relazione dalla JOIN
OWNER=OWNER e
INDEX_NAME=SEGMENT_NAME.

set lines 200
set pages 99
col INDEX_OWNER for a16
col INDEX_NAME for a24
col INDEX_TYPE for a10
col TABLESPACE_NAME for a24
col PARTITION_NAME for a24
select i.INDEX_OWNER, i.INDEX_NAME, s.SEGMENT_TYPE, s.PARTITION_NAME, s.TABLESPACE_NAME, s.BYTES/1024/1024 as "Size MB", i.STATUS
from dba_ind_partitions i, dba_segments s
where i.INDEX_OWNER not in ('SYS','SYSTEM') 
and i.INDEX_OWNER = s.OWNER
and i.INDEX_NAME = s.SEGMENT_NAME
and i.partition_name = s.partition_name
order by 1,2,4
/

Query per verificare la dimensione degli indici

.

Con l’articolo Query per verificare la dimensione degli indici,
vediamo velocemente gli indici e le lo dimensioni.

Inoltre è possibile individuare:
il tipo di indice,
il nome della partizione,
il tablespace di provenienza e
lo status dell’indice.

I campi selezionati sono:

OWNER – Proprietario dell’indice.
INDEX_NAME – Nome dell’indice.
INDEX_TYPE – Tipo dell’indice.
PARTITION_NAME – Nome della partizione.
TABLESPACE_NAME – Nome della tablespace dove risiede l’indice.
BYTES – Dimensione dell’indice trasformato in MB.
STATUS – Status dell’indice.

Inoltre estrapoliamo le informazioni dalle viste
DBA_INDEXES e
DBA_SEGMENTS.

Infine, mettiamo i dati in relazione dalla JOIN
OWNER=OWNER e
INDEX_NAME=SEGMENT_NAME.

set lines 200
set pages 99
col OWNER for a16
col INDEX_NAME for a30
col INDEX_TYPE for a21
col TABLESPACE_NAME for a24
col PARTITION_NAME for a24
select i.OWNER, i.INDEX_NAME, i.INDEX_TYPE, s.PARTITION_NAME, s.TABLESPACE_NAME, s.BYTES/1024/1024 as "Size MB", i.STATUS 
from dba_indexes i, dba_segments s
where i.OWNER not in ('SYS','SYSTEM') and 
i.OWNER = s.OWNER and
i.INDEX_NAME = s.SEGMENT_NAME 
order by 1,2,4;


Query per individuare tutti gli INDICI PARTIZIONATI INVALIDI

.

Con l’articolo Query per individuare tutti gli INDICI PARTIZIONATI INVALIDI,
vediamo tutti gli indici invalidi,
che puntano a tabelle partizionate
degli utenti del database.


I campi che selezioniamo sono:

OWNER – Proprietario dell’indice.
INDEX_NAME – Nome dell’indice.
PARTITION_NAME – Nome della partizione.
STATUS – Status dell’indice.

In otre le informazioni sopra menzionate,
le vediamo dalla vista DBA_IND_PARTITIONS.

In fine, filtriamo le informazioni dalla condizione
STATUS <> ‘VALID’ e
INDEX_OWNER è diverso da SYS e SYSTEM.

set lines 400
col owner for a10
col index_name for a25
select INDEX_OWNER,index_name,partition_name,status
from dba_ind_partitions
where status <>'VALID'
and index_owner not in ('SYSTEM','SYS')
order by 1,2;

Query per individuare tutti gli INDICI INVALID di uno SCHEMA del database Oracle

.

Con l’articolo Query per individuare tutti gli INDICI INVALID
di uno SCHEMA del database Oracle,
riusciamo ad individuare velocemente,
tutti gli indici INVALIDI di uno SCHEMA.

I campi che andremo a selezionare sono:

OWNER – Proprietario dell’indice.
INDEX_NAME – Nome dell’indice.
INDEX_TYPE – Tipo dell’indice.
STATUS – Status dell’indice.

Inoltre, informazioni sopra menzionate,
le abbiamo estratte dalla vista DBA_INDEXES.

Infine le informazioni sono filtrate per
STATUS <> ‘VALID’ e
OWNER diverso da SYS e SYSTEM.

set lines 180
col owner for a30
col index_name for a30
col index_type for a30
col status for a15
select owner, index_name,index_type,status
from dba_indexes
where owner not in ('SYSTEM','SYS')
and status <> 'VALID' order by 1,2;

Query per individuare tutti gli INDICI con le relative dimensioni di uno SCHEMA

.

Nell’articolo Query per individuare tutti gli INDICI con le relative dimensioni di uno SCHEMA, viene fornito uno statement, con cui è possibile individuare tutti gli indici degli utenti del database. Inoltre è possibile individuare il tipo di indice e lo status.

Infine la query non presenterà gli INDICI degli utenti SYS e SYSTEM.

I campi che andremo a selezionare sono:

OWNER – Proprietario dell’indice.
INDEX_NAME – Nome dell’indice.
INDEX_TYPE – Tipo dell’indice.
STATUS – Status dell’indice.

Le informazioni sopra mensionate le abbiamo estratte dalla vista DBA_INDEXES.

set lines 400 
col owner for a10 
col index_name for a25 
select owner, index_name,index_type,status from dba_indexes where owner not in ('SYSTEM','SYS') order by 1,2;

Wordpress Social Share Plugin powered by Ultimatelysocial