sql - 使用 SQL 从 Oracle 数据库中插入和检索 BLOB 数据的方法有哪些?

标签 sql database oracle oracle10g oracle11g

我尝试使用 SQL 开发人员插入 BLOB 数据。但是我找不到实际用于插入 BLOB 数据的插入语句。

除此之外,数据库速度真的很慢。对于小文件,它执行得很好。但是当我尝试将 50 mb 的 avi 文件导入 BLOB 时,它花了 3-4 分钟而且仍然没有完成。当我尝试将 BLOB 数据导出到文件时,导出过程也很慢。我使用的是 Oracle 10g 快捷版。如果数据库速度甚至比文件系统速度还慢,那么为什么要使用数据库来存储 BLOB 数据?还有其他优化性能的方法吗?

最佳答案

首先,您应该预计将 BLOB 存储在数据库中(有时会慢一些,但通常会非常慢),但绝对不会比将它们存储在文件系统中快。将它们存储在数据库中的原因不以性能为中心,而是以例如:

  • 集群或负载平衡场景中(共享)文件系统不可用
  • 易于备份:单进程,a.o.t. 2 使用文件和数据库时的过程
  • 事务安全:BLOB 要么存在,要么完整,要么不存在,但不处于半生不熟的阶段
  • 其他我暂时想不起来。

一般的经验法则是,如果这些都不与您有关,您应该将文件存储为...文件。恕我直言,将元数据和路径名存储在数据库中是一种良好且常见的做法。

关于 Oracle 调优:有很多关于它的书籍。我怀疑以死树平装本格式将它们加起来远远超过一吨。您可能首先查看 Oracle 进程的内存消耗——经验法则:如果它小于 gig 并且您使用 BLOB,那么您就有麻烦了。阅读不同的内存池以及如何增加它们。速成版的某些限制可能适用。

关于sql - 使用 SQL 从 Oracle 数据库中插入和检索 BLOB 数据的方法有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12219734/

相关文章:

mysql - Sql 前一天拉取(周一除外)周五至周日拉取

sql - 如何按值分组以识别最小和最大日期,但按特定顺序排列?

php - Codeigniter 模型从 -7 天开始获取行

c# - 我是否需要使用 Entity Framework 的 using 语句?

sql - Oracle触发器更新同一个表

python - 如何从 pyodbc 连接到 Oracle 10?

sql - 使用SMO从SQL脚本出单个对象

database - VFP 索引并在 CDX 存在时使用 INDEX ON 保存

sql - 如何获取每个ID的正负数计数?

mysql - 将 User-Agent 字符串的哈希存储在 MySQL 表中 : insert if not exists, 返回 id