> -----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
