ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:56.49KB ,
资源ID:9312400      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9312400.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库开发规范.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据库开发规范.docx

1、数据库开发规范XXX科技技术规范11、目的为了提高项目开发效率及所开发软件的可维护性,提高软件的质量,避免文件、目录、公用参数名字冲突,统一项目组内部开发风格,增加程序可读性和可理解性。12、读者本文适用以下读者: ETL设计、开发人员。13、名词解释14、存储过程开发规范4.1名称规范注意事项:一、存储过程名称全部使用英文,参数注释也必须使用英文。以 SP开头格式如下 : SP_TABLENAME 。二、函数名称全部使用英文,参数注释也必须使用英文。以 FN开头格式如下 : FN_,如:FN_LOG_EXEC 。报表类存储过程命名规则:SP_RPT_部门_报表功能_月表M,日表D编号 中文说

2、明 存储过程名- - -2DY0001 网银开销户统计表 SP_RPT_DY_WYKXHTJB_M4.2注释规范存储过程注释信息应包含如下信息:- -版权信息:版权所有(c) 2014, -文件名称:SP_MODEL.prc -版本号 : -创建者 :system -创建日期:2014-01-01 -内容摘要: -功能描述:生成核心客户信息表 O_HX_CUST_INFO -运行频率:日跑 -传入参数: I_STATEDATE -业务日期 - O_FLAG INTEGER -返回过程运行状态 0-正常结束 1 异常 -更改历史: -更改日期: -更改人 :lys -更改说明: -4.3命名规范

3、注意事项:存储过程命名全部使用英文,参数注释也必须使用英文。14.3.1参数的命名所有的输入、输出均采用参数赋值,参数名称需为 英文 数字 下划线 不能有汉字,参数名称最好是有意义的英文组成,方便阅读理解。参数名如下:输入:I_参数名 输出:O_参数名14.3.2变量命名所有的变量名称:变量类型首写字母_变量名称,变量名称最好是有意义的英文组成,方便阅读理解。数字变量变量名称:需在前面加个 N_ 如:N_SQLCODE变量定义: V_SQLCODE NUMBER:=0;变量付值:V_SQLCODE:=1; 注:左右边类型必须一致。字符串变量变量名称:需在前面加个 V_ 如:V_STATMONT

4、H变量定义: V_STATMONTH VARCHAR2(8):=20110819;变量付值:V_ STATMONTH:=20110819; 注:左右边类型必须一致。4.4模板规范4.5存储过程功能模块组成说明对基础数据进行汇总,生成报表。14.5.1过程名定义 CREATE OR REPLACE PROCEDURE SP_LOG_EXEC(NATIONAL CHARACTER VARYING(100), CHARACTER VARYING(10), TIMESTAMP, INTEGER, INTEGER)RETURNS INTEGERLANGUAGE NZPLSQL ASBEGIN_PROCD

5、ECLAREI_PRC_NAME ALIAS for $1;O_FLAG integer;注:参数赋值时候需要与参数列表中顺序一一对应。参数 O_FLAG,为过程出参,这里是返回过程运行状态,判断该过程是否正确运行完成,以便判断后续作业是否继续,这里规定每个过程都必需有这个出参,并且在过程运行过程中对该参数进行付值,如过程运行出现异常退出时,需返回 值 -1,如过程正常结束,则付值 0。14.5.2过程注释过程注释说明该过程的功能、创建人、创建时间及参数用途等- -版权信息:版权所有(c) 2014, -文件名称:SP_MODEL.prc -版本号 : -创建者 :system -创建日期:2

6、014-01-01 -内容摘要: -功能描述:生成核心客户信息表 O_HX_CUST_INFO -运行频率:日跑 -传入参数: I_STATEDATE -业务日期 - O_FLAG INTEGER -返回过程运行状态 0-正常结束 1 异常 -更改历史: -更改日期: -更改人 :lys -更改说明: -14.5.3过程体 为了规范存储过程书写,方便理解阅读,和统一处理方式,现对过程体划分为以下几个部分过程初始 该部分用于定义变量,并记录日志,生成过程开始运行日志,以下内容为每个过程初始部分。/*过程初始*/ -DECLARE V_PRCNAME VARCHAR(50) := SP_MOBAN

7、;-定义过程名变量,该变量值与过程名一样 D_TIME_START date ; V_SQLCODE INTEGER := 0; V_ROWCOUNT INTEGER := 0; V_SQLSTR VARCHAR2(500); -SET 初始化变量 D_TIME_START:=sysdate;-获取过程起始时间 -写日志,记录过程开始运行 SP_LOG_EXEC(V_PRCNAME,I_STATEDATE,V_TIME_START,0,0,0,过程开始运行!,O_FLAG) ; 作业处理部份这部份为过程处理数据内容部分。要求在select语句的每个字段要有别名。每段sql前面需要添加功能注释修

8、改的时候,修改部分应标注修改人、修改日期过程结束部分过程结束,记录过程结束日志,并返回 O_FLAG -返回过程运行状态 值=0。14.5.4存储过存功能模板(附件)4.6日志14.6.1功能记录存储过程及其它程序运行日志14.6.2调用方法如: call SP_LOG_EXEC(V_PRCNAME, V_PAR_DAY, D_TIME_START, N_ROWCOUNT, 0, V_STEP_DES, );14.6.3日志查询select * from etl_log_exec where prc_name=SP_MODEL order by start_dt,log_dt desc;14.

