> -----Mensaje original-----
> De: Listas
> 
> Hola,
> 
> No entiendo bien a que te refieres por bloqueo de usuarios:
> 
> 1.- Bloqueo porque el RDB alcanzo el máximo de conexiones permitidas.
> 2.- Las tablas están bloquedas porque otros usuarios las 
> están ocupando.
> 
> Bueno, para el caso 1.-
> 
> En PostgreSQL, el máximo de conexiones se configura desde el 
> postgresql.conf, y está relacionado con la capacidad de tu 
> máquina, pero en muchas ocasiones el aumento de éste 
> parámetro sólo hace el servicio más lento, pero pare éstos 
> casos PostgreSQL te permite crear soluciones de Clúster, 
> Réplicas, Balanceo de Cargas, etc.
> 
> Si tu bloqueo pasa por el límite de conexiones, una buena 
> solución es colocar un pool de conexiones.
> 
> Para el caso 2.-
> Mediante un sistema denominado MVCC (Acceso concurrente 
> multiversión, por sus siglas en inglés) PostgreSQL permite 
> que mientras un proceso escribe en una tabla, otros accedan a 
> la misma tabla sin necesidad de bloqueos. Cada usuario 
> obtiene una visión consistente de lo último a lo que se le 
> hizo commit. Esta estrategia es superior al uso de bloqueos 
> por tabla o por filas común en otras bases, eliminando la 
> necesidad del uso de bloqueos explícitos.
>  

Se refiere al caso 2.
El asunto es que MSSQL 2000 bloquea por página de datos. Un update sobre una
fila te puede bloquear cientos o miles de registros lo cual genera una
situación desagradable en entornos con cierta concurrencia.

Esto ya no es así desde la versión 2005 que soporta bloqueos por registros y
MVCC tras un feature con nombre propio: "optimistic concurrency control
mechanism".

Referencia: http://en.wikipedia.org/wiki/Microsoft_SQL_Server

Saludos,
Fernando.

--
TIP 8: explain analyze es tu amigo

Responder a