[pgsql-es-ayuda] RE: [pgsql-es-ayuda] sobre índices en la base de datos

2015-06-08 Por tema Esneiker Enriquez Cabrera
Muchas gracias, duda aclarada.

Saludos,
M.Sc. Esneiker Enriquez Cabrera
  Esp. B en Ciencias Informáticas
Desoft en Ciego de Ávila. Joaquín de Aguero esq. Calle 2. Ciego de Ávila.
Cuba.
Telf.: 53 33 22 8971, email.: eenriq...@cav.desoft.cu

-Mensaje original-
De: pgsql-es-ayuda-ow...@postgresql.org
[mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Alvaro Herrera
Enviado el: viernes, 05 de junio de 2015 14:57
Para: Esneiker Enriquez Cabrera
CC: 'POSTGRES'
Asunto: Re: [pgsql-es-ayuda] sobre índices en la base de datos

Esneiker Enriquez Cabrera escribió:
> Hola amigos.
> 
> Tengo una duda, cuando en postgres se crea una llave foránea,
> ¿automáticamente el servidor crea un índice por ese campo o hay que
crearlo
> manualmente?

Hay que crearlo (a menos que ya lo tengas)

-- 
Álvaro Herrerahttp://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
 

__ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 11728 (20150603) __

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com
 
 

__ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 11728 (20150603) __

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com
 


-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


[pgsql-es-ayuda] optimizacion

2015-06-08 Por tema Esneiker Enriquez Cabrera
Saludos a todos los amigos de la comunidad.

Les escribo porque tengo un problema y no logro encontrar una buena forma de
resolverlo. Tengo una función para obtener reportes estadísticos donde debo
retornar el nombre de las unidades organizativas, los nombres de los tipos
de servicios y los totales, de la siguiente forma:


Unidad

Tipo de servicio

T1

T2

T3

T4


 

 

 

 

 

 

 

El problema es que entre la tabla de unidades organizativas y tipos de
servicio no hay relación directa, sino a través de otras tablas del negocio.
Necesito tirar todas las unidades contra todos los tipos de servicio.

La solución que he dado hasta el momento es con un ciclo for recorrer la
tabla tipo de servicio e ir calculando los totales e irlos insertando en una
tabla temporal para al final devolver los valores, donde evidentemente esto
provoca problemas de rendimiento, el código es el siguiente(cortado para no
abrumar):

 

for aid_elemento,adescripcion from vw_nmtipo_servicio order by tipo_servicio
loop

SQLText = 'INSERT INTO estadistico SELECT id, nombre,

   (SELECT COUNT(distinct
vw_registro_expediente_incidencia.id) FROM vw_registro_expediente_incidencia
WHERE ...) AS t1,

   (SELECT COUNT(distinct
vw_registro_expediente_incidencia.id) FROM vw_registro_expediente_incidencia
...) AS t2,

   (SELECT COUNT(distinct
vw_registro_expediente_incidencia.id) FROM vw_registro_expediente_incidencia
...) AS t3,

   (SELECT COUNT(distinct
vw_registro_expediente_incidencia.id) FROM vw_registro_expediente_incidencia
...) AS t4

 
'''||adescripcion_elemento||'''::character varying as criterio1 FROM
nmunidad_org WHERE (nmunidad_org.id IN ('||alista_id_nivel||'))';

execute SQLText;

SQLText = '';

   end loop;

 

Espero que me puedan dar alguna recomendación para optimizar el diseño.

Saludos,

M.Sc. Esneiker Enriquez Cabrera
  Esp. B en Ciencias Informáticas

Desoft en Ciego de Ávila. Joaquín de Aguero esq. Calle 2. Ciego de Ávila.
Cuba.
Telf.: 53 33 22 8971, email.:  
eenriq...@cav.desoft.cu

 



Re: [pgsql-es-ayuda] optimizacion

2015-06-08 Por tema Gilberto Castillo


Uhmmm, usar todo esos Count es una locura, pero si es necesario.

¿porque ya que usas un laso no cuenta tu mismo sumando en una variable?


> Saludos a todos los amigos de la comunidad.
>
> Les escribo porque tengo un problema y no logro encontrar una buena forma
> de
> resolverlo. Tengo una función para obtener reportes estadísticos donde
> debo
> retornar el nombre de las unidades organizativas, los nombres de los tipos
> de servicios y los totales, de la siguiente forma:
>
>
> Unidad
>
> Tipo de servicio
>
> T1
>
> T2
>
> T3
>
> T4
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> El problema es que entre la tabla de unidades organizativas y tipos de
> servicio no hay relación directa, sino a través de otras tablas del
> negocio.
> Necesito tirar todas las unidades contra todos los tipos de servicio.
>
> La solución que he dado hasta el momento es con un ciclo for recorrer la
> tabla tipo de servicio e ir calculando los totales e irlos insertando en
> una
> tabla temporal para al final devolver los valores, donde evidentemente
> esto
> provoca problemas de rendimiento, el código es el siguiente(cortado para
> no
> abrumar):
>
>
>
> for aid_elemento,adescripcion from vw_nmtipo_servicio order by
> tipo_servicio
> loop
>
> SQLText = 'INSERT INTO estadistico SELECT id, nombre,
>
>(SELECT COUNT(distinct
> vw_registro_expediente_incidencia.id) FROM
> vw_registro_expediente_incidencia
> WHERE ...) AS t1,
>
>(SELECT COUNT(distinct
> vw_registro_expediente_incidencia.id) FROM
> vw_registro_expediente_incidencia
> ...) AS t2,
>
>(SELECT COUNT(distinct
> vw_registro_expediente_incidencia.id) FROM
> vw_registro_expediente_incidencia
> ...) AS t3,
>
>(SELECT COUNT(distinct
> vw_registro_expediente_incidencia.id) FROM
> vw_registro_expediente_incidencia
> ...) AS t4
>
>
> '''||adescripcion_elemento||'''::character varying as criterio1 FROM
> nmunidad_org WHERE (nmunidad_org.id IN ('||alista_id_nivel||'))';
>
> execute SQLText;
>
> SQLText = '';
>
>end loop;
>
>
>
> Espero que me puedan dar alguna recomendación para optimizar el diseño.
>
> Saludos,
>
> M.Sc. Esneiker Enriquez Cabrera
>   Esp. B en Ciencias Informáticas
>
> Desoft en Ciego de Ávila. Joaquín de Aguero esq. Calle 2. Ciego de Ávila.
> Cuba.
> Telf.: 53 33 22 8971, email.:  
> eenriq...@cav.desoft.cu
>
>
>
> ---
> This message was processed by Kaspersky Mail Gateway 5.6.28/RELEASE
> running at host imx2.etecsa.cu
> Visit our web-site: , 
>


Saludos,
Gilberto Castillo
ETECSA, La Habana, Cuba
--- 
This message was processed by Kaspersky Mail Gateway 5.6.28/RELEASE running at 
host imx3.etecsa.cu
Visit our web-site: , 
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


RE: [pgsql-es-ayuda] optimizacion

2015-06-08 Por tema Esneiker Enriquez Cabrera
Porque lo que hago es que cuento registros del negocio (incidencias) que estén 
asociados a la unidad y al tipo de servicio correspondientes.

Saludos,
M.Sc. Esneiker Enriquez Cabrera
  Esp. B en Ciencias Informáticas
Desoft en Ciego de Ávila. Joaquín de Aguero esq. Calle 2. Ciego de Ávila. Cuba.
Telf.: 53 33 22 8971, email.: eenriq...@cav.desoft.cu


-Mensaje original-
De: Gilberto Castillo [mailto:gilberto.casti...@etecsa.cu] 
Enviado el: lunes, 08 de junio de 2015 9:30
Para: Esneiker Enriquez Cabrera
CC: 'POSTGRES'
Asunto: Re: [pgsql-es-ayuda] optimizacion



Uhmmm, usar todo esos Count es una locura, pero si es necesario.

¿porque ya que usas un laso no cuenta tu mismo sumando en una variable?


> Saludos a todos los amigos de la comunidad.
>
> Les escribo porque tengo un problema y no logro encontrar una buena 
> forma de resolverlo. Tengo una función para obtener reportes 
> estadísticos donde debo retornar el nombre de las unidades 
> organizativas, los nombres de los tipos de servicios y los totales, de 
> la siguiente forma:
>
>
> Unidad
>
> Tipo de servicio
>
> T1
>
> T2
>
> T3
>
> T4
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> El problema es que entre la tabla de unidades organizativas y tipos de 
> servicio no hay relación directa, sino a través de otras tablas del 
> negocio.
> Necesito tirar todas las unidades contra todos los tipos de servicio.
>
> La solución que he dado hasta el momento es con un ciclo for recorrer 
> la tabla tipo de servicio e ir calculando los totales e irlos 
> insertando en una tabla temporal para al final devolver los valores, 
> donde evidentemente esto provoca problemas de rendimiento, el código 
> es el siguiente(cortado para no
> abrumar):
>
>
>
> for aid_elemento,adescripcion from vw_nmtipo_servicio order by 
> tipo_servicio loop
>
> SQLText = 'INSERT INTO estadistico SELECT id, nombre,
>
>(SELECT COUNT(distinct
> vw_registro_expediente_incidencia.id) FROM 
> vw_registro_expediente_incidencia WHERE ...) AS t1,
>
>(SELECT COUNT(distinct
> vw_registro_expediente_incidencia.id) FROM 
> vw_registro_expediente_incidencia
> ...) AS t2,
>
>(SELECT COUNT(distinct
> vw_registro_expediente_incidencia.id) FROM 
> vw_registro_expediente_incidencia
> ...) AS t3,
>
>(SELECT COUNT(distinct
> vw_registro_expediente_incidencia.id) FROM 
> vw_registro_expediente_incidencia
> ...) AS t4
>
>
> '''||adescripcion_elemento||'''::character varying as criterio1 FROM 
> nmunidad_org WHERE (nmunidad_org.id IN ('||alista_id_nivel||'))';
>
> execute SQLText;
>
> SQLText = '';
>
>end loop;
>
>
>
> Espero que me puedan dar alguna recomendación para optimizar el diseño.
>
> Saludos,
>
> M.Sc. Esneiker Enriquez Cabrera
>   Esp. B en Ciencias Informáticas
>
> Desoft en Ciego de Ávila. Joaquín de Aguero esq. Calle 2. Ciego de Ávila.
> Cuba.
> Telf.: 53 33 22 8971, email.:   
> eenriq...@cav.desoft.cu
>
>
>
> ---
> This message was processed by Kaspersky Mail Gateway 5.6.28/RELEASE 
> running at host imx2.etecsa.cu Visit our web-site: 
> , 
>


Saludos,
Gilberto Castillo
ETECSA, La Habana, Cuba
 

__ Información de ESET NOD32 Antivirus, versión de la base de firmas de 
virus 11728 (20150603) __

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com
 
 

__ Información de ESET NOD32 Antivirus, versión de la base de firmas de 
virus 11728 (20150603) __

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com
 


-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] optimizacion

