sql-server – 事务隔离级别不同的线程大量写入

我有很多线程在DB中写入两个表中的一些数据. tbl_raw_data和tbl_parsed_data,其中tbl_parsed_data具有tbl_raw_data的外键.

我还需要写作超高速.

在检查改进写入的选项时(假设阅读时间非常重要),我的一位朋友告诉我,我需要检查适合我逻辑的事务隔离级别.
在阅读了一些关于这个问题的文章后,我理解的是这个属性会影响阅读.

是否存在影响写作的事务隔离级别?对于许多连接上运行的大量线程,哪个隔离级别“最佳”?

我在找错了地方吗?

我能做些什么来改善大量写作?

我使用SQL服务器,线程来自TomEE服务器,它通过JDBC和JPA(ORM)写入通过HTTP请求发送的数据.

谢谢!

最佳答案
ORM需要有关第一次写入(SCOPE_IDENTITY等)的信息才能完成第二次写入.这意味着在客户端事务中通常调用2(带有OUTPUT子句)或3数据库(带有SELECT SCOPE_IDENTITY).

没有任何修补隔离级别将消除这些2或3次呼叫.

如果想要更高的性能,那么最好的概念存储过程就可以在一次数据库调用中对两个表进行原子写入(在事务中).这意味着数据库调用减少了50%或66%

更进一步,你必须决定“超高速”的真正含义

例如,您是否应该将SSD用于事务日志文件:托管日志文件的驱动器由于提前写入日志记录而确定整体写入速度.

然后是设计:您使用IDENTITY列或GUID还是Hibernate样式的nvarchar键? ORM是否为您设计了数据库?

转载注明原文:sql-server – 事务隔离级别不同的线程大量写入 - 代码日志