我将许多Oracle数据库迁移到ESX环境中的新虚拟机(完全相同的系统,数据库版本等)。我关注的是磁盘IO性能,因为使用了不同的存储。我需要在迁移之前执行sql load检查,之后再进行比较。没有时间进行更深入的性能分析,所以我决定做一个非常简单的测试:
我执行40 000 000行插入并测量迁移前和之后的操作时间。
如果数据库没有其他活动,这种测试就足够了,但我不允许在测试期间停止其他连接。这就是为什么其他工作负载会影响我的测试插入结果的原因。
我解决此问题的想法是在每次测试期间执行一系列测试并收集统计信息,以便我知道每次测试执行时的环境然后我只会比较那些在类似工作负载下运行的测试。
你能否建议我如何处理这个问题,你对这个想法有什么看法?我应该收集哪些统计数据?
答案 0 :(得分:1)
我认为测量时间不够。收集统计数据/因子可以由AWR自动完成。
您应该从拍摄快照开始,例如(但设定你的频率):
BEGIN DBMS_WORKLOAD_REPOSITORY.modify_snapshot_settings( retention => 43200, -- Minutes (= 30 Days). Current value retained if NULL. interval => 30); -- Minutes. Current value retained if NULL. END; /
您可以在迁移之前和迁移之后根据快照制作几个复杂的报告。您将需要任何重要的统计数据。
阅读详情:http://www.oracle-base.com/articles/10g/automatic-workload-repository-10g.php#snapshots