1. 必须对表起别名,方便调查表用了哪些列

比如 select owner,object_id,name from a,b where a.id=b.id;

如果不对表取别名,我怎么知道你访问的列是哪个表的。如果SQL几百行,如果SQL表关联很多,去死吧。

2. 数据库对象 命名

表             前缀/后缀 T_XXX

视图         前缀/后缀  V_XXX

物化视图  前缀/后缀 MV_XXX

索引         IDX_列名

特殊表

数据仓库 事实表  _FACT

数据仓库 维度表  _DIM

业务中间表  _TMP

日志表      _LOG

才用这种命名规范,方便不熟悉业务的DBA,开发人员更快的上手

3. 严禁标量子查询(分页可以写)

select (select ... from a where a.id=b.id) from b;  ---这种就叫标量子查询

假如 b 返回100w 那么 a可能被扫描 100w次 然后你懂的 死了

标量子查询 全部改写为 select ... from a left join b .....

4. 严禁sql套自定义函数,包,存储过程

道理跟 标量子查询一样

5. 严禁视图中select包含ROWNUM create or replace view ....select rownum

影响谓词推入+视图合并

6. 严禁视图 里面有 order by

干扰执行计划

7. 严禁视图套用超过2个 ,因为最里面的视图改了可能影响最外面的 高内聚 低耦合

如果最里面的视图出问题,那么调用这个视图的SQL全出问题,改写代码都改死你

8. in exists ,not in not exists 改写为 with as (子查询)

9. 分页不能有 distinct, group by ,union /union all,order by 只能一个表

10. 关联更新,改写为merge 或者改写为利用 rowid更新

11. 禁止对join列用函数 比如 where trunc(时间)=b.时间

12.注意隐式转化

SQL 编码规范的更多相关文章

  1. SQL编码规范

    1        目的 为了保证所每个项目组编写出的程序都符合相同的规范,便于理解和维护,便于检查.减少出错概率,有助于成员间交流,保证一致性.统一性而建立的SQL程序编码规范. 2        范 ...

  2. PL/SQL编码规范的一些建议

    由于业务的复杂多变,我们编写完的程序,在后期肯定要被修改,而且修改的人很可能不是自己.这种情况我们都遇到过. 而且,看别人的代码可能会觉得很痛苦:为什么他要这样写相关逻辑?为什么变量名称要这样定义?换 ...

  3. SQL Server 数据库设计、命名、编码规范

    https://blog.csdn.net/songguozhi/article/details/5858159 SQL Server 数据库设计.命名.编码规范

  4. [转]PHP编码规范

    注:这是10年前的一篇PHP编码规范,最早发布于清华水木BBS,现在好像都找不到完整的版本了,但至今看起来仍是非常有参考意义.个人会根据经验做一些调整.文中对于命名一段的描述极大的曾启发了个人的编程体 ...

  5. Mod4-PHP编码规范

    loading... 归纳总结了能找到的一些编码规范,形成自己所需要的编码规范. 参考网址:1.2 一.文件格式 缩进使用四个空格,不使用制表符.左花括号不另起一行. if (1 == $x) { $ ...

  6. Discuz! 的编码规范

    http://open.discuz.net/?ac=document&page=dev_coderule 前言 本规范由编程原则组成,融合并提炼了开发人员长时间积累下来的成熟经验,意在帮助形 ...

  7. 推荐的PHP编码规范

    推荐的PHP编码规范 发布时间: 2014-05-7 浏览次数:2754 分类: PHP教程 推荐的PHP编码规范 一 编辑器设置 1. 使用Tab缩进,不要使用空格 鉴于很多编辑器在保存文件时会自动 ...

  8. hdwiki 编码规范

    编码规范         命名规范 1.1.主要的目录 control 里面是控制类 ,前台命名为something.php,则后台对应的是admin_+前台名称,名称应选有意义的英文单词,例如 前台 ...

  9. JavaEE程序编码规范

    JavaEE程序编码规范 目   录 JAVA程序编码规范1 1变量的命名规则1 1.1常量(包含静态的)1 1.2类变量(静态变量)及实例变量1 1.3局部变量1 1.4参数2 1.5其它2 2方法 ...

随机推荐

  1. Entity Framework 数据生成选项DatabaseGenerated

    在EF中,我们建立数据模型的时候,可以给属性配置数据生成选项DatabaseGenerated,它后有三个枚举值:Identity.None和Computed. Identity:自增长 None:不 ...

  2. c#中单元测试

    从走进.net后发现每天有写不完的代码,有做不完的测试...人感觉都已经机械,我们需要认清自己调整好心态,问下自己是否真的喜欢编程.我的答案当然也就是我爱编码,编码给我带来了许多欢乐,每天都给我体验小 ...

  3. MFC中状态栏显示鼠标坐标位置

    原文:MFC中状态栏显示鼠标坐标位置,蝈蝈 1,利用MFC向导创建一个应用工程ewq. 2,打开ResourceView,右击Menu菜单,插入Menu,在空白处双击,Caption中填入Point. ...

  4. spring exception--No unique bean of type

    今天碰到一个问题,就是我现有项目需要加一个定时器任务,我的代码如下: <!-- 每日数据同步 总数监测任务******************begin --> <bean id=& ...

  5. 【JMeter】JMeter完成一个MySql压力测试

    jmeter也可以用来做数据库的压力测试,并且兼容各种数据库类型,只需要更改对应的数据库驱动类和url.以下为整理到的数据库驱动类对应url.并且给出一个mysql数据库select的简单应用.如下: ...

  6. Action 操作

    当鼠标移动到图片文件夹的时候,将有一些button显示 当鼠标移开这个文件夹,那些button隐藏了起来 display属性的变化 1.可以使用Js改变属性来操作 暂未验证,待时间. 2.可以使用Ac ...

  7. Zabbix探索:网络设备监控2

    在实现第一部分的简单监控的时候,在设置数据类型的时候设置成为了整数,结果: icmpping:这个没问题,只有0和1: icmppingloss:这个有问题,是百分比,其实是浮点数,单位是%: icm ...

  8. 用通俗的例子解释OAuth和OpenID的区别【原】

    什么是OAuth(Wiki) 什么是OpenID(Wiki) 详细的定义可以看wiki,下面举个例子说说我的理解 现在很多网站都可以用第三方的账号登陆,比如,现在我要登录淘宝买东西,而如果我没有淘宝的 ...

  9. [LeetCode]Evaluate Reverse Polish Notation(逆波兰式的计算)

    原题链接:http://oj.leetcode.com/problems/evaluate-reverse-polish-notation/ 题目描述: Evaluate the value of a ...

  10. HDU-4696 Answers 纯YY

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4696 题意:给一个图,每个点的出度为1,每个点的权值为1或者2.给n个询问,问是否能找到一条路径的权值 ...