下载此文档

数据库操作规范.pdf


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
该【数据库操作规范 】是由【小s】上传分享,文档一共【5】页,该文档可以免费在线阅读,需要了解更多关于【数据库操作规范 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。一、object命名规则
*表命名规则
表命名是以英文名称为原则,表示该表的具体意义,例如商品表可以叫item,商品图片表可以叫
item_image。
如果公司业务复杂,数据库过多,schema也比较多,则要根据schema的来命名,例如:在crm下面可以
用crm开头命名CRM_USER.
临时表应该以tmp开头TMP_USER,这样的表一段时间后将会清除。
备份数据使用的表应该使用bak开头,这样的表在被确认不需要后将被清除。
注:表的命名不能超过30个字符
字段命名*
表达该字段的含义
不能用oracle中的保留字
注释一定要详细加上,如status状态,0有效,1删除
注:字段长度也尽量简化(如crm_test_times_currently,太长)
索引的命名规则*
主键(primary索引key)
表名PK__列名
唯一键(unique索引key)
表名UK__列名
普通索引
表名IND__列名
注:索引的命名不能超过30个字符(在索引中的列名可以简写,一般情况下不简写索引中的表名)
过程与函数*
过程的命名规则
以SP_开头,过程中要注解此过程的作者,编写时间,此过程的功能
函数的命名规则
以FUN_开头,函数中要注解此函数的作者,编写时间,此函数的功能
量的命名规则变
本地变量以l_开头;
传递参数:p_量名变_in(传入)
量名变_out(p_传出)
游标类型cur_开头;
序*列的命名规则
序列的命名
SEQ_表名_列名
如何在程序中使用序列所产生的值
INSERTINTOtest(id,nick)
VALUES(,'test');
如何查询序列的当前值:
;
*编写规SQL范
SQL语句所有表名,字段名全部小写,SQL保留字大写;
select查询语句*不允许出现,要明确写查询哪些列;
连接符or、in、and、以及=、<=、>=等前后加上一个空格
SQL语句注意缩进
where子句书写时,每个条件占一行,语句另起一行时,以保留字或者连接符开始,连接符右对齐
多表连接时,使用表的别名来引用列
二、书写优化性能建议
1、避免嵌套连接。例如:A=BandB=CandC=D
2、where条件中尽量减少使用常量比较,改用主机变量
3、系统可能选择基于规则的优化器,所以将结果集返回数据量小的表作为驱动表(from后边最后一个表)。
4、大量的排序操作影响系统性能,所以尽量减少order和groupby排序操作。by
如必须使用排序操作,请遵循如下规则:
(1)排序尽量建立在有索引的列上。
(2)如结果集不需唯一,使用union代替allunion。
5、索引的使用。
(1)尽量避免对索引列进行计算。如对索引列计算较多,请提请系统管理员建立函数索引。
(2)尽量注意比较值与索引列数据类型的一致性。
(3)对于复合索引,SQL语句必须使用主索引列
(4)索引中,尽量避免使用NULL。
(5)对于索引的比较,尽量避免使用NOT=(!=)
(6)查询列和排序列与索引列次序保持一致
6、尽量避免相同语句由于书写格式的不同,而导致多次语法分析。
7、尽量使用共享的SQL语句。
8、查询的WHERE过滤原则,应使过滤记录数最多的条件放在最前面。
9、任何对列的操作都将导致表扫描,它包括数据库函数、计算表达式等等,查询时要尽可能将操作移至等
号右边。
10、in、or子句常会使用工作表,使索引失效;如果不产生大量重复值,可以考虑把子句拆开;拆开的子
句中应该包含索引。
11、慎用游标,在某些必须使用游标的场合,可考虑将符合条件的数据行转入临时表中,再对临时表定义
游标进行操作,这样可使性能得到明显提高。
三、其他经验性规则
1、尽量少用嵌套查询。如必须,请用notexist代替not子句。in
2、用多表连接代替EXISTS子句。
3、少用DISTINCT,用EXISTS代替
4、使用UNIONALL、MINUS、INTERSECT提高性能
5、使用ROWID提高检索速度。对SELECT得到的单行记录,需进行DELETE、UPDATE操作时,使用ROWID将
会使效率大大提高。
6、使用优化线索机制进行访问路径控制。
7、使用cursor时,显示光标优于隐式光标
四、sql示例:
,,,
FROMt_usersu,
t_testtt
t_itemaa
=
=
=‘test’;
where条件中尽量减少使用常量比较,改用绑定变量
尽量减少order和bygroup排序操作by
如必须使用排序操作,请遵循如下规则:

,使用unionall代替
union
尽量避免对索引列进行计算,或者对列进行函数操作然后查询
例如:

WHEREreplace(,’a’,’b’)=:1;
正确的是:

=replace(:1,’b’,’a’);
注意绑定变量与索引列数据类型的一致性
表test字段id的类型为number
错误的是:

=‘5’;
此写法将不会走id字段上的索引,执行计划为全表扫描
正确的是:

=5;
分页sql写法
select*from(selectt.*,rownumasrnfrom(selectid,name,sexfromtestorderbyiddesc)t
whererownum<21)wherern>19;
适当使用提示优化
select/*+index(aidx_test)*/count(*)fromtesta;

数据库操作规范 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小s
  • 文件大小111 KB
  • 时间2022-10-09