我是DB2的新手,我正在尋找像memory_size(COLUMN_NAME)這樣的函數來返回特定行中該列佔用的字節數。在DB2數據庫中,如何找出varchar列中數據的實際存儲大小?
實施例:我有一個名爲「地址」 VARCHAR(50)數據類型的 &數據被存儲爲列「噴泉街,ZIP-12345」,函數應該返回存儲器佔用由這26個字符組成,不是總列大小也不是數據的長度。
謝謝!
我是DB2的新手,我正在尋找像memory_size(COLUMN_NAME)這樣的函數來返回特定行中該列佔用的字節數。在DB2數據庫中,如何找出varchar列中數據的實際存儲大小?
實施例:我有一個名爲「地址」 VARCHAR(50)數據類型的 &數據被存儲爲列「噴泉街,ZIP-12345」,函數應該返回存儲器佔用由這26個字符組成,不是總列大小也不是數據的長度。
謝謝!
您可以通過目錄(長度將查詢數據庫目錄)找到列的精度。但是,實際存儲大小各不相同。
你不能推斷出類似
cardinality * (leght(column1) + lenght(column2) + ...) = occupied storage
存在影響存儲許多其他的事實。
此外,問題的標題是存儲大小(它似乎表空間 - >容器),但在正文中你談論內存(緩衝池),這些東西在數據庫中是不同的。
「內存佔用」是什麼意思?列精度或存儲使用率?
'length()'還可以處理多字節字符集(對於單字節字符集,長度**是**「佔用的內存」。請參見手冊:http://pic.dhe.ibm.com /infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.sql.ref.doc%2Fdoc%2Fr0000818.html – 2013-04-25 09:54:57
參數'OCTET'有幫助,它提供了字節計數,並且獲得了OCTET_LENGTH函數。 – jaczjill 2013-04-25 10:21:30