目前我在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>
答案 0 :(得分:1)
不确定您真正想要处理的是哪一层。 如果它是数据库层,那么我怀疑你需要开始使用ORDSYS.OrdImage数据类型,你可以使用内置的format conversion操作将BMP转换为JPG或其他任何内容。
另外还要考虑大位图或大图像文件的问题。