Ayuda con problemas de rendimiento de un servidor sybase sqlAnywhere la realizar consulta a tablas

Tengo un Servidor Sybase SqlAnywhere 5.0 con muchas tablas sin embargo me interesan dos tablas de casi un millón de registro y sigue creciendo, el problema es que cuando hago una consulta a través del Isql este demora muchísimo podría decir que más de 1 hora y solo para mostrarme un rango corto de todos los registros, peor aun si esa misma consullta la hago desde excel a través de una conexión odbc, sepase que el rango de datos devuelto no supera los registros de excel, como puedo agilizar la consulta.
¿Es problema del Servidor?
Aquí muestro mi consulta:
select servicio.ti_serv, servicio.id_serv, id_pers, pers_exam.id_pers, ap_pat_pers
from servicio, serv_exam_medi, pers_exam
WHERE servicio.ti_serv = serv_exam_medi.ti_serv and servicio.id_serv = serv_exam_medi.id_serv and serv_exam_medi.id_pers = pers_exam.id_pers and fe_ingr_serv BETWEEN '2008-10-01' AND DATEFORMAT(getdate(),'yyyy/mm/dd')
order by servicio.ti_serv, servicio.id_serv

1 respuesta

Respuesta
1
Yo creo que tu problema se debe no al servidor sino a tu base de datos, te recomiendo mirar el diseño de indices, seria la única manera de mejorar el rendimiento de la consulta.
Tengo un Servidor Sybase SqlAnywhere 5.0 con muchas tablas sin embargo me interesan dos tablas de casi un millón de registro y sigue creciendo, el problema es que cuando hago una consulta a través del Isql este demora muchísimo podría decir que más de 1 hora y solo para mostrarme un rango corto de todos los registros, peor aun si esa misma consullta la hago desde excel a través de una conexión odbc, sepase que el rango de datos devuelto no supera los registros de excel, como puedo agilizar la consulta.
¿Es problema del Servidor?
Aquí muestro mi consulta:
select servicio.ti_serv, servicio.id_serv, id_pers, pers_exam.id_pers, ap_pat_pers
from servicio, serv_exam_medi, pers_exam
WHERE servicio.ti_serv = serv_exam_medi.ti_serv and servicio.id_serv = serv_exam_medi.id_serv and serv_exam_medi.id_pers = pers_exam.id_pers and fe_ingr_serv BETWEEN '2008-10-01' AND DATEFORMAT(getdate(),'yyyy/mm/dd')
order by servicio.ti_serv, servicio.id_serv
Estimado experto, he revisado la base de datos, y efectivamente tiene los indices adecuados, justo en la clausula where están los campos que tienen los indices, aun así no doy con el problema, ¿podrá ser mi consulta? Acá te dejo la tabla por favor dale una miradita:
http://galeon.hispavista.com/isppjsch/index.html
Si estas seguro que los indices son los adecuados, entonces deberías con las herramientas del sistema hacerle un tunning a la base de datos a ver que problemas encuentra y si aun persiste el problema entonces tu problema podría ser de maquina.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas