Otro método para detectar índices no usados en DB2

En este artículo muestro un método para ver los índices no-usados de nuestra base de datos desde el último reinicio.

Ya traté este tema en el artículo Detección de índices, tablas y packages no usados en DB2 9.7, pero dicho artículo utiliza la columna LASTCOLUMN incluida en la versión 9.7. Si tienes otra versión, o incluso la 9.7, este artículo te permitirá conocer que índices no están siendo usados, con el desperdicio de recursos que conlleva.

La utilidad “DB2 Problem Determination” o db2pd para los conocidos, permite entre muchísimas otras cosas, la obtención de la información que buscamos mediante las siguientes opciones:

> db2pd -db TRP -tcbstats index

La información retornada se estructura en 4 apartados:

TCB Table Information:

Address TbspaceID TableID PartID MasterTbs MasterTab TableName SchemaNm

ObjClass DataSize LfSize LobSize XMLSize

0x0700000050A88BD8 32 2640 n/a 32 2640 CRMPAROLTP SAPTRP Perm 1 0 0 0

0x0700000052138358 32 9127 n/a 32 9127 T5ES4 SAPTRP Perm 1 0 0 0

TCB Table Stats:

....

....


TCB Index Information:

....

....


TCB Index Stats:

Address TableName IID PartID EmpPgDel RootSplits BndrySplts PseuEmptPg

EmPgMkdUsd Scans IxOnlyScns KeyUpdates InclUpdats NonBndSp

ts PgAllocs Merges PseuDels DelClean IntNodSpl

0x070000005F7F58D0 CRMPAROLTP 1 n/a 0 0 0 0 0 1 0 0 0 0

0 0 0 0 0

0x0700000052138DD0 T5ES4 1 n/a 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0

0x07000000401A9B50 A746 1 n/a 0 0 0 0 0 273 0 0 0 0

0 0 0 0 0

0

La que nos interesa en este artículo, es el último apartado “TCB Index Stats”, y en concreto la columna “Scans”, que nos indica el número de usos de dicho indice.

No hace falta decir, que si la columna Scans está a 0, el índice es candidato a ser eliminado o a estudiar el porqué de su falta de uso.