RE: [pgsql-es-ayuda] Problema con Funcion que estima tamaño de tabla

From: Edwin Quijada <listas_quijada(at)hotmail(dot)com>
To: <lzevallos(at)lobosistemas(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: [pgsql-es-ayuda] Problema con Funcion que estima tamaño de tabla
Date: 2009-05-21 20:52:34
Message-ID: BLU137-W32E1C1CEC0FADB17C95EE0E3590@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


No hay una funcion en contrib/tablefunc que hace eso?

*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas
*-809-849-8087

* " Si deseas lograr cosas excepcionales debes de hacer cosas fuera de lo comun"
*-------------------------------------------------------*

________________________________
> Date: Thu, 21 May 2009 15:27:25 -0500
> Subject: [pgsql-es-ayuda] Problema con Funcion que estima tamaño de tabla
> From: lzevallos(at)lobosistemas(dot)com
> To: pgsql-es-ayuda(at)postgresql(dot)org
>
> Hola a todos le pongo este ejemplo para que me comprendan que es lo que quiero
>
> Esta funcion funciona pero con un parametro duro el de naranja
> Pero quiero que sea variable ese parametro intente de la manera comentada el de verde pero no funciono alguna idea.
>
>
> --esta funcion estima el tamaño de una tabla segun las filas que supuestamente generemos
>
> drop FUNCTION sch_desarrollo.fn_estimation_size_table(text,numeric);
> CREATE OR REPLACE FUNCTION sch_desarrollo.fn_estimation_size_table(text,numeric)
>
> RETURNS text AS
> $BODY$
> DECLARE
> --select fn_estimation_size_table('table',100000)=======>la tabla y el numero de registros a estimar
> n_size numeric;
> v_query text;
> v_table alias for $1;
>
> n_rows alias for $2;
> v_row text;
> v_sch_table text;
>
> BEGIN
> v_row=v_table||'.*';
> v_sch_table='sch_clinica.'||v_table;
> select distinct round((((n_rows/(8102/(pg_column_size(row(v_row))+4)))*8)::double precision/1024)::numeric,2) into n_size from sch_clinica.tbl_pais;
>
> --select distinct round((((100000/(8102/(pg_column_size(row(tbl_pais.*))+4)))*8)::double precision/1024)::numeric,2) into n_size from v_sch_table;
>
> return 'Para '||n_rows::text||' registros se estima '||n_size::text||' MG en la tabla '||v_table;
> END;
> $BODY$
> LANGUAGE 'plpgsql' VOLATILE
> COST 100;
>
> Consulta:
>
> select sch_desarrollo.fn_estimation_size_table('tbl_pais',100000);
>
> Resultado:
> "Para 100000 registros se estima 3.77 MG en la tabla tbl_pais"
>
>
> Saludos
>
> --
> Luis Zevallos
> DBA Administrador de DB & SRVR
> Lobo Sistemas S.A.C
> tel: +5154958310833
> http://www.lobosistemas.com
_________________________________________________________________
Windows Live Hotmail now works up to 70% faster.
http://windowslive.com/Explore/Hotmail?ocid=TXT_TAGLM_WL_hotmail_acq_faster_112008

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edwin Quijada 2009-05-21 21:24:24 RE: linux y pos
Previous Message Edwin Quijada 2009-05-21 20:49:14 RE: Capturando la salida de ANALYZE