当Clob溢出时,在DB表中创建顺序行

时间:2016-01-06 15:15:49

标签: java database jpa optimization db2

我们有一个大于列大小CLOB的CLOB条目。我提出的不是增加Column CLOB大小,而是将溢出并将其放在不同的行上。这有益还是有更好的方法? 我们使用DB2,Java和& JPA。

E.g。我的表Numbers包含Pkey,NumberName和Digit列。数字是10亿BOB。

问题的例子是,我有一个新的字符串,即12mB CLOB。这将导致错误。 我想要做的是添加另一个包含序列的列,然后切掉溢出物和溢出物的溢出物。

E.g。我的表号码将包含列,Pkey,NumberName,Digit和Sequence。

顺序是让我知道哪个首先开始,哪个添加第二个等等。

| Pkey | NumberName |数字|序列|

| 00001 |皮| 10mb | 1 |

| 00002 |皮| 2mb | 2 |


有超过这个10mb的东西是很少见的,大约每1。5年1次,一般不会超过5到5倍,这就是我坚持增加CLOB大小的原因。

3 个答案:

答案 0 :(得分:2)

您只是为自己创造额外的工作并为错误添加机会。

CLOB列可以定义为2 GB;但是,只会分配每行中CLOB数据的实际大小,因此如果您定义CLOB列以适合您的最大值,则不会浪费空间。没有理由人为地拆分您的LOB。

http://www-01.ibm.com/support/docview.wss?uid=swg21970879

答案 1 :(得分:1)

我认为如果你做了你告诉过的话,那么在更大的应用程序中移动表行时会导致性能问题。因为每次你在这个表上触发查询时,它必须查找并遍历所有记录,每当这种数据出现并切断它们时,表就会变大。因此,无论是增加列大小还是不想增加,都可以这样做。第一个10mb数据将进入表A,另一个表B将其截断值并保持此表A中的序列。

答案 2 :(得分:1)

增加CLOB的大小是正确答案。要么增加到20MB又增加它,如果你得到25MB ......或者现在只增加到50MB。

哎呀,考虑现在把它增加到2GB ......没有浪费未使用的空间。