In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Manejo Tablas Grandes MySQL

Foro público de Xailer en español
Responder
Juan Jose
Mensajes: 72
Registrado: Lun Jun 09, 2008 3:43 pm

Manejo Tablas Grandes MySQL

Mensaje por Juan Jose »

hola estoy probando xailer pero me encuentro con un problema que decidiria
si adopto el xailer o no
Tengo una tabla con 5000 registros y 47 campos ago una consulta sobre tres
campos "select nif,afi,nombre from personal" que tarda alrededor de 27
segundos en mostrarse en un browse hay alguna forma de poder acelerarlo
un saludo y gracias
Juan Jose Zamora San
Mensajes: 87
Registrado: Sab Mar 15, 2008 10:29 pm

Manejo Tablas Grandes MySQL

Mensaje por Juan Jose Zamora San »

Deberí­as utilizar la clausula limit en la Select.
Juan Jose escribió:
> hola estoy probando xailer pero me encuentro con un problema que decidiria
> si adopto el xailer o no
>
> Tengo una tabla con 5000 registros y 47 campos ago una consulta sobre tres
> campos "select nif,afi,nombre from personal" que tarda alrededor de 27
> segundos en mostrarse en un browse hay alguna forma de poder acelerarlo
>
> un saludo y gracias
>
>
Rene Flores
Mensajes: 620
Registrado: Jue Mar 23, 2006 2:39 am

Manejo Tablas Grandes MySQL

Mensaje por Rene Flores »

Juan Jose:
Solo por curiosidad, tienes indices sobre algun o alguno de los campos
sobre los cuales estas haciendo el SELECT ?
Saludos
Rene Flores
http://www.ciber-tec.com
escribió:
> hola estoy probando xailer pero me encuentro con un problema que decidiria
> si adopto el xailer o no
>
> Tengo una tabla con 5000 registros y 47 campos ago una consulta sobre tres
> campos "select nif,afi,nombre from personal" que tarda alrededor de 27
> segundos en mostrarse en un browse hay alguna forma de poder acelerarlo
>
> un saludo y gracias
>
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Manejo Tablas Grandes MySQL

Mensaje por jfgimenez »

Juan José,
> hola estoy probando xailer pero me encuentro con un problema que decidiria
> si adopto el xailer o no
>
> Tengo una tabla con 5000 registros y 47 campos ago una consulta sobre tres
> campos "select nif,afi,nombre from personal" que tarda alrededor de 27
> segundos en mostrarse en un browse hay alguna forma de poder acelerarlo
me parece mucho tiempo para una consulta tan sencilla, aunque se trate de
5000 registros. Envíanos un pequeño proyecto de ejemplo con lo que estás
haciendo exactamente, y si es posible también, la BD, aunque sea con datos
ficticios. De esa forma podremos comprobar qué es lo que no está bien.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Juan Jose
Mensajes: 72
Registrado: Lun Jun 09, 2008 3:43 pm

Manejo Tablas Grandes MySQL

Mensaje por Juan Jose »

