们都知道drop table truncate table时都会先做一次checkpoint 将被删除对象的脏块写入磁盘
客户有一套系统 Oracle 需要做数据迁移 由于种种原因 采用的是逻辑迁移的方式 由于库比较大 超过了 T 而停机时间又有限 因此在正式迁移之前需要做大量的测试 测试的目的 一方面是看迁移流程上是否存在问题 另一方面是看迁移的时候 哪个地方会存在性能瓶颈 并进行优化 同时估算实施迁移时间
第一次测试后 需要把测试产生的大量用户及其对象全部删除 删除用的是drop user username cascade 不幸的是这种方式删除得相当地慢 一个 多个表的用户 删除了 个半小时才删除了 多个表 为什么这么慢有没有办法提高速度
drop table既然要做checkpoint 那么在db cache非常大的情况下 这需要消耗的时间是比较长的 如果能够减少这个时间无疑将大幅提高速度 首先尝试做一次checkpoint 将buffer cache全部刷新出去
view plaincopy to clipboardprint
alter system checkpoint;
alter session set events immediate trace name flush_cache level ;
alter system checkpoint;
alter session set events immediate trace name flush_cache level ;
发现没什么效果
由于db_cache_size有 GB左右 db_keep_cache_size有 G左右 重新设置参数 将db_keep_cache_size设为 将db_cache_size设为 M 重启一下数据库 重新执行删除用户的 *** 作 *** 作很快完成
lishixinzhi/Article/program/Oracle/201311/17079
性能优化大体分为两部分,一个是内存优化,一个是语句优化。语句优化核心就是避免全表查询,内存优化核心是最大化发挥数据库性能提高运行效率。想简单了解性能优化够你学个一两个月了,要想深入了解到精通没有三五年下不来。
Oracle9i&10g编程艺术深入数据库体系 OracleDBA手记_数据库诊断案例与性能优化实践 深入解析OracleDBA入门进阶与诊断案例 Oracle_Press_Oracle_Database_10g_Performance_Tuning_Tips_and_Techniques 强力推荐最后一本
以上就是关于Oracle性能优化:droptable与dbcache全部的内容,包括:Oracle性能优化:droptable与dbcache、oracle性能优化如何做、oracle性能优化有哪些书籍等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)