我有一系列需要自动运行的T-SQL查询。(请参阅下文)…目的是允许1个用户一次检索一个唯一的行,并防止其他用户同时检索同一行。
到目前为止,我已经看到了两种可能的解决方案。1)表提示(HOLDLOCK,TABLOCKX)和2)事务隔离级别(SERIALIZABLE)…
我的问题:
哪个选项更好?
还有其他更好的解决方案吗?
DECLARE @recordId int;
SELECT @recordId = MIN([id])
FROM Exceptions
WHERE [status] = ‘READY’;
UPDATE Exceptions
SET [status] = ‘PROCESSING’,
[username] = @Username
WHERE [id] = @recordId;
SELECT * FROM Exceptions
WHERE [id] = @recordId;
在这种情况下,
这两个概念是不同的,您想要的也不是。
若要执行所需的操作,以避免出现竞争情况,您需要强制使用非阻塞(READPAST)排他(UPDLOCK)行级(ROWLOCK)锁。您还可以使用OUTPUT子句将其设为单个原子语句。这样可以很好地扩展。
UPDATE
E
SET
[status] = 'PROCESSING', [username] = @Username
OUTPUT
INSERTED.*
FROM
(
SELECT TOP 1 id, [status], [username]
FROM Exceptions (ROWLOCK, READPAST, UPDLOCK)
WHERE [status] = 'READY'
ORDER BY id
) E
一般来说,锁有3个方面
PAGLOCK, ROWLOCK, TABLOCK
)HOLDLOCK, READCOMMITTED, REPEATABLEREAD, SERIALIZABLE
)UPDLOCK, XLOCK
)和
NOLOCK, TABLOCKX
FAQs in section [36]: [36.1]“序列化”是什么东东? [36.2] 如何选择最好的序列化技术? [36.3] 如何决定是要序列化为可读的(“文本”)还是不可读的(“二进制”)格式? or non-human-readable ("binary") format?") [36.4] 如何序列化/反序列化数字,字符,字符串等简单类型? [36.5] 如何读/写简单类型为可读的
上一小节我们学习了 Java 的输入输出流,有了这些前置知识点,我们就可以学习 Java 的序列化了。本小节将介绍什么是序列化、什么是反序列化、序列化有什么作用,Serializable 接口以及 Externalizable 接口,常用序列化工具介绍等内容。 1. 序列化与反序列化 序列化在计算机科学的数据处理中,是指将数据结构或对象状态转换成可取用格式,以留待后续在相同或另一台计算机环境中,能
问题内容: HashMap实现了Serializable接口;因此可以序列化。我已经看过HashMap的实现,Entry []表被标记为瞬态。由于Entry []表是存储Map的全部内容的表,如果无法序列化,则在反序列化期间如何构造Map 问题答案: 如果您查看源代码,将会看到它不依赖默认的序列化机制,而是手动写出所有条目(作为键和值的交替流): 这比数组要紧凑,数组可以包含许多空条目,链接链
问题内容: 我在android / java中对Location的子类进行序列化遇到了麻烦 位置不可序列化。我有一个名为FALocation的第一个子类,它没有任何实例变量。我已经宣布它可序列化。 然后,我有一个名为Waypoint的第二个类,看起来像这样: 序列化工作正常。 反序列化会产生跟随翼异常(腿对象包含一个航路点): 问题答案: 序列化位置绝对必要吗?也许您可以将其标记为瞬态,并在反序列
我试图序列化和反序列化类的列表(vb),显然里面只有派生类的实例。 我用修饰了list参数,获得如下输出: 但是当我反序列化它时,我一直说他不能反序列化抽象类。 http://james.newtonking.com/json/help/index.html?topic=html/SerializeTypeNameHandling.htm 删除注释行它可以工作!
本文向大家介绍什么是序列化与反序列化?相关面试题,主要包含被问及什么是序列化与反序列化?时的应答技巧和注意事项,需要的朋友参考一下 序列化:将对象状态转换为可保持或传输的格式的过程。将对象实例的字段及类的名称转换成字节流,然后把字节流写入数据流 反序列化:将流转换为对象。 这两个过程结合起来,可以轻松地存储和传输数据。