日历

« 2008-10-14  
   1234
567891011
12131415161718
19202122232425
262728293031 

统计信息

  • 访问量: 59
  • 日志数: 4
  • 建立时间: 2008-09-26
  • 更新时间: 2008-10-14

RSS订阅

我的最新日志

  • LR报告中,吞吐量和点击量的含义

    2008-10-14

        在LR报告中,Total Throughput(bytes)的含义是:在整个测试过程中,从服务器返回给客户端的所有字节数据,不包括从客户端发送给服务器的请求.

        Total Hits的计算不是按照用户的鼠标点击次数计算,而是按照客户端向后台发起了多少次请求计算.比如:在访问一次页面中,假设该页面里包含5个图片,那么,用户只用点击鼠标一次就可以访问该页面,而LR将访问该页面的点击量计算为1+5=6.

  • 关于LR的too many local variables错误

    2008-10-13

        记得在3ATESTING里看过一个视频,里面介绍了出现too many local variables的原因及解决的方法,下面将相应的内容贴出来,让路过的人都可以学习一下,程序如下:

    Action()

    {

     //若在此处加上:char bp[100000];则编译的时候就会出现too many local variables这个错误

     if (条件1){}

     else{}

     return 0;

    }

        为什么加上char bp[100000];就会有那个错误呢,原因其实是因为Action能分配的内存不多,所以若要直接使用占用内存大的变量,则建议将其定义成全局变量,或者是在Action里面使用malloc函数来进行分配。

        这是从3ATESTING那边学习来的,感谢~~~

       

  • statspack

    2008-10-05

        最近在学习使用Statspack工具来监控数据库的性能,已经学习了大半,但在一个环节中出了点小问题,不知道怎么解决~~~

        主要是以下二个问题,在执行spreport.sql这个脚本时,总会提示:

               'DB: ' db_name  '  Instance: ' inst_name '  '-
               'Snaps: ' format 999999 begin_snap ' -' format 999999 end_snap -
           skip 2
     
    ORA-00900: 无效 SQL 语句

    不知道是为什么~~~


    还有使用命令:set trimout on会有如下返回:Cannot SET TRIMOUT
    使用命令:set trimspool on会有如下返回:Cannot SET TRIMSPOOL

    上网找不到相应的解决方法,也不清楚是为什么,研究中,希望路过清楚的同志们伸出援助之手~~~

     

  • 录制ORACLE协议

    2008-9-26

         今天学习录制ORACLE协议的脚本,发现录制完成时,INIT/ACTION中东西都很多,上网查找了些资源,最终在原有录制脚本的环境下,修改了下脚本,简化了很多.

    #include "lrd.h"

    vuser_init()

    {

    //初始化数据库部分

    lrd_init(&InitInfo, DBTypeVersion);

    lrd_initialize_db(LRD_DBTYPE_ORACLE, 2, 0);

    lrd_env_init(LRD_DBTYPE_ORACLE, &OraEnv1, 0, 0);

    lrd_ora8_handle_alloc(OraEnv1, SVCCTX, &OraSvc1, 0);

    lrd_ora8_handle_alloc(OraEnv1, SERVER, &OraSrv1, 0);

    lrd_ora8_handle_alloc(OraEnv1, SESSION, &OraSes1, 0);

     

    //连接数据库

    lrd_server_attach(OraSrv1, "oolong", -1, 0, 0);

    lrd_ora8_attr_set_from_handle(OraSvc1, SERVER, OraSrv1, 0, 0);

     

    //设定数据库密码

    lrd_ora8_attr_set(OraSes1, USERNAME, "scott", -1, 0);

    lrd_ora8_attr_set(OraSes1, PASSWORD, "tiger", -1, 0);

     

    //初始化连接session

    lrd_ora8_attr_set_from_handle(OraSvc1, SESSION, OraSes1, 0, 0);

     

    //开始连接数据库

    lrd_session_begin(OraSvc1, OraSes1, 1, 0, 0);

    return 0;

    }

     

    Action()

    {

    static LRD_VAR_DESC  NUM =

       {LRD_VAR_DESC_EYECAT, 15, 23, LRD_DBTYPE_ORACLE, {1, 1, 0},DT_NUMERIC};

    lrd_ora8_handle_alloc(OraEnv1, STMT, &OraStm1, 0);

     

    //设定查询语句

    lrd_ora8_stmt(OraStm1, "select count(*) NUM from test_scott t\n", 1, 0, 0);

    lrd_ora8_attr_set(OraStm1, PREFETCH_ROWS, "0", -1, 0);

    lrd_ora8_attr_set(OraStm1, PREFETCH_MEMORY, "0", -1, 0);

     

    //执行查询语句

    lrd_ora8_exec(OraSvc1, OraStm1, 0, 0, &uliRowsProcessed, 0, 0, 0, 0,

            0);

    lrd_ora8_bind_col(OraStm1, &OraDef25, 1, &NUM, 0, 0);

              lrd_ora8_save_col (OraStm1, 1, 1, 0, "ROW");  

    lrd_ora8_fetch(OraStm1, 1, 1, &uliFetchedRows, 0, 2, 0, 0);

     

    lr_output_message("value : %s",  lr_eval_string("The  count is: {ROW}"));

    return 0;

    }

     

    vuser_end()

    {

     

    lrd_session_end(OraSvc1, OraSes1, 0, 0);

    lrd_server_detach(OraSrv1, 0, 0);

    lrd_handle_free(&OraSrv1, 0);

    lrd_handle_free(&OraSvc1, 0);

    lrd_handle_free(&OraSes1, 0);

    lrd_handle_free(&OraEnv1, 0);

    return 0;

    }

     

         这些代码单独贴到选择ORACLE协议的空脚本中是没有用的,一定要亲手录制过一遍,然后把代码全删除掉,再把上面的代码贴进去,才可以看到最终的运行结果.感觉ORACLE协议还有很多东西可以深究,比如在监控一个库时,我们一般要注意哪几个点,这个问题我还是不太明白,再研究吧~~~

Open Toolbar