在Oracle中保存映像而不在以后检索BMP

时间:2010-07-13 17:40:05

标签: java oracle image bitmap blob

目前我在Web应用程序中遇到了一些性能问题,因为Oracle保存图像的情况和我的webapp获取它们。

存储图像的数据库从Oracle Forms的表单中获取它,允许用户沿图像保存一些数据(作为BLOB)。无论您选择哪种格式作为输入,它都会保存在一个包含其描述和内容的表中,相应的字段使图像成为BLOB。

现在转到webapp,它通过查询存储过程和Java WS客户端的Web服务到达表,因此我的webapp获取映像并在需要时将其保存在webapp的服务器的临时文件夹中。输出没有得到任何特定的扩展名,因为DB不会告诉它应该是哪个扩展名。无论如何,broswer可以告诉使用元数据。该过程的简要模式如下

Presentation layer <--- Business logic <--- WS Client ---o)--- WS <--- Stored Proc <--- BLOB column

我的问题是:如何避免数据库服务位图?由于加载了1.5MB的位图,在特定情况和连接不良时性能很差。此webapp必须能够在256Mb连接中正常工作。那么可以做些什么呢?

感谢您的帮助。

编辑:可以使用BFILE数据类型处理事物。谢谢你的帮助。 (2010/10/20)

Edit2 :图像通过oracle表单(6i / 10g)构建的客户端/服务器系统上传到数据库。表单本身就是将图像存储在表格中的blob,将其转换为位图,无论上传的图像是否为jpg (2011/12/07) < / p>

1 个答案:

答案 0 :(得分:1)

不确定您真正想要处理的是哪一层。 如果它是数据库层,那么我怀疑你需要开始使用ORDSYS.OrdImage数据类型,你可以使用内置的format conversion操作将BMP转换为JPG或其他任何内容。

另外还要考虑大位图或大图像文件的问题。