toplink排序按预分配大小跳跃



我们有一个使用表排序的应用程序。每次我们调用服务器时,表中的序列号(此处为SEQ_R)都会表现得很奇怪。序列号增加90000,有时增加50。其中,增量应为1。

我不得不提一下,我们使用MSSQl服务器。

在我们的会话.xml

<sequencing>
  <default-sequence xsi:type = "table-sequence">
  <name> Custom </name>
  <preallocation-size> 80000 </preallocation-size>
  <table> SEQ </table>
  <name-field> SEQ_N </name-field>
  <counter-field> SEQ_R </counter-field>
  </default-sequencing>
</sequencing>

在我们的mappings.xml 中

<toplink:sequencing>
  <toplink:default-sequence  xsi:type = "toplink:native">
  <toplink:preallocation-size> 80000 </toplink:preallocation-size>
</toplink:default-sequence>
</toplink:sequencing>

预分配的整个想法是,toplink将使数据库中的序列增加80000,并在内存中为接下来需要新id的80000个项目保留一个计数器。如果您退出服务器,内存中的计数器将丢失,而toplink将为下一批再次读取并更新数据库序列。

如果确实希望增量为1,可以在MSSQL中使用IDENTITY列。请参阅使用非Oracle数据库平台的Toplink本机排序

相关内容

  • 没有找到相关文章

最新更新