2015-06-08 Por tema Carlos Enrique Perez (Syswarp)
Personalmente haria una suerte de vista materializada. 
Tendrias que ver como performa si en lugar de tener una temporal le
pones una funcion y un trigger a cada unidad organizativa que al
actualiarse, vaya incrementando / decrementando cada Tx
Haces la carga inicial con tu proceso y seguis con esto que te comento.
Saludos.


El lun, 08-06-2015 a las 08:20 -0400, Esneiker Enriquez Cabrera
escribió:
> Saludos a todos los amigos de la comunidad.
> 
> Les escribo porque tengo un problema y no logro encontrar una buena
> forma de resolverlo. Tengo una función para obtener reportes
> estadísticos donde debo retornar el nombre de las unidades
> organizativas, los nombres de los tipos de servicios y los totales, de
> la siguiente forma:
> 
> Unidad
> 
> 
> Tipo de
> servicio
> 
> 
> T1
> 
> 
> T2
> 
> 
> T3
> 
> 
> T4
> 
> 
>  
> 
> 
>  
> 
> 
>  
> 
> 
>  
> 
> 
>  
> 
> 
>  
> 
> 
> 
>  
> 
> El problema es que entre la tabla de unidades organizativas y tipos de
> servicio no hay relación directa, sino a través de otras tablas del
> negocio. Necesito tirar todas las unidades contra todos los tipos de
> servicio.
> 
> La solución que he dado hasta el momento es con un ciclo for recorrer
> la tabla tipo de servicio e ir calculando los totales e irlos
> insertando en una tabla temporal para al final devolver los valores,
> donde evidentemente esto provoca problemas de rendimiento, el código
> es el siguiente(cortado para no abrumar):
> 
>  
> 
> for aid_elemento,adescripcion from vw_nmtipo_servicio order by
> tipo_servicio loop
> 
> SQLText = 'INSERT INTO estadistico SELECT id, nombre,
> 
>(SELECT COUNT(distinct
> vw_registro_expediente_incidencia.id) FROM
> vw_registro_expediente_incidencia WHERE ...) AS t1,
> 
>(SELECT COUNT(distinct
> vw_registro_expediente_incidencia.id) FROM
> vw_registro_expediente_incidencia ...) AS t2,
> 
>(SELECT COUNT(distinct
> vw_registro_expediente_incidencia.id) FROM
> vw_registro_expediente_incidencia ...) AS t3,
> 
>(SELECT COUNT(distinct
> vw_registro_expediente_incidencia.id) FROM
> vw_registro_expediente_incidencia ...) AS t4
> 
>'''||
> adescripcion_elemento||'''::character varying as criterio1 FROM
> nmunidad_org WHERE (nmunidad_org.id IN ('||alista_id_nivel||'))';
> 
> execute SQLText;
> 
> SQLText = '';
> 
>end loop;
> 
>  
> 
> Espero que me puedan dar alguna recomendación para optimizar el
> diseño.
> 
> Saludos,
> 
> M.Sc. Esneiker Enriquez Cabrera
>   Esp. B en Ciencias Informáticas
> 
> Desoft en Ciego de Ávila. Joaquín de Aguero esq. Calle 2. Ciego de
> Ávila. Cuba.
> Telf.: 53 33 22 8971, email.: eenriq...@cav.desoft.cu
> 
>  
> 
> 
> 
> 
> 
> __ Información de ESET NOD32 Antivirus, versión de la base de
> firmas de virus 11728 (20150603) __
> 
> ESET NOD32 Antivirus ha comprobado este mensaje.
> 
> http://www.eset.com




