Tuning Sybase
Tuning Sybase
M. en A. Armando Vega.
Objetivo
Dar a conocer algunas herramientas y
técnicas que permitan maximizar el
desempeño de los servidores de base de
datos SQL server Sybase desde la
versión 15 incluyendo la versión 16.x
Niveles da Afinamiento
• Capa da aplicación – La mayoría de ganancias en
rendimiento vienen del afinamiento de consultas,
basado en el buen diseño de base de datos.
• Capa de base de datos – Las aplicaciones
comparten recursos a nivel de base de datos,
incluyendo discos, el log de transacciones y el caché
de datos (memoria).
• Capa de servidor – A nivel de servidor hay muchos
recursos compartidos, incluyendo los cachés de
datos y de procedimientos almacenados, candados,
y CPUs.
• Capa de dispositivos – El(los) disco(s) que
almacenan sus datos.
• Capa de red – Los servicios de red que permiten a
los usuarios conectarse con ASE.
• Capa de hardware – Las CPUs disponibles.
• Capa de sistema operativo – Idealmente, ASE es la
aplicación principal en la máquina y debe tan solo
compartir CPU, memoria y otros recursos con el
sistema operativo y otro software de Sybase como el
Backup Server o el XP Server.
Nivel de aplicación
• Usar procesamiento remoto o replicado para
mover el soporte a decisiones fuera de la
máquina OLTP.
• Usar procedimientos almacenados para
reducir el tiempo de compilación y el uso de
red.
• Usar el nivel mínimo de bloqueo que se
ajuste a las necesidades de su aplicación.
Capa de base de datos
• Usar umbrales de log de transacciones para
automatizar el vaciado de los logs y evitar quedarse
sin espacio.
• Usar umbrales para el monitoreo de espacio en los
segmentos de datos.
• Usar particiones para agilizar el acceso a los datos.
• Ubicar objetos sobre diferentes dispositivos físicos
para evitar la contención sobre los discos y tomar
ventaja del paralelismo de las operaciones de
lectura/escritura.
• Definir cachés para proporcionar alta disponibilidad a
las tablas e índices críticos.
Capa de servidor
• Afinar el uso de memoria.
• Decidir entre procesamiento en el cliente vs.
procesamiento en el servidor – ¿puede alguna parte
del procesamiento llevarse a cabo en el cliente?
• Configurar el tamaño de los cachés y el tamaño de
los bloques de lectura/escritura.
• Agregar más CPU.
• Programar trabajos en lote y generación de reportes
fuera de horas pico.
• Determinar si es posible mover aplicaciones DSS a
otro ASE.
Capa de hardware
• Agregar más CPU para responder a la carga.
• Seguir los lineamientos de diseño de
aplicaciones en entornos SMP para reducir la
contención.
• Configurar múltiples cachés de datos (cachés
con nombre).
CASOS PRÁCTICOS
La fragmentación de datos
• La fragmentación de datos (también conocida como
un mal agrupamiento o clustering de las páginas de
datos) se presenta debido a la actividad de
operaciones de modificación (insert, update, delete)
en las tablas. La fragmentación representa un uso
ineficaz del espacio, y un alto nivel de fragmentación
significa también que la eficacia de las operaciones
de lectura/escritura será pobre, ya que se requerirán
operaciones adicionales de lectura/escritura para
tener acceso a los datos.
Existen 3 tipos de bloqueo para ASE
• Allpages (APL)
• Datapages (DPL)
• Datarows (DRL)
Páginas bloqueadas en una Tabla APL
Páginas bloqueadas en una Tabla DPL
Páginas bloqueadas en una Tabla DRL
optdiag & reorg rebuild
• El programa optdiag permite visualizar
las estadísticas para cada una de las
tablas e índices de ASE.
• El comando reorg puede ser usado
para recolección de basura y
defragmentación de tablas
optdiag statistics pubs2..titles -Usa -Ppasswd -o titles.opt
• Soluciones
– Una posibilidad es incluir un comando SET NOCOUNT ON
al comienzo del procedimiento almacenado
Para apagar los mensajes, ejecute el comando:
– dbcc tune (doneinproc, 0)
– Para activar los mensajes:
– dbcc tune (doneinproc, 1)
• Mantenga copias de las tablas de datos y
scripts de creación de objetos
– Ddlgen: Una -herramienta basada en Java
que crea definiciones para los objetos de
nivel de servidor - y base de datos-en
Adaptive Server.
– Ejemplo: Genera DDL para una base de
datos llamada pubs2 en un Máquina
llamada HARBOR usando puerto 1955
-----------------------------------------------------------
bcp pubs2..authors -Usa -SSYBASE -c
bcp pubs2..publishers -Usa -SSYBASE -c
bcp pubs2..roysched -Usa -SSYBASE -c
bcp pubs2..sales -Usa -SSYBASE -c
bcp pubs2..salesdetail -Usa -SSYBASE -c
bcp pubs2..titleauthor -Usa -SSYBASE -c
bcp pubs2..titles -Usa -SSYBASE -c
bcp pubs2..stores -Usa -SSYBASE -c
Monitoreo del SQL en Ejecución
Try
Alu
His
CARR
Try
Alu
His
CARR
CARR
cache_carr
Creación de cache_carr
1> sp_cacheconfig “cache_carr", "8M"
2> go
1> sp_helpcache
2> go
Cache Name Config Size Run Size Overhead
------------------------ ------------- ---------- ----------
cache_carr 8.00 Mb 8.00 Mb 0.44 Mb
default data cache 0.00 Mb 237.20 Mb 24.03 Mb