9、6.4日志结果14.6.5日志过程(附件)14.6.6日志表(附件)4.7书写规范和优化方法14.7.1操作符优化IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的 风格。 但是用IN的SQL性能总是比较低的,从执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。由此可见用IN的SQL至少多了一个转换的过程。一般的SQL都可以转换成功,但对于含有分组统计等方面的SQL就不能转换了。 推荐方案:在业务密集的SQL当中尽量

10、不采用IN操作符。NOT IN操作符 此操作是强列推荐不使用的,因为它不能应用表的索引。 推荐方案:用NOT EXISTS 或(外连接+判断为空)方案代替操作符(不等于) 不等于操作符是永远不会用到索引的,因此对它的处理只会产生全表扫描。 推荐方案:用其它相同功能的操作运算代替,如: a0 改为 a0 or a0 a 改为 aIS NULL 或IS NOT NULL操作(判断字段是否为空) 判断字段是否为空一般是不会应用索引的,因为B树索引是不索引空值的。 推荐方案:用其它相同功能的操作运算代替,如a is not null 改为 a0 或a等。 不允许字段为空,而用一个缺省值代替空值,如业扩

11、申请中状态字段不允许为空,缺省 为申请。 建立位图索引(有分区的表不能建,位图索引比较难控制,如字段值太多索 引会使性能下降,多人更新操作会增加数据块锁的现象)操作符(大于或小于操作符) 大于或小于操作符一般情况下是不用调整的,因为它有索引就会采用索引查找,但有 的情况下可以对它进行优化,如一个表有100万记录,一个数值型字段A,30万记录 的A=0,30万记录的A=1,39万记录的A=2,1万记录的A=3。那么执行A2与A=3 的效果就有很大的区别了,因为A2时会先找出为2的记录索引再进行比较, 而A=3时则直接找到=3的记录索引。LIKE操作符 LIKE操作符可以应用通配符查询,里面的通配

12、符组合可能达到几乎是任意的查询,但是 如果用得不好则会产生性能上的问题,如LIKE %5400% 这种查询不会引用索引,这个 条件会产生全表扫描。而LIKE X5400%则会引用范围索引。 一个实际例子:用A1_BH LIKE %5400% 这个条件会产生全表扫描,如果改成 A1_BH X5400% OR A1_BH LIKE B5400% 则会利用A1_BH的索引进行两个范围的查询, 性能肯定大大提高(前提是A1_BH上建的索引)。UNION操作符 UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进 行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生

13、重复的记录, 最常见的是过程表与历史表UNION。如:select * from A1unionselect * from A2 这个SQL在运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最 后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。 推荐方案:采用UNION ALL操作符替代UNION,因为UNION ALL操作只是简单的将两 个结果合并后就返回。 select * from A1union allselect * from A214.7.2 SQL书写的影响同一功能同一性能不同写法SQL的影响。如一个SQL在A程序员写的为 Select * from a1B

14、程序员写的为 Select * from user1.a1(带表所有者的前缀)C程序员写的为 Select * from USER1.A1(大写表名)D程序员写的为 Select * from USER1.A1(中间多了空格) 以上四个SQL在数据库分析整理之后产生的结果及执行的时间是一样的,但是从数据库共享内存SGA的原理,可以得出数据库对每个SQL都会对其进行一次分析,并且占用共享内存,如果将SQL的字符串及格式写得完全相同则数据库只会分析一次,共享内存也只会留下一次的分析结果,这不仅可以减少分析SQL的时间,而且可以减少共享内存重复的信息,数据库也可以准确统计SQL的执行频率。 推荐方案

15、:SQL关键字统一采用小写,表名,字段名统一采用大写,统一不加表的所有者,另外,所有的分隔间隔均只能有一个空格字符。14.7.3 WHERE后面的条件顺序影响 WHERE子句后面的条件顺序对大数据量表的查询会产生直接的影响,如Select * from A1 where use_bz=1 and name = 1KV以下Select * from a1 where name = 1KV以下 and use_bz=1 以上两个SQL中name(名称)及use_bz(使用标志)两个字段都没进行索引,所以执行的时候都是全表扫描, SQL的name = 1KV以下条件在记录集内比率为99%,而use_

16、bz=1的比率只为0.5%,在进行第一条SQL的时候99%条记录都进行name及use_bz的比较,而在进行第二条SQL的时候0.5%条记录都进行name及use_bz的比较,以此可以得出第二条SQL的CPU占用率明显比第一条低。 SQL的where后面条件的原则:越接近结果的条件优先级最高,顺序为按优先级从高到低,以减轻CPU占用率 14.7.4查询表顺序的影响 在FROM后面的表中的列表顺序会对SQL执行性能影响,在没有索引及数据库没有对表进行统计分析的情况下数据库会按表出现的顺序进行链接,由此因为表的顺序不对会产生十分耗服务器资源的数据交叉。(注:如果对表进行了统计分析,数据库会自动先进

17、小表的链接,再进行大表的链接) 对表进行统计分析的语法: GENERATE STATISTICS ON ; 14.7.5SQL语句索引的利用对操作符的优化(见上节)对条件字段的一些优化采用函数处理的字段不能利用索引,如: substr(bh,1,4)=5400,优化处理:bh like 5400% trunc(rq)=trunc(sysdate),优化处理:rq=trunc(sysdate) and rq 50,优化处理:df 30 X | bh X5400021452, 优化处理:hbs_bh 5400021542 rq+5=sysdate,优化处理:rq=sysdate-5 bh=5401002554,优化处理:bh= 5401002554,注:此条件对bh 进行隐式的to_number 换,因为bh字段是字符型。条件内包括了多个本表的字段运算时不能进行索引,如: ys_df cx_df,无法进行优化 qc_bh | kh_bh=5400250000,优化处理:qc_bh = 5400 and kh_bh = 250000

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1