数据库管理系统DB2手册112页 - 图文(6)

2019-01-19 17:43

经典资料,WORD文档,可编辑修改,欢迎下载交流。 in (select branch_code,sub_branch_code,capital_account from kstar.tb_brclose_capital_account where branch_code='1104' ) ) head; 这种方式非常的慢,据编写优化程序的db2研究人员回答,这部分内核根本就没有做什么优化。这个语句在一个营业部有20000条记录的情况下根本不可行。 5.12.2 except方式 select head.sub_branch_code, 0, '1', '总部有,营业部没有', '1', head.capital_account, head.account_head_type, head.account_branch_type from table( select * from kstar.tb_head_capital_account where branch_code='1104' and increment_flag<>'2' except select b.* from kstar.tb_head_capital_account b,kstar.tb_brclose_capital_account c where b.branch_code='1104' and c.branch_code='1104' and b.sub_branch_code=c.sub_branch_code and b.capital_account=c.capital_account and b.increment_flag<>'2' ) head; 这种系统会做有限的优化,速度还可以。 5.12.3 not exist方式 select head.sub_branch_code, 0, '1', '总部有,营业部没有', 26 经典资料,WORD文档,可编辑修改,欢迎下载交流。 经典资料,WORD文档,可编辑修改,欢迎下载交流。 '1', head.capital_account, head.account_head_type, head.account_branch_type from table( select * from kstar.tb_head_capital_account a where branch_code='1104' and increment_flag<>'2' and not exists (select sub_branch_code,capital_account from kstar.tb_brclose_capital_account b where branch_code='1104' and a.sub_branch_code=b.sub_branch_code and a.capital_account=b.capital_account ) ) head; 这中方式做join的速度很快,甚至都用到了Hash join。 6 其他系统和DB2的交互 DELPHI中从db2取bigint的数据,由于delphi不能识别bigint,在返回结果在delphi中显示的时候最好将bigint转为double或者decimal。 7 DB2表及sp管理 7.1 权限管理 7.1.1 数据库权限控制 syscat.DBAUTH 管理用户在整个database上能否创建table,sp,load等的权限。 db2 \CREATE_NOT_FENCED, LOAD,DBADM,IMPLICIT_SCHEMA ON DATABASE TO USER kstar\ 也可以是 To Group db2admin To Public 收回权限 db2 \CREATE_NOT_FENCED, LOAD,DBADM,IMPLICIT_SCHEMA ON DATABASE from user kstar\7.1.2 schema权限控制 syscat. SCHEMAAUTH 经典资料,WORD文档,可编辑修改,欢迎下载交流。 27 经典资料,WORD文档,可编辑修改,欢迎下载交流。 db2 \CREATEIN,DROPIN,ALTERIN ON SCHEMA KINGSTAR TO USER kstar\收回权限 db2 \CREATEIN,DROPIN,ALTERIN on SCHEMA KINGSTAR from user kstar\7.1.3 tablespace权限控制 syscat. TBSPACEAUTH 管理用户可以对tablespace的权限,如是否可以访问等。 db2 \USE OF TABLESPACE BAK_TABSPACE TO PUBLIC\收回权限 db2 \ on tablespace tbsname from PUBLIC\7.1.4 table权限控制 syscat.tabauth 管理用户可以对table的权限,如更改、删除数据、插入数据等。 db2 \ alter,control,delete,index,insert,select,update(column列表),references (column 列表) on table tabname TO PUBLIC\收回权限 db2 \alter,control,delete,index,insert,select,update(column列表),references (column 列表) on table tabname from PUBLIC\7.1.5 package权限控制 SYSCAT.PACKAGEAUTH 管理用户可以对package的权限,如bind等。 db2 \ bind,control,execute on package pkgname TO PUBLIC\收回权限 db2 \bind,control,execute on package pkgname from PUBLIC\7.2 建存储过程会占用很多的系统资源(特别是io) 在大通的升级过程中,偶然发现在构建sp的时候,db2instance所在的磁盘非常的繁忙,io达到100,且整个系统io等待达到50%,构建sp很耗系统资源。 7.3 看存储过程文本 select text from syscat.procedures where procname='PROC1'; 经典资料,WORD文档,可编辑修改,欢迎下载交流。 28 经典资料,WORD文档,可编辑修改,欢迎下载交流。 7.4 看表结构 describe table syscat.procedures describe select * from syscat.procedures 注意要加schema名称。 7.5 看表的索引信息 db2 \colnames from syscat.indexes where tabname= 'TB_CLEAR_MATCH_DETAIL? ” 7.6 查看各表对sp的影响(被哪些sp使用) select PROCNAME from SYSCAT.PROCEDURES SPECIFICNAME in (select dname from sysibm.sysdependencies where bname in ( select PKGNAME from syscat.packagedep bname='TB_BRANCH')) where where 7.7 查看sp使用了哪些表 select bname from syscat.packagedep where btype='T' and pkgname in (select bname from sysibm.sysdependencies where dname in (select specificname from syscat.procedures procname='PR_CLEAR_MATCH_DIVIDE_SHA')) where 7.8 查看function被哪些sp使用 select PROCNAME from SYSCAT.PROCEDURES where SPECIFICNAME in (select dname from sysibm.sysdependencies where bname in ( select PKGNAME from syscat.packagedep where bname in (select SPECIFICNAME from SYSCAT.functions where funcname='GET_CURRENT_DATE'))) 使用function时要注意,如果想drop 掉该function必须要先将调用该function的其它存储过程全部drop掉。必须先创建function,调用该function的sp才可以创建成功。 7.9 查sp的ID号 select * from syscat.packages a,syscat.procedures b where substr(b.implementation,1,8)=a.pkgname and procname=''with ur 经典资料,WORD文档,可编辑修改,欢迎下载交流。 29 经典资料,WORD文档,可编辑修改,欢迎下载交流。 7.10 从sp的id号查存储过程名称 SELECT * FROM SYSCAT.PACKAGES A,SYSCAT.PROCEDURES B WHERE SUBSTR(B.IMPLEMENTATION,1,8)=A.PKGNAME AND A.PKGNAME='P3227010' WITH UR 7.11 创建及使用summary table 例: create table tb_whttest (aa char(1), bb int ); create summary table st_whttest (aa,bb_sum,colcount,bbcount) as ( select aa, sum(bb),count(*),count(bb) from tb_whttest group by aa ) data initially deferred refresh immediate enable query optimization 说明: 使用summary table 有很多限制。这里是一个可以用的例子,因为bb可以为空,就必须有count(bb)。 其他一些具体的规定查sql_reference。 7.12 修改表结构 一次给一个表增加多个字段 db2 \add column t3 int\drop及创建主键 db2 \table kstar.tb_increment_balance_his drop PRIMARY KEY \db2 \ add PRIMARY KEY (branch_code,enddate,startdate,sub_branch_code,capital_account, currency_code)\7.13 给一个表改名 db2 rename table tb_branch to tb_branch_bak 经典资料,WORD文档,可编辑修改,欢迎下载交流。 30


数据库管理系统DB2手册112页 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:H3CSE(路由)学习笔记

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: