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.注意隐式转化
SQL 编码规范的更多相关文章
- SQL编码规范
1 目的 为了保证所每个项目组编写出的程序都符合相同的规范,便于理解和维护,便于检查.减少出错概率,有助于成员间交流,保证一致性.统一性而建立的SQL程序编码规范. 2 范 ...
- PL/SQL编码规范的一些建议
由于业务的复杂多变,我们编写完的程序,在后期肯定要被修改,而且修改的人很可能不是自己.这种情况我们都遇到过. 而且,看别人的代码可能会觉得很痛苦:为什么他要这样写相关逻辑?为什么变量名称要这样定义?换 ...
- SQL Server 数据库设计、命名、编码规范
https://blog.csdn.net/songguozhi/article/details/5858159 SQL Server 数据库设计.命名.编码规范
- [转]PHP编码规范
注:这是10年前的一篇PHP编码规范,最早发布于清华水木BBS,现在好像都找不到完整的版本了,但至今看起来仍是非常有参考意义.个人会根据经验做一些调整.文中对于命名一段的描述极大的曾启发了个人的编程体 ...
- Mod4-PHP编码规范
loading... 归纳总结了能找到的一些编码规范,形成自己所需要的编码规范. 参考网址:1.2 一.文件格式 缩进使用四个空格,不使用制表符.左花括号不另起一行. if (1 == $x) { $ ...
- Discuz! 的编码规范
http://open.discuz.net/?ac=document&page=dev_coderule 前言 本规范由编程原则组成,融合并提炼了开发人员长时间积累下来的成熟经验,意在帮助形 ...
- 推荐的PHP编码规范
推荐的PHP编码规范 发布时间: 2014-05-7 浏览次数:2754 分类: PHP教程 推荐的PHP编码规范 一 编辑器设置 1. 使用Tab缩进,不要使用空格 鉴于很多编辑器在保存文件时会自动 ...
- hdwiki 编码规范
编码规范 命名规范 1.1.主要的目录 control 里面是控制类 ,前台命名为something.php,则后台对应的是admin_+前台名称,名称应选有意义的英文单词,例如 前台 ...
- JavaEE程序编码规范
JavaEE程序编码规范 目 录 JAVA程序编码规范1 1变量的命名规则1 1.1常量(包含静态的)1 1.2类变量(静态变量)及实例变量1 1.3局部变量1 1.4参数2 1.5其它2 2方法 ...
随机推荐
- jquery-autocomplete 参数说明
minChars (Number): 在触发autoComplete前用户至少需要输入的字符数.Default: 1,如果设为0,在输入框内双击或者删除输入框内内容时显示列表 * width (Num ...
- 基于WebForm+EasyUI的业务管理系统形成之旅 -- 施工计划查询(Ⅷ)
上篇<基于WebForm+EasyUI的业务管理系统形成之旅 -- 施工计划安排>,主要介绍整个施工计划列表与编辑界面. 下面看看施工计划查询(ⅠⅡⅢ ⅣⅤⅥ Ⅶ Ⅷ) 一.施工计划查询 ...
- (转载)memcpy的几个实现版本
(转载)http://blog.sina.com.cn/s/blog_4d3a41f40100cvza.html 实现void *memcpy(void *to, const void *from, ...
- 网站HTTP请求过程解析
网站性能优化中首要的一条就是要减少HTTP请求,那么为要减少HTTP请求呢?其实有些HTTP分析工具可以帮我们了解当浏览器请求一个资源时大致需要经历的哪些过程: 1 域名解析(DNS Lookup): ...
- java基础之数据类型转换
在写java程序时,经常会遇到需要数据类型转换,下面我们来介绍一些一些基本数据类型之间的转换. 1.int,folat,double,boolean,long 转换成字符串,其实很简单只需使用一个函数 ...
- 《Nagios系统监控实践》一书出版
本书是我的第一本译著,有此机会实属机缘巧合.虽然使用Nagios只有一年多的时间,但是作为用户,我深感其设计的简洁与高效—没有一丝多余的东西.因为工作的关系,要求对各个领域都有所了解,所以没有仔细地阅 ...
- PPTP VPN不能打开百度
问题: 在阿里云上设置PPTP VPN,电脑能正常连接,能打开京东 淘宝 QQ等没有问题,但是不能打开百度 糯米等网站.开始怀疑是代理设置问题,后面确认未设置独立规则. 1.从应用层看排除特殊规则设 ...
- 设计模式_Proxy_代理模式
形象例子: 跟MM在网上聊天,一开头总是“hi,你好”,“你从哪儿来呀?”“你多大了?”“身高多少呀?”这些话,真烦人,写个程序做为我的Proxy吧,凡是接收到这些话都设置好了自动的回答,接收到其他的 ...
- Hbase的安装配置
一.上传解压后的Hbase文件. 二.配置: 1..bash_profile文件: export HBASE_HOME=/home/kituser/bigdata/hbase-0.94.6-cdh4. ...
- Good practice release jar to Nexus
Step suppose you need to develop a feature,when you finish the feature ,you need to release the jar ...