架构设计中关于配置项放在哪里?
来源:互联网 发布:mac怎么下载photoshop 编辑:程序博客网 时间:2024/06/09 06:09
近期看数据库吓了一跳,负载是以前的3倍。8点到12点有一条SQL执行了两千万次,占用数据库负载30%。我看了以前的数据库报告,次数也是上千万次,不过平均执行时间是0.00s,现在变成0.01s。就是这么一点点变化导致高峰期数据库CPU从50%上升到80%,这是一个巨大隐患,这条SQL正是系统读取配置项的操作。如果这条SQL从0.01s变为0.02s,完全有可能,因为配置表是不断在增加的。
要各开发组查找,发现完全不行,有很多代码调用,查循环调用可操作性太差,从数据库层面上可以看到一些绑定变量的信息,不过要执行很多次:
select value_string,count(1)
from dba_hist_sqlbind s
where sql_id = 'caxnkstk3wk65'
group by s.value_string
order by count(1) desc;
经过一番努力,终于找到两个功能用了spring AOP查配置项。第一个功能是记录请求记录,每次都要读取配置项对请求过滤。第二个功能是对流程的监控,流程上报,撤回都会查一下配置项。这样的功能需求无论配置项在数据库中,还是在内存数据库(coherence或redis)中,都是不可承受之痛。
优化建议:这两个功能非业务功能,是审计功能,完全没有必要每次都读取,配置项写到xml文件中,可以采取热加载。
阅读全文
0 0
- 架构设计中关于配置项放在哪里?
- Java中配置文件放在哪里
- JavaScript放在哪里
- ruby中顶层定义的方法究竟放在哪里?
- javascript应该放在哪里?
- JavaScript脚本放在哪里
- JavaScript脚本放在哪里
- JavaScript脚本放在哪里
- properties配置文件放在哪里
- JavaScript脚本放在哪里
- java中堆栈(stack)和堆(heap)(还在问静态变量放哪里,局部变量放哪里,静态区在哪里.....进来)
- java中堆栈(stack)和堆(heap)(还在问静态变量放哪里,局部变量放哪里,静态区在哪里.....进来)
- java中堆栈(stack)和堆(heap)(问静态变量放哪里,局部变量放哪里,静态区在哪里)
- Liferay6.1的数据库配置信息是放在哪里的?
- 判断的标准应该放在哪里?
- 虚函数表放在哪里?
- 虚函数表放在哪里?
- 虚函数表放在哪里?
- 提高Java开发效率,Idea必装的几款插件
- 1072. Gas Station (30)
- G
- RAII 资源获取就是初始化
- react中ES6语法报错:static propTypes,static defaultProps :modulbuild failed:SyntaxError
- 架构设计中关于配置项放在哪里?
- 主键生成策略
- Fast R-CNN
- 接受可变参数的函数实现多个数相加
- MySql数据库导出csv
- laravel框架总结 -- 发送邮件
- Opencv or unity中Mat+-*/运算为哪般
- react项目学习笔记二(react-router)
- CodeForces