【发布时间】:2010-03-09 16:59:31
【问题描述】:
我正在编写一个通用的 Http 资源托管服务,并将较大的对象作为 BLOB 存储在 Oracle 数据库中。我希望能够在返回存储对象时设置“Content-Length”标头,这意味着我需要在开始将 BLOB 写入客户端之前知道它的大小(我知道我可以使用分块编码,并且我在某些情况下)。是否有人对调用 dbms_lob.getlength() 对每次读取产生的性能影响有任何经验,还是我应该在 INSERT 上计算 BLOB 大小并将其存储在表中?平均而言,我希望写入速率高于读取速率。我现在正在编写一个基准测试来尝试看看影响是什么,但这似乎是一个常见的问题,我认为有人可能已经弄清楚了这一点。此外,使用 JDBC/Spring 3,我什至如何计算写入时的 BLOB 大小? (而且我不能使用触发器或存储过程)谢谢。
【问题讨论】:
-
测量,测量,测量。猜测只是猜测。
-
与往常一样,但对于像 Oracle(被数千人使用)这样的东西,这似乎是一种非常常见的范例,并且许多 DBA 已经解决了这一问题。如果有任何“陷阱”,我想知道。