Re: [pgsql-es-ayuda] optimizacion

2015-06-08 Por tema Anthony Sotolongo León
Hola Esneiker, trata de utilizar clausula "WITH", te puede ayudar mucho 
a optimizar mejor ese tipo de consultas donde tienes subconsultas en en 
el SELECT.

http://www.postgresql.org/docs/9.4/interactive/queries-with.html
Saludos

El 08-06-2015 a las 9:20, Esneiker Enriquez Cabrera escribió:


Saludos a todos los amigos de la comunidad.

Les escribo porque tengo un problema y no logro encontrar una buena 
forma de resolverlo. Tengo una función para obtener reportes 
estadísticos donde debo retornar el nombre de las unidades 
organizativas, los nombres de los tipos de servicios y los totales, de 
la siguiente forma:


Unidad



Tipo de servicio



T1



T2



T3



T4











El problema es que entre la tabla de unidades organizativas y tipos de 
servicio no hay relación directa, sino a través de otras tablas del 
negocio. Necesito tirar todas las unidades contra todos los tipos de 
servicio.


La solución que he dado hasta el momento es con un ciclo for recorrer 
la tabla tipo de servicio e ir calculando los totales e irlos 
insertando en una tabla temporal para al final devolver los valores, 
donde evidentemente esto provoca problemas de rendimiento, el código 
es el siguiente(cortado para no abrumar):


