Skip site navigation (1) Skip section navigation (2)

Re: como saber si se esta utilizando un indice sin explain plan

From: Marcos Ortiz <mlortiz(at)uci(dot)cu>
To: Jose Alberto Sanchez Nieto <albertosanchez(at)hiperusera(dot)es>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: como saber si se esta utilizando un indice sin explain plan
Date: 2012-03-12 13:50:59
Message-ID: 4F5DFF43.3000403@uci.cu (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Con esta consulta a pg_stat_user_indexes, puedes ver los candidatos a 
borrar:

SELECT
       idstat.relname AS table_name,
       indexrelname AS index_name,
       idstat.idx_scan AS times_used,
       pg_size_pretty(pg_relation_size(idstat.relname)) AS table_size,
       pg_size_pretty(pg_relation_size(indexrelname)) AS index_size,
       n_tup_upd + n_tup_ins + n_tup_del as num_writes,
       indexdef AS definition
FROM pg_stat_user_indexes AS idstat JOIN pg_indexes ON indexrelname = 
indexname
JOIN pg_stat_user_tables AS tabstat ON idstat.relname = tabstat.relname
WHERE idstat.idx_scan < 200
AND indexdef !~* 'unique'
ORDER BY idstat.relname,
          indexrelname;


Esta consulta te dará los índices que han sido escaneados menos de 200 
veces  y no son únicos. Se omite los índices únicos por el hecho de que 
ellos son necesarias para forzar el uso de una determinada restricción, 
por lo que no nos interesan (por ahora).

Esta consulta, por supuesto tiene sus limitantes.
Puedes encontrar esto acá en el blog de Josh Berkus:

http://it.toolbox.com/blogs/database-soup/finding-useless-indexes-28796

En la wiki de PostgreSQL también un artículo dedicado a este tema, pero 
no recuerdo la dirección, y en el blog de Robert Treat también habla del 
tema:
http://www.xzilla.net

Saludos



On 03/12/2012 08:21 AM, Jose Alberto Sanchez Nieto wrote:
> Hola a todos, queremos limpiar nuestro sistema y borrar los indices 
> que no se estén utilizando, estamos haciéndolo en pgadmin mirando las 
> estadísticas de los índices pero tenemos alguna duda. Por poner un 
> ejemplo en una tabla tenemos dos índices con las siguientes estadísticas:
> indice 1:
> Busqueda por indices        0
> tuplas de Indice leidas        0
> tuplas de Indice Extraidas    0
> Bloques de Indice Leidos     453
> Bloques de Iindices Acertados    24178
>
> indice 2:
> Busqueda por indices        77850277
> tuplas de Indice leidas        90800350
> tuplas de Indice Extraidas    90790803
> Bloques de Indice Leidos     133007
> Bloques de indices Acertados    233958078
>
> ¿Los valores a cero del indice 1 significan que no se está usando?, si 
> es así ¿que significaría en dicho índice el valor de bloques de indice 
> leidos y el de acertados si no se está utilizando?
>
> Gracias y saludos.
>
>
> -- 
>
>
>
> José Alberto Sánchez Nieto
> albertosanchez(at)hiperusera(dot)es  <mailto:ignacio(dot)barbosa(at)hiperusera(dot)es>
> Responsable Dpto.Sistemas de la Información
>
> Avda Principal s/n
> P.Ind Las Avenidas
> 28991 Torrejón de la Calzada -- Madrid
> Telf. 918609900
> Fax 918160000
>
> Le informamos que su dirección de correo electrónico, asi como el 
> resto de los datos de carácter personal aportados, serán objeto de 
> tratamiento automatizado en nuestro ficheros, con la finalidad de 
> gestionar la agenda de contactos de nuestra empresa y, para poder 
> atender a sus peticiones de consulta via electronica. Vd.podrá en 
> cualquier momento ejercer el derecho de acceso, rectificación, 
> cancelación y oposición en los términos establecidos en la Ley 
> Orgánica 15/1999 mediante notificación escrita con copia de DNI., a la 
> entidad, a través de éste e-mail.
>
> La información incluida en este e-mail es CONFIDENCIAL, siendo para su 
> usu exlusivo del destinatario arriba mencionado. Si Usted lee este 
> mensaje y no es el destinatario indicado, le informamos de que está 
> totalmente prohibida la utilización, divulgación, distribución y/o 
> reproducción de esta comunicaci´ón sin autorización expresa en virtud 
> de la legislacion vigente. Si ha recibido este mensaje por error le 
> rogamos nos o notifique inmediatamente por esta misma vía y proceda a 
> su eliminación.
>
>
>
>
>
>
>
>
> <http://www.antiterroristas.cu/>

-- 
Marcos Luis Ortíz Valmaseda
  http://marcosluis2186.posterous.com
  http://postgresql.uci.cu/blog/38




Fin a la injusticia, LIBERTAD AHORA A NUESTROS CINCO COMPATRIOTAS QUE SE ENCUENTRAN INJUSTAMENTE EN PRISIONES DE LOS EEUU!
http://www.antiterroristas.cu
http://justiciaparaloscinco.wordpress.com

In response to

Responses

pgsql-es-ayuda by date

Next:From: Alvaro HerreraDate: 2012-03-12 15:50:21
Subject: Re: como saber si se esta utilizando un indice sin explain plan
Previous:From: Jose Alberto Sanchez NietoDate: 2012-03-12 12:21:23
Subject: como saber si se esta utilizando un indice sin explain plan

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group