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.需要注意的是隐式转换


13. 遗漏....注册可用

版权声明:本文博主原创文章。博客,未经同意不得转载。







本文转自mfrbuaa博客园博客,原文链接http://www.cnblogs.com/mfrbuaa/p/4905275.html,如需转载请自行联系原作者


相关文章
|
5月前
|
SQL IDE Java
Java连接SQL Server数据库的详细操作流程
Java连接SQL Server数据库的详细操作流程
|
2月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
4月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
103 13
|
4月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
4月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
59 6
|
4月前
|
存储 SQL C++
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。
329 1
|
3月前
|
SQL 安全 Java
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
444 0
|
4月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
287 3
|
4月前
|
SQL 存储 安全
数据库数据恢复—SQL Server数据库出现逻辑错误的数据恢复案例
SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。 SQL Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生成了一个.ndf的文件并且将数据库路径指向E盘继续使用。数据库继续运行一段时间后出现故障并报错,连接失效,SqlServer数据库无法附加查询。管理员多次尝试恢复数据库数据但是没有成功。
|
4月前
|
SQL 存储 关系型数据库
关系型数据库SQL Server学习
【7月更文挑战第4天】
73 2
下一篇
无影云桌面