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