for aid_elemento,adescripcion from vw_nmtipo_servicio order by 
tipo_servicio loop


SQLText = 'INSERT INTO estadistico SELECT id, nombre,

   (SELECT COUNT(distinct 
vw_registro_expediente_incidencia.id) FROM 
vw_registro_expediente_incidencia WHERE ...) AS t1,


   (SELECT COUNT(distinct 
vw_registro_expediente_incidencia.id) FROM 
vw_registro_expediente_incidencia ...) AS t2,


   (SELECT COUNT(distinct 
vw_registro_expediente_incidencia.id) FROM 
vw_registro_expediente_incidencia ...) AS t3,


   (SELECT COUNT(distinct 
vw_registro_expediente_incidencia.id) FROM 
vw_registro_expediente_incidencia ...) AS t4


   '''||adescripcion_elemento||'''::character varying as 
criterio1 FROM nmunidad_org WHERE (nmunidad_org.id IN 
('||alista_id_nivel||'))';


execute SQLText;

SQLText = '';

   end loop;

Espero que me puedan dar alguna recomendación para optimizar el diseño.

Saludos,

*/M.Sc. Esneiker Enriquez Cabrera/**
**Esp. B en Ciencias Informáticas*

Desoft en Ciego de Ávila. Joaquín de Agueroesq. Calle 2. Ciego de 
Ávila. Cuba.
*Telf.:* 53 33 22 8971, *email.:* eenriq...@cav.desoft.cu 





__ Información de ESET NOD32 Antivirus, versión de la base de 
firmas de virus 11728 (20150603) __


ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com




Re: [pgsql-es-ayuda] optimizacion

2015-06-08 Por tema Gerardo Herzig
Asi como se veme suena a un

SELECT... from ...GROUP BY unidad, tipo_servicio

junto con un crosstab (para convertir filas en columnas)

http://www.postgresql.org/docs/9.4/static/tablefunc.html


HTH
Gerardo
- Mensaje original -
> De: "Esneiker Enriquez Cabrera" 
> Para: "POSTGRES" 
> Enviados: Lunes, 8 de Junio 2015 9:20:02
> Asunto: [pgsql-es-ayuda] optimizacion
> 
> 
> 
> 
> Saludos a todos los amigos de la comunidad.
> 
> Les escribo porque tengo un problema y no logro encontrar una buena
> forma de resolverlo. Tengo una función para obtener reportes
> estadísticos donde debo retornar el nombre de las unidades
> organizativas, los nombres de los tipos de servicios y los totales,
> de la siguiente forma:
> 
> Unidad
> 
> Tipo de servicio
> 
> T1
> 
> T2
> 
> T3
> 
> T4
>   
> 
>   
> 
>   
> 
>   
> 
>   
> 
>   
> 
> 
> 
> 
> 
> El problema es que entre la tabla de unidades organizativas y tipos
> de servicio no hay relación directa, sino a través de otras tablas
> del negocio. Necesito tirar todas las unidades contra todos los
> tipos de servicio.
> 
> La solución que he dado hasta el momento es con un ciclo for recorrer
> la tabla tipo de servicio e ir calculando los totales e irlos
> insertando en una tabla temporal para al final devolver los valores,
> donde evidentemente esto provoca problemas de rendimiento, el código
> es el siguiente(cortado para no abrumar):
> 
> 
> 
> for aid_elemento,adescripcion from vw_nmtipo_servicio order by
> tipo_servicio loop
> 
> SQLText = 'INSERT INTO estadistico SELECT id, nombre,
> 
> (SELECT COUNT(distinct vw_registro_expediente_incidencia.id) FROM
> vw_registro_expediente_incidencia WHERE ...) AS t1,
> 
> (SELECT COUNT(distinct vw_registro_expediente_incidencia.id) FROM
> vw_registro_expediente_incidencia ...) AS t2,
> 
> (SELECT COUNT(distinct vw_registro_expediente_incidencia.id) FROM
> vw_registro_expediente_incidencia ...) AS t3,
> 
> (SELECT COUNT(distinct vw_registro_expediente_incidencia.id) FROM
> vw_registro_expediente_incidencia ...) AS t4
> 
> '''||adescripcion_elemento||'''::character varying as criterio1 FROM
> nmunidad_org WHERE (nmunidad_org.id IN ('||alista_id_nivel||'))';
> 
> execute SQLText;
> 
> SQLText = '';
> 
> end loop;
> 
> 
> 
> Espero que me puedan dar alguna recomendación para optimizar el
> diseño.
> 
> Saludos,
> 
> M.Sc. Esneiker Enriquez Cabrera
> Esp. B en Ciencias Informáticas
> 
> Desoft en Ciego de Ávila. Joaquín de Aguero esq. Calle 2. Ciego de
> Ávila. Cuba.
> Telf.: 53 33 22 8971, email.: eenriq...@cav.desoft.cu
> 
> 
> 
> __ Información de ESET NOD32 Antivirus, versión de la base de
> firmas de virus 11728 (20150603) __
> 
> ESET NOD32 Antivirus ha comprobado este mensaje.
> 
> http://www.eset.com
> 

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] BDR

2015-06-08 Por tema Guillermo E. Villanueva
Muchas gracias por todos los aportes, creo que podría armar algo
particularizado para las reglas del negocio (no general) utilizando logical
decoding.

Guillermo Villanueva


El 4 de junio de 2015, 21:15, Gerardo Herzig  escribió:

>
>
> - Mensaje original -
> > De: "Guillermo E. Villanueva" 
> > Para: "pgsql-es-ayuda" , "Alvaro
> Herrera" , "Jaime Casanova"
> > 
> > CC: "Martin Diaz" 
> > Enviados: Jueves, 4 de Junio 2015 15:53:42
> > Asunto: [pgsql-es-ayuda] BDR
> >
> >
> > Buenas tardes, hace un tiempo , cuando recién salía BDR pude realizar
> > unas pruebas y la replicación bidireccional funcionó perfectamente.
> > Hasta ese momento no se podía implementar en una topología estrella
> > y quería saber si ahora se puede o sigue siendo una función no
> > considerada con BDR.
> > Me refiero a topología estrella a un servidor central A y otros
> > servidores B, C, D ... conectados a A. (no hay conexión entre los
> > demas servidores)
> > Todos pueden hacer modificaciones las cuales las replican solo hacia
> > A y luego A las redistribuye a los demas.
> > Si no se puede con BDR, es posible hacerlo con otra herramienta?
> >
> >
> > Saludos!
> > Y desde ya muchas gracias por sus comentarios.
> >
> >
> Con slony es posible simular esa clase de trabajo.
> Para simplificar, supongamos un centro de estrella C, y tres "sucursales",
> "X", "Y", "Z", y una unica tabla a replicar.
>
> La idea es particionar la tabla por un campo identificatorio de
> "sucursal", supongamos "sucursal_id"?
> De modo qeu la tabla contenga tantas particiones como "sucursales". A
> nivel local, cada "sucursal" actualiza los datos dentro de la particion
> asignada a dicha sucursal.
>
> Entonces...via slony pueden manejarse las particiones subyacentes, de modo
> que:
>
> "X" replica su particion hacia "C", y luego
> "C" propaga (forwardea) esos cambios hacia "Y" y "Z"
>
> "Y" replica su particion hacia "C", y luego "C" propaga hacia "X" y "Z",
> "Z" replica su particion hacia "C", y luego "C" propaga hacia "X" e "Y"
>
> De esa forma consigues un "simil" replicacion estrella. Se entiende?
>
> HTH,
> Gerardo
>