通信人家园

标题: DataReport中的FORALL循环  [查看完整版帖子] [打印本页]

时间:  2010-4-23 15:59
作者: xingzhenkai     标题: DataReport中的FORALL循环

DataReport中的FORALL循环



在某个项目中上了10台MySQL数据库, 编写了几段脚本收集了MySQL及主机的性能信息, 如CPU利用率, 系统负载, MySQL中的事务数, 查询数量等. 在使用DataReport编写一个页面展示10个Master库的负载信息时, 发现要写很多的SQL语句, 比较繁硕, 若有调整, 更加麻烦.
WEBCHART.QUERY_1=select … from mysql_load where host=’mysql1′
WEBCHART.QUERY_2=select … from mysql_load where host=’mysql1′
WEBCHART.QUERY_3=select … from mysql_load where host=’mysql1′
……
WEBCHART.QUERY_10=select … from mysql_load where host=’mysql1′
    同事数次询问有没有循环的功能, 以减轻DataReport页面编写的任务, 经过几番思量, 为其增加了FORALL循环功能.
WEBCHART.FORALL_n= var1=var1 value 1; var2=var2 value 1
      var1=var1 value 2; var2=var2 value 2
      ……
      var1=var1 value n; var2=var2 value n
    对于FORALL标记的每一行, 都会执行一次第n个定义的循环处理, 比如下面的页面定义.
webchart.xsldoc=xsl/default.xsl
webchart.forall_1=dno=10; title=Dept 10
  dno=20; title=Dept 20
  dno=30; title=Dept 30
webchart.query_1=select  empno, ename
    from emp
    where deptno = :dno
    就会执行三次对EMP表的查询, 分别列出不同部门的员工编号和员工名字, 有了这个功能后, 使得显示10个MySQL Master数据性能页面的编写变得简单可维护多了




通信人家园 (https://www.txrjy.com/) Powered by C114