开发DBA(APPLICATION DBA)的重要性
开发DBA是干什么的?
1. 审核开发人员写的SQL,并且纠正存在性能问题的SQL ---非常重要
2. 编写复杂业务逻辑SQL,因为复杂业务逻辑SQL开发人员写出的SQL基本上都是有性能问题的,与其让开发人员写,不如DBA自己写。---非常重要
3. 参与DB 设计,尽早纠正不合理的DB 设计,ORACLE的性能是设计出来的,而不是调出来滴 ---这块非常重要
4. 对ORACLE进行基本的维护。
5. 与应用架构师配合,并且纠正应用架构师所犯错误,其实开发DBA 也带有应用架构师的角色
6. 对整个数据库进行高效的设计与规划,这个工作不能交给运维DBA, 因为运维不了解业务。
无法想象,没有开发DBA的公司,设计出来的系统性能不知道有多烂。
举个小例子
最近遇到个SQL 跑的很慢,第一次12秒出结果(从磁盘读入内存),第二次2秒出结果(数据都在buffer cache里面),SQL代码如下
SELECT COUNT(0) FROM P LEFT JOIN R ON P.ID = R.ID;
P 有200W 数据 R 有 100W 数据。这个SQL 第一次跑12秒,肯定无法接受。 那么大家看看这个SQL如何优化?
其实这个SQL写得有问题, 这里是外连接,并且求COUNT(*) 还有,JOIN字段是ID,ID 一般都是主键,那么这个SQL完全可以改写 为
SELECT COUNT(0) FROM P;
改写之后 COUNT(*) 直接读取 P表主键,0.1秒--1秒出结果,当然了,请注意,如果R表ID不是主键,并且R表ID 有重复值,COUNT(*) 会变大 ,不能这么改写
最初的SQL写得确实有问题,但是我们不能怪开发,因为别人毕竟对SQL理解不是那么专业,所以必须要有开发DBA把关。
大家可以想象一下,要是没开发DBA,当P表以及R表数据量增长到千万级/亿级,那得多慢啊。
仅以这个小例子,说明开发DBA的重要性,最近做了很多优化,基本上线上所有SQL都控制在1秒内返回结果。
转载于:https://www.cnblogs.com/hehe520/archive/2013/06/08/6330540.html
开发DBA(APPLICATION DBA)的重要性相关推荐
- ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL、DBA必备)
ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL.DBA必备) 文章目录 ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL.DBA必备) 前 ...
- 杂项-职位-DBA:DBA
ylbtech-杂项-职位-DBA:DBA 数据库管理员(Database Administrator,简称DBA),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,属于运维工程师的 ...
- 软件开发重要性_在软件开发中考虑时间的重要性
软件开发重要性 by Crunch Tech 通过Crunch Tech 在软件开发中考虑时间的重要性 (The importance of time to think in Software Dev ...
- 在 IBM LinuxONE 云端平台建构虚拟服务器在线测试以 Docker 开发的 Application system
在 IBM LinuxONE 云端平台建构虚拟服务器在线测试以 Docker 开发的 Application system 作者:陳兆麟 Email:chenlin2@ms9.hinet.net 在本 ...
- 【DBA】DBA——数据库管理员
数据库管理员 每个oracle数据库至少应该有一名数据库管理员(dba). 1)职责: a.安装和升级oracle数据库 b.建库.表空间.表.视图.索引- c.制定并实时备份与恢复计划 d.数据库权 ...
- dos 下如何使用chown -r oracle:dba,oracle dba系统安装实用手册.doc
Oracle DBA实用手册 --安装篇 DOYENSEER doyenseer@ 文试卷,计算机标榜,他最先实现了络交易高中语文,语文试卷,计算机可行 版权声明 本文档的版权归作者所有. 本文档可以 ...
- Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片...
一. Application用途 1. Application用途 创建Application时机 : Application在启动的时候会调用Application无参的构造方法创建实例; Appl ...
- 【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片
一. Application用途 1. Application用途 创建Application时机 : Application在启动的时候会调用Application无参的构造方法创建实例; Appl ...
- 产品开发项目中文档的重要性
现在,很多人认为写文档是一件苦差使,特别是研发人员,觉得写文档是一种浪费,和产品开发工作没有太大关系,更愿意把写文档的时间用来写代码画图纸. 实际上,一个成功完整的产品开发项目,最终产出的不只是可交付 ...
最新文章
- 12c adg添加数据文件报错处理ORA-01111
- 使用 JavaScript 实现灵活的固定导航功能
- linux命令添加文件权限,linux 的常用命令及文件权限管理
- LeetCode 337. 打家劫舍 III(记忆化+递归)
- 广东人大常委会党组会议强调:要加快人工智能等领域的相关立法工作。【Python】
- AI自动评审了下Transformer论文
- golang 项目设置后台运行
- linux5 多用户模式,centos7设置以多用户模式启动
- C# 列表中查找大小比较
- 从0到1简易区块链开发手册V0.6-实现打印区块
- 【Morgan Stanley IKM在线测试】C++
- android 网易视频无法播放器,如何使用网易视频云播放器Android Demo
- swift编程语言和c,Swift与Objective C对比:选择更快的开发语言
- 【Python计量】自相关性(序列相关性)的检验
- jchdl - GSL实例 - Shifter
- postman支持https、安卓抓包
- 十个优质编程网站,程序员们赶紧看过来!
- linux基础-- 桌面系统如何切换命令窗口
- 30岁转行做摄影师赚钱可能吗?揭秘…
- SWAT模型参数率定和验证
热门文章
- linux中的keeplived源码装,Keepalived高可用集群搭建
- C语言DCI(OCI)方式连接DM数据库
- muduo网络库学习(八)事件驱动循环线程池EventLoopThreadPool
- 1028 人口普查 (20 分)(c语言)
- 方式程0day MS17-010远程溢出漏洞测试
- pixhawk/px4如何获取及使用传感器数据
- CF-547E(Mike and Friends)后缀数组+线段树 AC自动机+DFS序+树状数组
- POJ 2516 -- Minimum Cost (最小费用最大流, 必须分开建图)
- 用户不见了_03 | 为什么你设计的信息用户总是看不见
- 死锁问题案例分析解决