版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.上海银行bank of shanghaidb2 数据库开发规范;.版本号版本日期修订者描述备注1.02014/12/4王成初稿1.12014/12/8王成补充 was调整内容1.22014/12/11王成补充 load工具使用说明补充临时表使用的说明1.32015-3-27王成补充 load 对 hadr 影响的说明;.目录:第一章表41.建表4第二章大数据量清理和装载42.数据清理43.数据装载4第三章临时表5第四章数据库连接5第五章性能64.统计更新65.索引的使用66.锁和脏读7;.第一章表1. 建表对于新建的每个表,都需要把public用户的权限去除。因此创建每个新表的sql 语句后
2、,需要添加如下语句:revoke all on tablename from public。同一数据库中的表应该由同一个用户来创建,减少用户复杂性。数据库中的表应该建在所分配的tablespace,禁止建到未经允许的他人的tablespace上。第二章大数据量清理和装载2. 数据清理要删除大表中的大部分数据,则不能直接delete ,因为会产生长事务及锁资源溢出的问题。可以根据表的使用情况区分处理:1)对于可以停断的应用系统,可以新建不带日志的表,把需要保留的数据插入新表,然后通过表换名的方法实现。2)对于不能停断的应用系统,则要分批提交以降低事物长度,比如每删除10 万行就提交,以免造成长事
3、物而回滚。如果全部删除表中的所有数据,使用truncate,不要使用delete 。3. 数据装载关于 importimport默认是allow no access,即在表上会有独占锁,会导致其他人不能访问。如需同时访问此表,设置为allow write access。如下列会锁表:db2 “ import from test.del of del insert into test”建议改为下列方式:db2 “ import from test.del of del insert into test allow write access”关于 load;.默认 load 也是 allow no
4、 access,即在表上会有独占锁,会导致其他人不能访问。如需同时访问此表load 之前的数据,设置为allow read access。load 默认使用copy no ,会导致所属表空间状态为backup pending,即同一表空间上的所有表都只能查询,不能写。切记load时一定要加nonrecoverable参数或者copy yes参数,建议使用nonrecoverable!测试环境数据库不开归档日志模式,load 不会导致backuppending ;但是生产环境是开归档的,不带copy yes或者norecoverable,会造成backuppending 。nonrecovera
5、ble这种方式不记数据库日志,导入速度快。完成后要对数据库做全备,否则数据恢复时此表不能恢复出来(因为不记归档日志),或者需要通过重建受影响的表。语法 如下:db2loadfromxxx.delofdelinsertintoshcema.tablenamenonrecoverable。对于使用了hadr数据库同步技术的系统(目前只有信用卡核心系统,后续还会有互联网核心和 emao),要使用copy yes ,否则会造成hadr损坏。 copy yes 会在 load 结束后对表空间做一次全备,备份出来的文件不要删除,可以用于hadr追加或者增量恢复。并且load之前把 hadr关闭, load
6、完成之后,把load 期间产生的备份数据复制到hadr同样的目录,最后hadr,并且验证。但是由于要对整个表空间进行备份,时间会较长。语法如下:db2load from xxx.del of del insert into shcema.tablename copy yes to /data。鉴于 load 所带来的这么多问题,安全起见,建议不要再使用load ,可以改用import之类的。即使要用,一定要提前告知数据库管理员,以确定对数据库的影响。在进行过数据装载后一定要对表进行统计更新,以保持系统表信息和实际表信息的同步。第三章临时表创建临时表之后,及时提交,以免对系统表长时间锁定。第四章
7、数据库连接应用应尽量实现重连机制,以免数据库重启或者切换后必须重启应用。对数据库的连接数应该设置合理,以免过多占用数据库服务器内存资源。;.第五章性能4. 统计更新重要系统应用自行收集统计信息,没有统计信息,即使有索引可能也不会使用。特殊表的注意事项:如果数据库中存在某些特殊的表,如早上有大量数据,晚上就清空的表,对于这种周期性伸缩的表,应该在表满的时候做收集统计信息。运行 runstats之后,要发出commit 以释放锁,并且需要重新bind静态语句和存储过程,以使用新的统计信息。绑定时,逐个绑定。可以通过下列查询确认表是否被统计过db2 “ select name,stats_time
8、from syscat.systables where name= * ”或者通过下列查询是否存在未统计的表:db2 “ select name,stats_time from syscat.systables where stats_time is null”runstats 默认为 allow write access,不会锁表。5. 索引的使用对于经常访问的表中字段,并且其唯一性较强(即取值比较分散),建议对其建立索引。少建唯一性差的索引,索引太多会影响优化器选择。多用 join连接,少用子查询。使用join时 join字段上尽量有索引。使用 matches , like匹配时要从字段的
9、第一位开始匹配,否则不会用到索引。在查询条件中如果对字段使用函数,如trim等,不会使用索引。对于多字段的联合索引,只有当sql语句中where 过滤条件用到相应的字段,出现在联合索引的最前面几个字段,才会使用索引。如建立联合字段索引(a,b,c,d), where 字段b=1 anda=1 之类会使用;而where 字段 b=1 and c=1之类就不会使用,因为没有包含a 字段。新建索引之后,要对表收集统计信息。db2“ runstats on table * and detailed indexes all”并对静态语句(主要是嵌入c 程序)进行绑定,静态语句索引才会被使用,动态语句不需要重新绑定。;.6. 锁和脏读对于分析型【我的内容.】 sql,建议查询设置隔离级别为脏读(select * from tab withur),这样不会产生因为所查询记录被锁而导致的查询失败。对于查询、修改的记录,要通过索引访问方式修改。如果通过全表扫描,由于对记录不确定,则会所有记录上锁,会增大被堵塞的概率。降低事务长度,及时提交,缩短持有锁的时间,降低锁冲突。db2 客户端的级别会覆盖db2 server的默认级别,所以要注意所使用客户端的隔离级别设置 。 对 于was 中 间 件 , 默 认 级 别 为rs , 要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AI智能调度赋能供应链管理与流程优化
- 建筑业新质生产力人工智能施工辅助
- 高等基础数学 1
- 江苏省南京市2026届高三年级第二次模拟考试(南京二模) 政治
- 新生儿肺炎的护理业务培训课件
- 旋流风口、岗位送风口、织物(布)风管安装检验批质量验收记录
- 2025年人工智能伦理评估消费者权益保护
- 广东省深圳市龙岗区宏扬学校2025-2026学年八年级下学期历史学科期中素养自测题
- 学生特异体质健康状况跟踪登记表
- 老年人大小便护理的绩效考核
- 辽宁省营口市盖州市2025-2026学年八年级(上)期末物理试卷(含答案)
- 初中英语九年级跨学科项目式导学案:数智赋能下的发明叙事与未来思辨
- 2026年广东深圳市48校中考复习阶段模拟测试物理试题(试卷+解析)
- 2026年春新教材八年级下册道德与法治第1~5共5套单元测试卷(含答案)
- 2026湖南益阳职业技术学院招聘事业单位人员6人备考题库及答案详解(新)
- 河南省信阳市固始县2025-2026学年七年级下学期期中考试历史试题(含答案)
- GB/T 5858-1997重载传动用弯板滚子链和链轮
- 机房UPS安装施工方案完整
- FZ/T 64043-2014擦拭用高吸水纤维织物
- 纸桥承重精美课件
- 急腹症诊断及鉴别诊断课件
评论
0/150
提交评论