Esquema de bloqueo de tabla ASE óptimo de Sybase a para tabla de códigos de referencia

StackOverflow https://stackoverflow.com/questions/5411111

  •  29-10-2019
  •  | 
  •  

Pregunta

Tengo una tabla de códigos de referencia de la que solo se leerá durante el uso normal, y es algo que solo se actualizará para cambios de producto (mensualmente).

¿Qué bloqueo de tabla debería usar en la declaración de creación de tabla?

Estaba asumiendo ALLPAGES porque eso mantiene bajo el número total de bloqueos de lectura que ASE necesita administrar;pero recibo diferentes "consejos" de otro desarrollador sobre el proyecto.

Veo otras tablas de referencia en la base de datos en cuestión que usan ALLPAGES;pero se actualizaron desde la versión 12.5, es posible que sea un vestigio de lo que estaba disponible en ese momento.

La tabla no es muy amplia, tiene dos columnas de identificación de código numérico, una columna char (1) y está agrupada en los dos códigos numéricos.

¿Fue útil?

Solución

Solo tengo una respuesta obvia: ejecute sp_object_stats al principio y elija el esquema de bloqueo.

Otros consejos

Si la tabla de referencia es solo para lectura, el bloqueo de todas las páginas es mejor, ya que requiere el menor número de bloqueos (que usted dijo) y no hay conflicto en los bloqueos compartidos que adquieren los procesos mientras leen datos.

Solo para darle una sugerencia adicional sobre el rendimiento: intente siempre usar una tabla de referencia a través de una subconsulta co-relacionada para aprovechar el almacenamiento en caché de subconsultas.También recuerde que el almacenamiento en caché de la subconsulta se lleva a cabo solo cuando el optimizador no ha aplanado la subconsulta y no ha vuelto a convertirse en una combinación normal.El truco para asegurarse de que la subconsulta no se aplana es usar una función agregada, digamos max (attr) en el atributo.La función máxima simplemente será ficticia sin ningún "Agrupar por".

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