SQL 编码规范

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.注意隐式转化

时间: 2024-10-23 03:38:31

SQL 编码规范的相关文章

java编码规范

右括号") "与其后面的关键字之间,关键字与其后面的左括号"("或"{"之间,以及"}"与"{"之间,要以一个空格隔开:除". "外,所有二元操作符的前.后要加空格:在逗号后边加一个空格. 说明: 一个紧跟着括号的关键词应该被空格分开: 空白应该位于参数列表中逗号的后面: 所有的二元运算符,除了".",应该使用空格将之与操作数分开.一元操作符和操作数之间不应该加空格,

Discuz! 的编码规范

http://open.discuz.net/?ac=document&page=dev_coderule 前言 本规范由编程原则组成,融合并提炼了开发人员长时间积累下来的成熟经验,意在帮助形成良好一致的编程风格. 适用范围 如无特殊说明,以下规则要求完全适用于Discuz!项目,同时也可大部分适用于COMSENZ旗下其他PHP项目. 标准化的重要性和好处 当一个软件项目尝试着遵守公共一致的标准时,可以使参与项目的开发人员更容易了解项目中的代码.弄清程序的状况.使新的参与者可以很快的适应环境,防

我的未来编码规范

.Net 命名规范 文件夹.实体命名统一使用英文定义,以大驼峰命名法.不宜过长可简拼,具有可读性. 变量命名使用英文定义,以小驼峰命名法.不宜过长可简拼,具有可读性. Student 增删改查方法命名统一规范. a)         各种查询 GetXXXX/GetXXByXX 获取XXXX信息. 例如GetUserList 获取用户信息集合(多条)/GetUserByName.GetUserListByAge等. FindByXX 查找 定义通用的查找方法时候使用. 例如FindByOID 通

Node 编码规范(优秀是一种习惯)

编码规范 空格与格式 1. 缩进 采用2个空格缩进,而不是tab缩进. 空格在编辑器中与字符是等宽的,而tab可能因编辑器的设置不同.2个空格会让代码看起来更紧凑.明快. 2. 变量声明 永远用var声明变量,不加var时会将其变成全局变量,这样可能会意外污染上下文,或是被意外污染. 在ECMAScript 5的strict模式下,未声明的变量将会直接抛出ReferenceError异常. 需要说明的是,每行声明都应该带上var,而不是只有一个var,示例代码如下: var assert = r

数据库应用SQL编写规范

1. 编程规范 本章讲述ORACLE数据库SQL脚本编码规范. 1.1. 总述 1.1.1. 编码规范 1)编写脚本时,Oracle保留字大写,其他一律使用小写,除非必要(如:作字符串时或注释语句中): 2)脚本必须规范,SQL编写不能采用缩略写法:如INSERT INTO中的INTO不能省略:INTO后面要列出字段名: 3)语句内的空格,统一为一个空格: 4)表定义中,字段名.字段类型(长度).缺省.(非)空.字段注释都必须左对齐: 5)使用空格键对齐,不要使用Tab键: 6)运算符前后,各保

java编码规范及优化总结

一.java概述 1991 年Sun公司的James Gosling(詹姆斯·高斯林)等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器.1994年将Oak语言更名为Java. 二.Java的三种技术架构 J2EE:Java PlatformEnterprise Edition,开发企业环境下的应用程序,主要针对web程序开发: J2SE:Java PlatformStandard Edition,完成桌面应用程序的开发,是其它两者的基础: J2ME:Jav

JavaEE程序编码规范

目   录 JAVA程序编码规范1 1变量的命名规则1 1.1常量(包含静态的)1 1.2类变量(静态变量)及实例变量1 1.3局部变量1 1.4参数2 1.5其它2 2方法的命名规则3 3类及接口的命名规则3 3.1一般类名3 3.2值对象3 3.3Action3 3.4MyBatis配置文件4 3.5DAO4 3.6Application Service4 3.7工具类4 3.8门面类4 3.9代理类4 3.10异常类4 3.11接口类5 3.12接口实现类5 4作用域5 4.1类的作用域5

PHP编码规范建议学习

###php编码规范 -------* sql过长 ```$sql = <<<SQLSELECT delivery_idFROM d_testWHERE delivery_idIN (123,234)GROUP BY delivery_idHAVING SUM(send_number) <= 0;SQL;```* if等控制结构条件过长 ```if ($a > 0 && $b > 0 && $c > 0 && $d

C#程序编码规范 ----转

1.目的 为了保证企业编写出的程序都符合相同的规范,保证一致性.统一性而建立的程序编码规范. 全 面的编码标准包含代码结构的所有方面.虽然开发人员在实现标准时应慎重,但只要应用了就应该坚持.完成的源代码应该反映出一致的样式,就像一个开发人员在 一个会话中编写代码一样.在开始软件项目时,建立编码标准以确保项目的所有开发人员协同工作.当软件项目并入现有的源代码时,或者在现有软件系统上执行维 护时,编码标准应说明如何处理现有的基本代码. 源 代码的可读性对于开发人员对软件系统的理解程度有直接影响.代码