Pregunta

Estoy trabajando con Sybase 15 en mi aplicación y hay un problema de rendimiento relacionado con las uniones anidadas.Tengo un procedimiento almacenado que selecciona 2 columnas de 2 tablas y compara igualdades de más de 10 columnas entre estas 2 tablas.Pero cuando ejecuto esta tienda.proc., el resultado tarda 40 minutos.Agregué la declaración "desactivar la combinación de fusión" en la parte superior de mi proceso y el resultado demora 22 segundos.pero necesito una solución más sin eso.Estaba usando Sybase 12.5 antes y no hubo ningún problema como ese y mi proceso tardó 3 minutos en obtener el resultado.

He comparado las configuraciones del servidor con sp_configure entre 15 y 12.5 y las configuraciones del servidor sybase15 (configuraciones de E/S y memoria) son más grandes que el servidor sybase12.5.

Información:Los recursos del sistema de la PC ubicada en sybase15 son realmente buenos.

¿Fue útil?

Solución

Acabo de pasar 14 horas en el trabajo de depuración problemas de rendimiento críticos que surgieron de una migración de Sybase 15 en el fin de semana.

El optimizador de consultas ha estado haciendo (para nosotros) algunas decisiones muy extrañas.

Tome un ejemplo,

select a, b, c from table1, table2, table3 where ...

frente

create table #temp (col1 int, col2 int, ... etc)

insert #temp
select a, b, c from table1, table2, table3 where ...

Tuvimos la primera ejecución en el momento oportuno, y no podía conseguir a tomar la decisión correcta en el segundo caso, a pesar de una adaptación importante. Hicimos la consulta aparte en las tablas temporales, pero aún así nos dieron resultados inusuales.

Al final se recurrió a SET FORCEPLAN ON en algunas consultas - esto es después de 10 horas de haber tenido nuestros administradores de bases y Sybase en la línea. La solución vino de los desarrolladores de aplicaciones también, más que cualquier consejo de los ingenieros de Sybase.

Así que para ahorrar un poco de tiempo, tomar esta ruta es mi sugerencia.

Otros consejos

Lo mismo que los demás, tengo la conmiseración en lugar de una respuesta real! Estamos viendo un problema donde el ASE 15 planeador de consultas subestima enormemente el costo de un recorrido de tabla y de manera similar sobreestima el costo de utilizar el índice agrupado. Esto resulta en una combinación de mezcla es el plan sugerido. Desactivación de enlaces intercalados o establecer el allrows_oltp optgoal a veces da como resultado un mejor plan de consulta. Los costes estimados son todavía muy lejos, pero tomando una opción fuera de la mesa del planeador de consultas pueden encontrar una buena solución -. Aunque sea a través del análisis erróneo

ASE 15 documentos decir que tiene un conjunto mucho más limpio de algoritmos mientras que el planificador de ASE 12 tenía un montón de casos especiales. Tal vez un caso especial que dice "si usted tiene la columna de índice agrupado en la unión que va a ser más rápido que un recorrido de tabla" no sería tan mala idea ...: (

Sybase volvió a escribir con eficacia el motor de consulta para la versión de 15 lo que significa que las consultas que corrían súper rápido en 12.x pueden ejecutar mucho más lento en la versión más reciente, y viceversa. La única manera de depurar este es comparar el plan de consulta 12.x para el plan de consulta 15 y ver qué se está haciendo de manera diferente.

Todos los interesados ​​en este problema deberían leer este documento:

http://www.sybase.com/files/White_Papers/ASE15-Optimizer-Best-Practices-v1-051209-wp.pdf

Tiene una advertencia sincera sobre la migración de Sybase 12 a Sybase 15.

Cita:

...No trates a ASE 15 como "Juss Other Release".Por mucho que nos gustaría decir que simplemente podría actualizar y señalar sus aplicaciones en los servidores actualizados, la profundidad y la amplitud del cambio en una de las áreas más fundamentales de una base de datos, la ejecución de la consulta, requiere un régimen de prueba más enfocado.Este documento está destinado a proporcionarle los hechos claros y las mejores prácticas para reducir este esfuerzo tanto como sea prácticamente posible.

Continúa hablando sobre el nuevo Optimizador de consultas ASE 15, frente a consultas OLTP y consultas DSS (Sistema de soporte de decisiones).

Sin embargo, hay buenas noticias:En marzo de 2009, Sybase 15.0.3 introdujo un modo de compatibilidad.Consulte el siguiente documento:

http://www.sybase.com/detail?id=1063556

Con este modo, no es necesario analizar las consultas para decidir si se ajustan a los perfiles OLTP o DSS.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top