gpt4 book ai didi

DB写操作中的Java并发

转载 作者:搜寻专家 更新时间:2023-10-30 20:01:37 24 4
gpt4 key购买 nike

我有一个场景需要在数据库表中插入 16k 条记录。因此,除了正常的数据库批量插入外,我还创建了 Callable 任务,它将占用相应的批处理(500 条记录的大小)并将以独立的方式进行插入。我很想知道底层数据库将如何接受这些请求。页面级别的数据库锁定是否会阻塞其余的 Java 线程,直到第一个包含 500 条记录的线程被提交?

最佳答案

我的答案是针对 Sybase ASE。对于 Sybase IQ,请参阅 Guillaume 的回答。

Does database locking at page level will block rest of java threads until first thread with batch of 500 records get committed?

这取决于您设置的锁定粒度。 According to Sybase's doc ,一共有三种锁定粒度:

  • Allpages locking, which locks datapages and index pages
  • Datapages locking, which locks only the data pages
  • Datarows locking, which locks only the data rows

因此,如果您选择Allpages,您的线程将阻塞,直到提交当前批处理。否则,您的线程不会阻塞,但自然会产生更高的锁定开销。

有关 Sybase ASE 锁定粒度的完整详细信息,see this documentation .

关于DB写操作中的Java并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34107284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com