事务处理的概念已经被广泛的使用,事务处理的级别可以影响系统的性能,对系统做正确的优化是提升系统性能的重要保证。MSSQL通过增加事务的级别可以实现对事务处理的优化。
MSSQL事务处理级别分为以下几个等级:
Read uncommitted:读取未提交数据,支持短期读取,适用于无要求高可用性业务处理,在性能优化中比较适用,可以支持大量的并发处理,但是不能保证准确。
Read commited:必须在数据提交之后才能读取,这样的事物级别处理可以有效的保证正确性,但是在提升并发性能方面,不够理想。
Repeatable read:不允许更新或插入操作,只允许读取数据,可以保证数据的准确性,但是性能略低于Read commited
Serializable:会锁定所有涉及数据被修改的数据,有效的保证数据的安全性,但是会大大降低并发性能,降低系统效率。
针对于MSSQL,一般情况下,可以采用Read commited和Repeatable read的级别,来提升系统的并发处理访问性能,但是这种级别只适用于短时的查询,长时的查询行为请采用Serializable的最高级别.
下面是MSSQL使用代码来调整事务处理级别的例子:
BEGIN TRANSACTION
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
-- 即可 ,或 REPEATABLE READ
EXEC SomeProcedure
-- 执行你的提交参与者
COMMIT TRANSACTION
总体而言,MSSQL的事务处理级别的调整是非常重要的优化操作,以便提高系统的性能。具体的调整依据实际的系统情况进行选择,如何对系统做正确的优化,是应用MSSQL事务处理的一个重要的思考点和行动点。