我是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