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
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 |