公司打算把数据库从9i升级到10g,要求做个压力测试。
不知各位有没有进行过压力测试,有什么软件介绍或者
有什么好的方法么?

解决方案 »

  1.   


    我们以前用过 Oracle数据库压力测试工具SwingBench 来着!
      

  2.   

    我听说有个Bench Factory,但是没有用过,不知道性能如何!
      

  3.   

    知道loadrunner可以用来做压力测试,但是我没有用过.
      

  4.   

    loadrunner是好工具,报表和统计信息比较全面和强大,不过要钱如果是简单一点的可以使用jmeter,开源免费。
      

  5.   

    优秀的压力测试监控数据库性能的SQL 
    查看tablespace的空間使用情況
    select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name
    1. 监控事例的等待 
    select event,sum(decode(wait_Time,0,0,1)) "Prev", 
    sum(decode(wait_Time,0,1,0)) "Curr",count(*) "Tot" 
    from v$session_Wait 
    group by event order by 4; 
    2. 回滚段的争用情况 
    select name, waits, gets, waits/gets "Ratio" 
    from v$rollstat a, v$rollname b 
    where a.usn = b.usn; 
    3. 监控表空间的 I/O 比例 
    select df.tablespace_name name,df.file_name "file",f.phyrds pyr, 
    f.phyblkrd pbr,f.phywrts pyw, f.phyblkwrt pbw 
    from v$filestat f, dba_data_files df 
    where f.file# = df.file_id 
    order by df.tablespace_name; 
    4. 监控文件系统的 I/O 比例 
    select substr(a.file#,1,2) "#", substr(a.name,1,30) "Name", 
    a.status, a.bytes, b.phyrds, b.phywrts 
    from v$datafile a, v$filestat b 
    where a.file# = b.file#; 
    5.在某个用户下找所有的索引 
    select user_indexes.table_name, user_indexes.index_name,uniqueness, column_name 
    from user_ind_columns, user_indexes 
    where user_ind_columns.index_name = user_indexes.index_name 
    and user_ind_columns.table_name = user_indexes.table_name 
    order by user_indexes.table_type, user_indexes.table_name, 
    user_indexes.index_name, column_position; 
    6. 监控 SGA 的命中率 
    select a.value + b.value "logical_reads", c.value "phys_reads", 
    round(100 * ((a.value+b.value)-c.value) / (a.value+b.value)) "BUFFER HIT RATIO" 
    from v$sysstat a, v$sysstat b, v$sysstat c 
    where a.statistic# = 38 and b.statistic# = 39 
    and c.statistic# = 40; 
    7. 监控 SGA 中字典缓冲区的命中率 
    select parameter, gets,Getmisses , getmisses/(gets+getmisses)*100 "miss ratio", 
    (1-(sum(getmisses)/ (sum(gets)+sum(getmisses))))*100 "Hit ratio" 
    from v$rowcache 
    where gets+getmisses <>0 
    group by parameter, gets, getmisses; 
    8. 监控 SGA 中共享缓存区的命中率,应该小于1% 
    select sum(pins) "Total Pins", sum(reloads) "Total Reloads", 
    sum(reloads)/sum(pins) *100 libcache 
    from v$librarycache; 
    select sum(pinhits-reloads)/sum(pins) "hit radio",sum(reloads)/sum(pins) "reload percent" 
    from v$librarycache; 
    9. 显示所有数据库对象的类别和大小 
    select count(name) num_instances ,type ,sum(source_size) source_size , 
    sum(parsed_size) parsed_size ,sum(code_size) code_size ,sum(error_size) error_size, 
    sum(source_size) +sum(parsed_size) +sum(code_size) +sum(error_size) size_required 
    from dba_object_size 
    group by type order by 2; 
    10. 监控 SGA 中重做日志缓存区的命中率,应该小于1% 
    SELECT name, gets, misses, immediate_gets, immediate_misses, 
    Decode(gets,0,0,misses/gets*100) ratio1, 
    Decode(immediate_gets+immediate_misses,0,0, 
    immediate_misses/(immediate_gets+immediate_misses)*100) ratio2 
    FROM v$latch WHERE name IN ('redo allocation', 'redo copy'); 
    11. 监控内存和硬盘的排序比率,最好使它小于 .10,增加 sort_area_size 
    SELECT name, value FROM v$sysstat WHERE name IN ('sorts (memory)', 'sorts (disk)'); 
    12. 监控当前数据库谁在运行什么SQL语句 
    SELECT osuser, username, sql_text from v$session a, v$sqltext b 
    where a.sql_address =b.address order by address, piece;
      

  6.   

    推荐 loadrunner,以前搞软件测试时就用这软件。功能比较强大..好多公司都用这个..   
      

  7.   


    这些是性能监控,而非性能测试所谓性能测试,是一种测试方法,通过一些工具或者脚本,做出高压力情况下的生产环境,从而得到被测试服务器在高压力情况下的性能运行的状况分析想loadrunner很强大,他好像也可以读一些性能动态表,和本身OS的状况的。Jmeter相对来说,比较弱。
      

  8.   


    楼主的意思是升级数据后测试系统的压力?如果没有增加业务量,系统现在运行很正常,升级后肯定是没问题的.如果增加业务量的话,那也是web服务器和数据库服务器性能共同决定了.
    loadrunner 可以测出系统最佳性能点,最大承受压力. 如访问量. 支持多少用户同时访问.一般升级数据库是没必要做压力测试的,系统都上线了,还测试个啥呀.. 那是系统上线之前做的事..
      

  9.   


    用Toad可以???????
    toad不是相当于一个oem么,如何做压力测试啊?