entiendo esos factores pero aparte de lo que tenga, la prueba la he hecho
bajo los mismos factores solo modificando el mappin y lanzando un
Escrituras.GetId y midiendo el tiempo que demora en ejecutarse. Entonces
obtengo que haciendo lo mismo sin lazy tarda 423 milisegundos y con lazy
2336, he hecho varias pruebas y los tiempos son estables.

Tengo una bd de access (lo se, lo se)  aunque voy a probar ahora con sql
server a ver q tal...

muy agradecido por sus comentarios.



El 26 de mayo de 2010 14:41, Nelo Pauselli <[email protected]>escribió:

> Rafael, fijate que la primer consulta del no-lazy es igual a la única
> del lazy, por lo que la diferencia de tiempos no está en la estructura
> del select... (si fuesen diferentes habría que mirar los planes de
> ejecución)
>
> Hay muchos factores que influyen en esto. ¿lo estás probando en un
> servidor o en una pc de desarrollo? ¿que carga tenía, durante cada
> prueba, la pc que tenía la base de datos?... hay muuucho al respecto
> de tuning de bases de datos, y por suerte mucho escrito.
>
> Nelo.
>
> 2010/5/26 Rafael Ruiz Menduiña <[email protected]>:
> > vale, deacuerdo. es una prueba que he echo yo modificando la tabla para
> ver
> > que pasaria.
> >
> > * Pero ahora estoy viendo los tiempos de carga y me ha sorprendido ver
> que
> > sin usar lazy obtengo
> >
> > [13:50:16:796][SELECT][SELECT [Numero], Concepto, Fecha, Prevista, Lugar,
> > Folios, Documento, Notario, Dni, [Copias Autorizadas Realizadas], [Copias
> > Simples Realizadas], [Folios Simples Reales], [Folios Autorizadas
> Reales],
> > Retirada, RutaNota, Sustituto from [Escrituras]  WHERE [Numero]=11000012]
> > [13:50:16:843][SELECT][SELECT Notario, [Nombre Notario], [Apellidos
> > Notario], [Numero De Notario], [Dni Notario], Baja, DireccionAgenda from
> > [Datos Generales]  WHERE Notario=51]
> > [13:50:16:890][SELECT][SELECT Dni, Telefono, Email, [Enviar EMail],
> > FelicitaNavidad, [Descuento Corretajes], [Descuento Escrituras],
> > Controlador, Nacionalidad, [Apartado Correos], Bloque, Escalera, Planta,
> > Puerta, [Numero Calle], [Nombre Via], [Numero Via], [Direccion no
> > normalizada], Duplicado1, Duplicado2, [Numero Via2], [Pais Extranjero],
> > [Numero Via Extranjero], [Poblacion Extranjero], [EstadoProvincia
> > Extranjero], [Distrito Extranjero], [Via Extranjero], Via, Municipio,
> Sexo,
> > [Codigo Entidad], [Fecha De Nacimiento], [Fecha Defuncion], Nombre,
> [Lugar
> > De Nacimiento], [Vigente Desde], [Vigente Hasta], Movil, [numero de
> > capitulacion], [ComunidadBienes], Retener, [Cliente Fijo], Mayor, Nif,
> > Conyuge, Pais, ApellidoSoltera, [Cod Regimen Matrimonial], [Cod Estado
> > Civil], profesion, NIE, Incapacidad, [No Residente], Profesional, [Notas
> > Cliente] from Clientes  WHERE Dni='X8888']
> > [13:50:16:937][SELECT][SELECT [Via abreviada], Via from Vias  WHERE [Via
> > abreviada]='CL']
> > [13:50:16:984][SELECT][SELECT Municipio, Ciudad, Provincia, [Codigo
> Postal],
> > [Codigo Provincia], [Codigo Municipio], Delegacion from [Codigos
> Postales]
> > WHERE Municipio='LORCA']
> >
> > Tiempo: 423 ms (vemos como no usa lazy y hace varias selects por cada
> > relacion)
> >
> > * Pero si uso Lazy (elimino not-found=ignore)
> >
> > [13:54:28:953][SELECT][SELECT [Numero], Concepto, Fecha, Prevista, Lugar,
> > Folios, Documento, Notario, Dni, [Copias Autorizadas Realizadas], [Copias
> > Simples Realizadas], [Folios Simples Reales], [Folios Autorizadas
> Reales],
> > Retirada, RutaNota, Sustituto from [Escrituras]  WHERE [Numero]=11000012]
> >
> > Tiempo: 2336 ms. Vemos como se simplifica la select, cargando nada mas
> que
> > escritura y sin embargo el tiempo es mucho mayor.
> >
> > Alguna explicacion?,  yo estaba buscando que funcionara el Lazy
> precisamente
> > para ir mas rapido, no entiendo el por que de este resultado
> >
> > Muchas gracias
> >
> >
> >
> >
> >
> >
> >
> > El 26 de mayo de 2010 14:09, José F. Romaniello <[email protected]>
> > escribió:
> >>
> >> Pero eso significa que tu base de datos esta mal y deberías arreglarla.
> >> No es "si tiene o no tiene", es si esta relacionada a una que no existe,
> >> en tu caso no existe el NotarioNotariaImp con clave 51.
> >> El 26 de mayo de 2010 08:34, Rafael Ruiz Menduiña <[email protected]>
> >> escribió:
> >>>
> >>> Ok lo he probado y FUNCIONA,
> >>>
> >>>  pero de no usar el not-found en caso de que no tener una entidad
> >>> relacionada, en lugar de devolverme nothing me devuelve un proxy.....un
> >>> error y al consultar alguna propiedad obtengo "No row with the given
> >>> identifier exists[empresaDatos.NotarioNotariaImp#51]"
> >>>
> >>> Como controlo ahora para saber si tiene o no una entidad relacionada,
> >>> hasta ahora tenia que comprobar If entidad.mientidadrelacionada is not
> >>> nothing......
> >>>
> >>> muchas gracias.
> >>>
> >>>
> >>>
> >>>
> >>> El 26 de mayo de 2010 13:10, Fabio Maulo <[email protected]>
> escribió:
> >>>>
> >>>> not-found ="ignore" <== causa
> >>>>
> >>>> 2010/5/26 Rafael Ruiz Menduiña <[email protected]>
> >>>>>
> >>>>> - Mi entidad Cliente
> >>>>>
> >>>>> <?xml version="1.0" encoding="utf-8"?>
> >>>>> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
> >>>>> assembly="empresaDatos" namespace="NCliente">
> >>>>>   <class name="empresaDatos.ClienteImp,  NotinDatos, Version=1.0.0.0,
> >>>>> Culture=Neutral, PublicKeyToken=354554543179e" table="Clientes"
> >>>>> dynamic-insert="true" dynamic-update="true" mutable ="true">
> >>>>>
> >>>>>     <id name="Codigo" column="Dni" type="String"
> unsaved-value="-100">
> >>>>>       <generator class="native" />
> >>>>>     </id>
> >>>>> <property name="Telefono" column ="Telefono" type ="String"/>
> >>>>>     <property name="Email" column="Email" type="String"/>
> >>>>>     <property name="EnviarEmail" column="[Enviar EMail]"
> >>>>> type="Boolean"/>
> >>>>>
> >>>>> <many-to-one name="TipoVia" column="Via"  not-found ="ignore" class="
> >>>>> empresaDatos.TiposViaImp,  empresaDatos, Version=1.0.0.0,
> Culture=Neutral,
> >>>>> PublicKeyToken=354554543179e"/>
> >>>>>  </class>
> >>>>> </hibernate-mapping>
> >>>>>
> >>>>> - Mi entidad tipoVia
> >>>>>
> >>>>> <?xml version="1.0" encoding="utf-8" ?>
> >>>>> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
> >>>>> assembly="empresaDatos">
> >>>>>   <class name="empresaDatos.TiposViaImp,  empresaDatos,
> >>>>> Version=1.0.0.0, Culture=Neutral, PublicKeyToken=354554543179e"
> >>>>> table="U_Vias" mutable="false"  >
> >>>>>     <id name="Codigo" column="[Via abreviada]" type="String"
> >>>>> unsaved-value="-100">
> >>>>>       <generator class="native" />
> >>>>>     </id>
> >>>>>     <property name="Via" column="Via" type="String"/>
> >>>>>   </class>
> >>>>> </hibernate-mapping>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> El 26 de mayo de 2010 00:36, José F. Romaniello
> >>>>> <[email protected]> escribió:
> >>>>>>
> >>>>>> mappings
> >>>>>> gracias
> >>>>>>
> >>>>>> El 25 de mayo de 2010 13:57, Mendu <[email protected]> escribió:
> >>>>>>>
> >>>>>>> Buenas a todos,
> >>>>>>>
> >>>>>>> Tengo una entidad mapeada en la que se encuentra un <many-to-one
> >>>>>>> name="TipoVia" ....
> >>>>>>>
> >>>>>>> A  la hora de consultar el log veo que aparece un select de mi
> >>>>>>> entidad + un select del many-to-one a tipovia.
> >>>>>>>
> >>>>>>> bien, he probado todas las configuraciones, lazy, optimistic-lock,
> >>>>>>> que aparece en la documentacion de la version 2.1.0
> >>>>>>>
> >>>>>>> y lo unico que he conseguido es que aparezca una sola select pero
> >>>>>>> sigue accediendo a TipoVia mediante left outer join.
> >>>>>>>
> >>>>>>> Lo que necesito es la carga perozosa, el lazy, que solo me rescate
> el
> >>>>>>> objeto cuando lo necesite.
> >>>>>>>
> >>>>>>> Se que no pongo ejemplos, me gustaria saber si esto es posible y
> como
> >>>>>>> en teoria lo configurais para que funcione de este modo.
> >>>>>>>
> >>>>>>> Muchas Gracias.
> >>>>>>>
> >>>>>>> --
> >>>>>>> Para escribir al Grupo, hágalo a esta dirección:
> >>>>>>> [email protected]
> >>>>>>> Para más, visite:
> http://groups.google.com/group/NHibernate-Hispano
> >>>>>>
> >>>>>> --
> >>>>>> Para escribir al Grupo, hágalo a esta dirección:
> >>>>>> [email protected]
> >>>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
> >>>>>
> >>>>> --
> >>>>> Para escribir al Grupo, hágalo a esta dirección:
> >>>>> [email protected]
> >>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
> >>>>
> >>>>
> >>>> --
> >>>> Fabio Maulo
> >>>>
> >>>> --
> >>>> Para escribir al Grupo, hágalo a esta dirección:
> >>>> [email protected]
> >>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
> >>>
> >>> --
> >>> Para escribir al Grupo, hágalo a esta dirección:
> >>> [email protected]
> >>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
> >>
> >> --
> >> Para escribir al Grupo, hágalo a esta dirección:
> >> [email protected]
> >> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
> >
> > --
> > Para escribir al Grupo, hágalo a esta dirección:
> > [email protected]
> > Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a