2016-02-26 373 views
0

我們正在從上游系統收到消息,消息的平均大小是2-5KB,但在某些情況下消息可能大到20 MB。爲了審計目的,我們需要將消息存儲在表中。數據庫是IBM DB2 9.7,列類型是CLOB。我有幾個問題:IBM Db2 Clob列存儲大小爲20MB的文本

  • 在DB2中,CLOB列的默認大小是1MB,可以將列大小增加到20 MB。
  • 數據庫是否根據實際數據大小或列大小分配空間,因此假設消息大小爲5KB將爲該行分配多少空間?
  • 有沒有其他更好的方法將這些數據存儲在db2關係數據庫中,因此消息的大小不是約束條件。我們只想使用關係數據庫。

感謝

+0

你試圖尋找這些信息呢? –

+0

是的,我做了,根據ibm我可以增加大小,但沒有發現是否會有任何缺點,我試圖在這裏探索。 –

回答

1

LOB的會使用一些比原來的「消息」,但5KB消息更多的空間將需要比一個20MB的一個遠不如存儲。

查看LOB內聯以查看這些場景。 使用內聯可以將snmall lobs與數據一起存儲(並因此提高IO性能),並且超過一定的大小將存儲在lobspace中。

這可以通過向列的列定義添加一個INLINE LENGTH來實現。直到此值的LOB將與LOBSPACE中的數據和較大的數據一起自動存儲。使用此功能的Performnace體驗非常好。

也看到了最好的practies信息 https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/W7c1e3103820b_4d9e_add6_b5ade3280dcb/page/Inline+LOBs+%28Large+Objects%29

+0

是的,我使用內聯存儲任何小對象感謝27K不同行。 –