Hola la tabla esta en un servidor la abro con el browse
asignadole el datasource.
he conseguido reduriar el tiempo con un query de cuatro campos a tres
segundos con esto
:oSQLQueryPersonal:cSelect :="Select id,orden,nif,afiliacion,nombre From
Personal"
luego.........
METHOD MantenEditar( oSender ) CLASS TFrmPersonal
WITH OBJECT FrmEditPersonal():New( Application:oMainForm )
:cText := "Edición de Personal"
:lEdit := .T. // Modo Edicion
:cFiltroNif :=
Application:oMainForm:otabpersonal:oBrw:aCols[2]:Value() // Pasa la Tabla
para Editar
IF :ShowModal() == mrOK
::oSQLQueryPersonal:Refresh()
::oBrw:Refresh()
ELSE
// :oSQLPersonal:Cancel()
ENDIF
END WITH
RETURN NIL
luego en otro formulario para editar
METHOD FormShow( oSender ) CLASS FrmEditPersonal
::oFolderPage1:SetFocus()
If ::lEdit == .T.
WaitOn("Recuperando Datos del Servidor...")
// Abrir con filtro la tabla
::cFiltroNif :=
Application:oMainForm:otabpersonal:oBrw:aCols[3]:Value()
::oSQLQuery1:cSelect := "Select * From personal where nif like
'" + ::cFiltroNif + "'"
::oSQLQuery1:lOpen := .t.
//Establezco un filtro antes de abrir las tablas
::oSQLContratos:Filter("NIF = '" + ::cFiltroNif + "'")
::oSQLTableBajait:Filter("NIF = '" + ::cFiltroNif+ "'")
::oSQLTableSanciones:Filter("NIF = '" + ::cFiltroNif + "'")
::oSQLPrestamos:Filter("NIF = '" + ::cFiltroNif + "'")
::oSQLTableRetenciones:Filter("NIF = '" + ::cFiltroNif + "'")
::oSQLTableHijos:Filter("NIF = '" + ::cFiltroNif + "'")
// Abre Tablas con Filtro
::oSQLContratos:lOpen := .T.
::oSQLTableBajait:lOpen := .T.
::oSQLTableSanciones:lOpen := .T.
::oSQLPrestamos:lOpen := .T.
::oSQLTableRetenciones:lOpen := .T.
::oSQLTableHijos:lOpen := .T.
::CargaArray()
::oSQLQuery1:Edit()
WaitOff()
ElseIf ::lEdit ==.F.
************************************************************ ************************
********************** ME AÑADE EL REGISTRO, PERO NO FUNCIONA AL GRABAR
********************** NO SE SILO HAGO CORRECTAMENTE
************************************************************ *************************
::oSQLQuery1:cSelect := "Insert Into Personal(Orden,
Delegacion,Nombre,Fecha_Alta,
Nombre_P,Nombre_M,Afiliacion, NIF, Fecha_Nacimiento,Poblacion_N,
Estado_C,Nacionalidad,Sexo,Provincia_N,Telefono_1,Via,Domici lio,N_Domicilio,
Codigo_Postal, Poblacion, Provincia, Codigo_C,
Fecha_Vto_C,Fecha_V_P,Fecha_E_A, Campo25,Tipo_Contrato, Categoria,
Nombre_Categ,Grupo_Antigueda, Grupo_Cotizacion, Baremo,
Campo32,Campo33,Centro_Trabajo, Des_Cen, Numero_Hijos,
Cuenta_Banco,Numero_Oficina, Dc, Campo40, Campo41,
Campo42,Cuente_Cotizacion,Empresa, Fecha_Baja_C,Numero_Banco, Apellidos,
Movil,Telefono_2,Referencia,Nombre_Banco, Codigo_P_B, Poblacion_Banco,
Provincia_Banco,Situacion_Irpf, Nif_Conyuge,Minusvalia, Domicilio_Banco, id)
Values('', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
'','', '', '', '', '', '', '', '', '', '', '', '', '', '', '','', '', '',
'', '', '', '','','0')"
::oSQLQuery1:lOpen := .t.
::CargaArray()
::oSQLQuery1:Edit()
EndIf
RETURN Nil
añadir registros para editarlos repito la consulta otra vez para traerme
todos los campos y funciona bien el problema esta al añadir, y no se si
tambien al borrar no he llegado hay
Un Saludo, Gracias
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:[email=484ed57f@ozsrv2.ozlan.local...]484ed57f@ozsrv2.ozlan.local...[/email]
> Juan José,
>
>> hola estoy probando xailer pero me encuentro con un problema que
>> decidiria si adopto el xailer o no
>>
>> Tengo una tabla con 5000 registros y 47 campos ago una consulta sobre
>> tres campos "select nif,afi,nombre from personal" que tarda alrededor de
>> 27 segundos en mostrarse en un browse hay alguna forma de poder
>> acelerarlo
>
> me parece mucho tiempo para una consulta tan sencilla, aunque se trate de
> 5000 registros. Envíanos un pequeño proyecto de ejemplo con lo que estás
> haciendo exactamente, y si es posible también, la BD, aunque sea con datos
> ficticios. De esa forma podremos comprobar qué es lo que no está bien.
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
> http://www.xailer.info
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Manejo Tablas Grandes MySQL

Mensaje por jfgimenez »

Juan José,
> ::oSQLQuery1:cSelect := "Insert Into Personal(Orden,
> Delegacion,Nombre,Fecha_Alta, Nombre_P,Nombre_M,Afiliacion, NIF,
> Fecha_Nacimiento,Poblacion_N,
> Estado_C,Nacionalidad,Sexo,Provincia_N,Telefono_1,Via,Domici lio,N_Domicilio,
> Codigo_Postal, Poblacion, Provincia, Codigo_C,
> Fecha_Vto_C,Fecha_V_P,Fecha_E_A, Campo25,Tipo_Contrato, Categoria,
> Nombre_Categ,Grupo_Antigueda, Grupo_Cotizacion, Baremo,
> Campo32,Campo33,Centro_Trabajo, Des_Cen, Numero_Hijos,
> Cuenta_Banco,Numero_Oficina, Dc, Campo40, Campo41,
> Campo42,Cuente_Cotizacion,Empresa, Fecha_Baja_C,Numero_Banco, Apellidos,
> Movil,Telefono_2,Referencia,Nombre_Banco, Codigo_P_B, Poblacion_Banco,
> Provincia_Banco,Situacion_Irpf, Nif_Conyuge,Minusvalia, Domicilio_Banco,
> id) Values('', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
> '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
> '', '','', '', '', '', '', '', '', '', '', '', '', '', '', '', '','', '',
> '', '', '', '', '','','0')"
> ::oSQLQuery1:lOpen := .t.
> ::CargaArray()
> ::oSQLQuery1:Edit()
Para ejecutar de forma directa comandos 'insert', 'update' o 'delete' debes
utilizar el método Execute() del datasource, ya que dichos comandos no
retornan un conjunto de datos. Después de lanzar el Execute(), puedes
simplemente ejecutar un Refresh() en el dataset que ya tenías abierto para
que actualice los datos.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Responder