出于显而易见的原因,我决定停止使用 H2(我在生产中使用 Oracle,兼容模式是假的)。因此,我编写了简单的测试框架,它为我的应用程序中的每个测试执行以下操作:
生成随机用户名(在下面的示例中是
test_user
)。创建新用户和表空间:
create tablespace test_user_ts datafile 'test_user_tabspace.dat' size 10M reuse autoextend on next 500K; create temporary tablespace test_user_ts_tmp tempfile 'test_user.tabspace_temp.dat' size 10M reuse autoextend on next 500K; create user test_user identified by test_password default tablespace test_user_ts temporary tablespace test_user_ts_tmp; grant create session to test_user; grant all privileges to test_user;
用测试数据填充数据库。
运行测试。
清理:
drop user test_user cascade; drop tablespace test_user_ts_tmp; drop tablespace test_user_ts;
问题是阶段 1-3 很慢。我怎样才能使它们尽可能快?有没有办法将现有的数据库模式复制到另一个数据库模式?
数据库版本:Oracle 11g
我可以完全控制 Oracle 实例。它在我的开发机器上运行在一个 vagrant 图像上。