忽然想到了测试数据库的真实io能力,虽然硬件工程师有套方法测试iops ,虽然oracle也推出了oraxxx的测试小工具. 实际应用环境中 因为表空间,表的设置,块的大小等因素影响到iops. 比如想一个全表扫描,需要多久才能出来呢? 分别在工作负责空闲情况下,高的情况下,并行的情况下.
做公司的研发数据库上做了相应的实验,就在空闲情况下得到的时间不太有效.
比如一个表有1万个块,每个块8k 得到公司的io能力 每秒285m; 36480块. 总觉得 alter system flush buffer_cache 和 shared_pool 清空内存总是无效样.
在家里做相应的实验启动了作用.
用一个384个块的表 selet count(*) from t_test
flush buffer_cache 和 shared_pool 波动范围 0.329 ,0.297 0.266 秒
flush shared_pool; --0.187
flush buffer_cache; --0.172 0.156 秒
那么io能力是: 384/0.172*8/1024=17.44m
使用并行提示 /*+parallel(t,4)*/ /*+parallel(t,3)*/ /*+parallel(t,2)*/
分别得到时间: 0.64 0.375 0.296 看来单cpu的并行能力很耗时间的.
内存读是多少了. 只要重复执行下就便晓得了 而得到时间是 0.031和0.015
内存io: 96.77m和200m
,