我尝试使用 SQL Developer 插入 BLOB 数据。但我找不到实际用于插入 BLOB 数据的插入语句。
除此之外,数据库速度确实很慢。对于小文件,它执行得很好。但是当我尝试将 50 mb avi 文件导入 BLOB 时,花了 3-4 分钟并且仍然没有完成。当我尝试将 BLOB 数据导出到文件时,导出过程也很慢。我使用的是 Oracle 10g Express 版。如果数据库速度比文件系统速度还慢,那么为什么要使用数据库来存储BLOB数据呢?还有其他方法可以优化性能吗?
首先,你应该expect将 BLOB 存储在数据库中会比将它们存储在文件系统中慢一些(有时会慢一些,通常会明显慢一些),但绝对不会快。将它们存储在数据库中的原因并不在于性能,而是在于例如:
- 集群或负载平衡场景中(共享)文件系统不可用
- 易于备份:单一进程,a.o.t.使用文件和DB时的2个进程
- 事务安全:BLOB 要么存在并且完整,要么不存在,但不处于半生不熟的阶段
- 其他的我现在想不起来。
一般的经验法则是,如果您不关心这些,您应该将文件存储为...文件。恕我直言,将元数据和路径名存储在数据库中是一种良好且常见的做法。
关于 Oracle 调优:有一些相关书籍。我怀疑它们的总数远远超过一吨枯树平装本格式。您可能首先查看 Oracle 进程的内存消耗 - 经验法则:如果小于 1 GB 并且您使用 BLOB,那么您就会遇到麻烦。了解不同的内存池以及如何增加它们。 Express 版本可能存在一些限制。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)