Buen día,
Necesito su ayuda, alguien me puede decir o dar alguna idea de como se utiliza la columna de timestamp para veerificar que no exista concurrencia???
Como se compara antes actualizar porfa!!
Gracias!!
| |||
Concurrencia timestamp Buen día, Necesito su ayuda, alguien me puede decir o dar alguna idea de como se utiliza la columna de timestamp para veerificar que no exista concurrencia??? Como se compara antes actualizar porfa!! Gracias!!
__________________ Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar.... |
| |||
Respuesta: Concurrencia timestamp Según lo que he leido en la red, el timestamp es una columa de solo lectura y que se actualiza en automático, hice unas pruebas con insercion y al convertir este tipo de dato en bigint, muestra tipo una version del registro.... En la parte que estoy ahorita es en base a que cambia este valor? Esto me puede ayudar en la concurrencia, para evitar que dos usuarios o más usen el mismo registro al mismo tiempo ¿¿¿¿Me explico?????
__________________ Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar.... |
| ||||
Respuesta: Concurrencia timestamp La concurrencia se maneja por transacciones, no simplemente por columnas de ese tipo. No es el modo de controlar la concurrencia, y francamente no creo que estés leyendo la documentación adecuada de SQL Server. Este es el manual oficial que describe que es, como se usa y para qué sirve un TIMESTAMP: https://technet.microsoft.com/es-ar/...ql.110%29.aspx Ese mismo articulo tiene una nota intersante respecto a ese tipo de dato en el uso de transacciones: Cita: Por otro lado, el recurso de administración de la concurrencia dependerá mucho del lenguaje de programación usado, hay algunas distinciones a realizar dependiendo de qué herramientas uses.Cuando se revierte alguna transacción o se producen errores en alguna validación, el contador de rowversion no se puede restablecer al valor anterior. Esto se prohíbe debido a que si al mismo tiempo se producían otras transacciones, el restablecimiento del contador podría causar problemas. Para obtener el valor actual de rowversion, puede consultarlo mediante @@DBTS. Durante la replicación de SQL Server a SQL Server Compact o viceversa las columnas timestamp no se replican de una base de datos a otra. Esto ayuda a garantizar la unicidad de timestamp. Un valor copiado puede estar en conflicto con un valor existente de alguna fila de datos o con algún valor futuro. El tema de ACID y la concurrencia no es menor.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: Concurrencia timestamp Ok gracias por la respuesta la verdad nunda he manejado la concurrencia entonces por eso ando investigando ya que requiero urgentemente de esto.... El lenguaje que uso es .NET XAML WPF, SQL Server... Podrías darme alguna idea de como manejarlo, lo requiero para las ventas, necesito que cuando una venta se esta consultando no se bloquee, pero cuando se comience a editar este registro quede bloqueado para otros usuarios.. Al igual que para el inventario... Pense en hacerlo de forma manual, por código, pero quiero suponer que hay algo mas facil rapido y eficiente??? alguna idea o tip que me des porfa?
__________________ Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar.... |
| ||||
Respuesta: Concurrencia timestamp Yo tenia 560 usuarios concurrentes en una base de datos, todos tenían un ID (de empleado), aclaro, esto fue en la versión 7.0 de SQL Server. ¿Cómo evitar la concurrencia? Se me ocurrió colocar un cambio ID en los registros y actualizar este ID con el numero del empleado, cuando este, tuviera el registro. Así nunca tenia 2 empleados procesado el mismo registro, además de que si el empleado dejaba "a la mitad de proceso" dicho registro, siempre le mandaba el mismo registro hasta concluirlo. Estamos hablando de un ambiente de CALL CENTER.
__________________ MCTS Isaias Islas |
| ||||
Respuesta: Concurrencia timestamp y porque no investigas sobre los diferentes niveles de aislamiento que ofrece sql server, estos son para manejar la concurrencia, si quieres que se bloqueen los registros en cada transaccion, que se pueden hacer dirty read, phantom reads etc...
__________________ What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me |
| |||
Respuesta: Concurrencia timestamp Cita:
Iniciado por iislas Yo tenia 560 usuarios concurrentes en una base de datos, todos tenían un ID (de empleado), aclaro, esto fue en la versión 7.0 de SQL Server. ¿Cómo evitar la concurrencia? Se me ocurrió colocar un cambio ID en los registros y actualizar este ID con el numero del empleado, cuando este, tuviera el registro. Así nunca tenia 2 empleados procesado el mismo registro, además de que si el empleado dejaba "a la mitad de proceso" dicho registro, siempre le mandaba el mismo registro hasta concluirlo. Estamos hablando de un ambiente de CALL CENTER. En realidad implemente algo parecido.... Use un campo dentro de la tabla tipo timestamp (el cual guarda un arreglo de bytes y automaticamente sql asigan un valor cuando se da de alta o se hace un update al registro). Dentro de mi aplicación:
Este proceso lo hago tambien para inventario, ya que a veces vendian el mismo producto al mismo tiempo... Es algo parecido a lo que tu haces.... Gracias!!!!
__________________ Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar.... |
| |||
Respuesta: Concurrencia timestamp Cita: Gracias por darme ideas, investigare sobre este tema por que si lo considero indispensable, sin embargo la solución que utilice ahorita fue de emergencia debido a que se requeria implementar para hace una semana como todo :) Buscare por ese lado. Thanks!
__________________ Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar.... |
| ||||
Respuesta: Concurrencia timestamp No inventes la rueda de nuevo. Las Bases de Datos solucionaron tu problema hace más de tres décadas. Lo que tienes que hacer es aprender a usar las herramientas que te proveen, no crear métodos que son "parches", y que luego te metan en cuellos de botella irresolubes. Estudia lo que te sugieren antes de avanzar un paso mas.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: Concurrencia timestamp Cita:
Iniciado por gnzsoloyo No inventes la rueda de nuevo. Las Bases de Datos solucionaron tu problema hace más de tres décadas. Lo que tienes que hacer es aprender a usar las herramientas que te proveen, no crear métodos que son "parches", y que luego te metan en cuellos de botella irresolubes. Estudia lo que te sugieren antes de avanzar un paso mas. Buen punto acepto que tienes razón, podrías decirme cuales herramientas me ayudan en esto?
__________________ Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar.... |
| ||||
Respuesta: Concurrencia timestamp Ya te las han dicho: ACID, transacciones. Cuando en este rubro uno dice la palabra "herramientas" se refiere no sólo a programas, sino fundamentalmente a los recursos que el DBMS (SQL Server en este caso) tiene para permitir ese tipo de acciones. Transacciones Entendiendo Locking en SQL Server Guía de versiones de fila y bloqueo de transacciones de SQL Server
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: Concurrencia timestamp Justo sobre eso estoy leyendo ahorita, No se que tanto pueda aplicarlo debido a que la aplicación que manejo esta en XAML, con MVC, y la base de datos esta mapeada dentro de la aplicación, por lo tanto no utilizo procedimientos almacenados para altas ni modificaciones, esto se hace directo en la App.... Y por lo que entiendo esto es a nivel BD, transacciones, procedimientos, supongo que estas herramientas que mencionas no las podría aplicar de esta forma... Gracias por la respuesta si pudieran darme una opción mas les agradeceria ;)
__________________ Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar.... |
| ||||
Respuesta: Concurrencia timestamp ¿Tienes C#.Net en la capa de negocio, o la de acceso a datos? Desde el lenguaje se acceden a las capacidades del SQL Server... Normalmente es transparente .
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: Concurrencia timestamp Gracias si revisaré esta partes, Si se que se acceden a los manejadores de BD, también se que al decir "herramientas" no se refieren unicamente a programas..., la aplicación, como en muchos casos no fue desarrollada por mi y por lo tanto no esta diseñada la BD como a mi me gustaría.... Sin embargo veremos que puedo hacer! Thank you!
__________________ Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar.... |
| |||
Respuesta: Concurrencia timestamp
__________________ Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar.... |
Etiquetas: |