zoukankan      html  css  js  c++  java
  • Oracle 性能调优案例(代码级别)

    业务案例一:

    业务:千万记录表中查询出50条符合条件的记录。

    现象:oracle部署时跨机器,业务取得数据耗时10ms。造成业务性能不达标。

    为了突出主题,对于异常分支,均已省略。

    对于通常写法,

        oracle::occi::ResultSet *rs = NULL;

        oracle::occi::Connection *con = MY_POOL_CONNECTION->get_connection();

        oracle::occi::Statement *stmt = con->createStatement(str_select_info);

        rs = stmt->executeQuery();

        while(rs->next())

        {

          string value(rs->getString(1));

          ...

        }

    通过测试,发现主要耗时在rs->getString()处。

    由于DB与app不在同一台机器,因此当rs->next()时,会多次与oracle交互,产生延时。

    解决方法:

    查看occi 中 关于next()的定义。

    virtual Status next(unsigned int numRows = 1) = 0;

    可知,默认为每次查询1条记录。

    将 rs->next() 修改为 rs->next(50),则每次可以查询50条记录。

    在getString时,不会多次与DB交互,减小延时。    

  • 相关阅读:
    MySQL架构备份
    MySQL物理备份 xtrabackup
    MySQL物理备份 lvm-snapshot
    MySQL逻辑备份mysqldump
    MySQL逻辑备份into outfile
    MySQ数据备份
    前端基础-- HTML
    奇淫异巧之 PHP 后门
    php中代码执行&&命令执行函数
    windows进程中的内存结构(缓冲溢出原理)
  • 原文地址:https://www.cnblogs.com/onlyforcloud/p/3282176.html
Copyright © 2011-2022 走看看