oracle - 为 CI build设置/拆除 Oracle 模式,无需分割目录

标签 oracle hibernate jpa continuous-integration

我想让 CI 构建(例如 Hudson)设置和拆除 Oracle 11g 模式,作为相当普通的 JSF/JPA 应用程序的每晚构建/测试周期的一部分。

最明显的方法是删除并重新创建所有表。虽然这感觉相当标准(至少,这就是 Hibernate/JPA 工具会自动为您做的事情),但我已经让 Oracle DBA 警告我,在重复的对象创建/删除周期后,Oracle 目录将变得碎片化。最终这将导致性能问题,因为 SYSTEM 表空间无法进行碎片整理/合并。

我的问题是:

  • 碎片化是一个真正的问题,还是在典型的 webapp 开发环境中不需要担心?
  • 如果碎片真的是一个问题,有没有比 DROP TABLE/CREATE TABLE 更好的方法来拆除和重新创建 Oracle 中的模式?

  • 谢谢!

    最佳答案

    不要相信那些 DBA

    至少对于 10g 及以上版本,在使用本地管理表空间 (LMT) 时,这应该不是问题。

    即使这确实导致了任何碎片化,我也非常怀疑您是否可以衡量其影响 - 特别是在用于 CI 的数据库上。

    关于oracle - 为 CI build设置/拆除 Oracle 模式,无需分割目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8315977/

    相关文章:

    sql - Oracle 中的复杂左外连接,转换为 PostgreSQL

    hibernate - 如何使 Hibernate 应用程序独立于数据库?

    java - 用于 SQL native 查询的 Hibernate 乐观锁定

    java - org.hibernate.AnnotationException : @OneToOne or @ManyToOne on entities. Ques#tion.examId 引用了一个未知实体:long

    java - 如何限制 JPA Batch 查询的内存使用?

    Java存储过程

    java - 在 Web 应用程序中创建 R 脚本并针对远程数据库执行它

    oracle - 我可以删除/添加属性而不产生任何后果吗? Oracle 对象类型

    mysql - 如何在 Hibernate、MySQL 应用程序中使用 import.sql 文件将默认数据插入表中

    postgresql - 为什么 hibernate 在删除时生成交叉连接?