开发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)的重要性相关推荐

  1. ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL、DBA必备)

    ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL.DBA必备) 文章目录 ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL.DBA必备) 前 ...

  2. 杂项-职位-DBA:DBA

    ylbtech-杂项-职位-DBA:DBA  数据库管理员(Database Administrator,简称DBA),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,属于运维工程师的 ...

  3. 软件开发重要性_在软件开发中考虑时间的重要性

    软件开发重要性 by Crunch Tech 通过Crunch Tech 在软件开发中考虑时间的重要性 (The importance of time to think in Software Dev ...

  4. 在 IBM LinuxONE 云端平台建构虚拟服务器在线测试以 Docker 开发的 Application system

    在 IBM LinuxONE 云端平台建构虚拟服务器在线测试以 Docker 开发的 Application system 作者:陳兆麟 Email:chenlin2@ms9.hinet.net 在本 ...

  5. 【DBA】DBA——数据库管理员

    数据库管理员 每个oracle数据库至少应该有一名数据库管理员(dba). 1)职责: a.安装和升级oracle数据库 b.建库.表空间.表.视图.索引- c.制定并实时备份与恢复计划 d.数据库权 ...

  6. dos 下如何使用chown -r oracle:dba,oracle dba系统安装实用手册.doc

    Oracle DBA实用手册 --安装篇 DOYENSEER doyenseer@ 文试卷,计算机标榜,他最先实现了络交易高中语文,语文试卷,计算机可行 版权声明 本文档的版权归作者所有. 本文档可以 ...

  7. Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片...

    一. Application用途 1. Application用途 创建Application时机 : Application在启动的时候会调用Application无参的构造方法创建实例; Appl ...

  8. 【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片

    一. Application用途 1. Application用途 创建Application时机 : Application在启动的时候会调用Application无参的构造方法创建实例; Appl ...

  9. 产品开发项目中文档的重要性

    现在,很多人认为写文档是一件苦差使,特别是研发人员,觉得写文档是一种浪费,和产品开发工作没有太大关系,更愿意把写文档的时间用来写代码画图纸. 实际上,一个成功完整的产品开发项目,最终产出的不只是可交付 ...

最新文章

  1. 12c adg添加数据文件报错处理ORA-01111
  2. 使用 JavaScript 实现灵活的固定导航功能
  3. linux命令添加文件权限,linux 的常用命令及文件权限管理
  4. LeetCode 337. 打家劫舍 III(记忆化+递归)
  5. 广东人大常委会党组会议强调:要加快人工智能等领域的相关立法工作。【Python】
  6. AI自动评审了下Transformer论文
  7. golang 项目设置后台运行
  8. linux5 多用户模式,centos7设置以多用户模式启动
  9. C# 列表中查找大小比较
  10. 从0到1简易区块链开发手册V0.6-实现打印区块
  11. 【Morgan Stanley IKM在线测试】C++
  12. android 网易视频无法播放器,如何使用网易视频云播放器Android Demo
  13. swift编程语言和c,Swift与Objective C对比:选择更快的开发语言
  14. 【Python计量】自相关性(序列相关性)的检验
  15. jchdl - GSL实例 - Shifter
  16. postman支持https、安卓抓包
  17. 十个优质编程网站,程序员们赶紧看过来!
  18. linux基础-- 桌面系统如何切换命令窗口
  19. 30岁转行做摄影师赚钱可能吗?揭秘…
  20. SWAT模型参数率定和验证

热门文章

  1. linux中的keeplived源码装,Keepalived高可用集群搭建
  2. C语言DCI(OCI)方式连接DM数据库
  3. muduo网络库学习(八)事件驱动循环线程池EventLoopThreadPool
  4. 1028 人口普查 (20 分)(c语言)
  5. 方式程0day MS17-010远程溢出漏洞测试
  6. pixhawk/px4如何获取及使用传感器数据
  7. CF-547E(Mike and Friends)后缀数组+线段树 AC自动机+DFS序+树状数组
  8. POJ 2516 -- Minimum Cost (最小费用最大流, 必须分开建图)
  9. 用户不见了_03 | 为什么你设计的信息用户总是看不见
  10. 死锁问题案例分析解决