- 6
- 0
- 约1.19万字
- 约 16页
- 2020-06-05 发布于浙江
- 举报
db2学习总结
精品文档
精品文档
收集于网络,如有侵权请联系管理员删除
收集于网络,如有侵权请联系管理员删除
精品文档
收集于网络,如有侵权请联系管理员删除
DB2相关程序优化建议
程序开发建议
注意程序锁的使用
DB2有十分严格的锁机制,存在锁升级的概念,锁也需要占用一定的缓存空间,当程序的行级锁达到一定数量后可升级为表级锁,表锁达到一定数量后可升级为库级锁,将整个数据库锁住。所以在写程序的时候我们要十分关注程序锁的使用,尤其是对应并发性高的程序。
隔离级别主要用于控制在DB2根据应用提交的SQL语句向DB2数据库中的相应对象加锁时, 会锁住哪些纪录, 也就是锁定的范围。 隔离级别的不同, 锁定的纪录的范围可能会有很大的差别。
隔离级别分为RR/RS/CS/UR这四个级别。 下面让我们来逐一论述:
1. RR隔离级别: 在此隔离级别下, DB2会锁住所有相关的纪录。 在一个SQL语句执行期间, 所有执行此语句扫描过的纪录都会被加上相应的锁。具体的锁的类型还是由操作的类型来决定, 如果是读取,则加共享锁; 如果是更新, 则加独占锁。由于会锁定所有为获得SQL语句的结果而扫描的纪录, 所以锁的数量可能会很庞大, 这个时候,索引的增加可能会对SQL语句的执行有很大的影响,因为索引会影响SQL语句扫描的纪录数量。
2. RS隔离级别:此隔离级别的要求比RR隔离级别稍弱,此隔离级别下会锁定所有符合条件的纪录。 不论是读取, 还是更新, 如果SQL语句中包含查询条件,则会对所有符合条件的纪录加相应的锁。 如果没有条件语句, 也就是对表中的所有记录进行处理,则会对所有的纪录加锁。
3. CS隔离级别: 此隔离级别仅锁住当前处理的纪录。
4. UR隔离级别:此隔离级别下,如果是读取操作,不会出现任何的行级锁。对于非只读的操作,它的锁处理和CS相同。
在这四种隔离级别中, CS是缺省值。 这四种隔离级别均可以保证DB2数据库在并发的环境下不会有数据丢失的情况发生。要注意的是如果对纪录进行了修改,需要在相应的纪录上加独占类型的锁, 这些独占类型的锁直到交易结束时才会被释放,这一点在四种隔离级别下都是相同的。
到这里, 我们已经对DB2中的表锁, 行锁, 隔离级别进行了论述。 DB2数据库的并发控制主要是通过这些机制。 理解了这些概念,我们就可以在使用DB2数据库时根据系统的实际需要来设计锁模式和隔离级别,来实现我们的系统要求, 在保障数据安全的前提下, 提供较好的并发性。
如上针对隔离级别的解释,我们在对大表,尤其是并发性高的大表进行查询是一定要指定隔离级别,在语句的最后加上 with ur。
注意清空表的方式
不管是在oracle还是DB2中delete的性能都是较低的,因为delete需要回归段记录日志,oracle提供了一种全表清空的高效方法truncate语句,而在DB2中没有同样的语句,DB2也提供了一种快速清空表的方式,这种方式在建表时需要加一个属性,如下:
CREATE TABLE DB_PRM.BRAND (
BRAND_ID BIGINT NOT NULL,
BRAND_NAME VARCHAR(200),
BRAND_STATE VARCHAR(3),
BRAND_DESC VARCHAR(250),
EFF_DATE TIMESTAMP,
EXP_DATE TIMESTAMP,
BRAND_FLAG CHARACTER(1),
PARENT_ID BIGINT
)
IN PRM_TBS_32
not logged initially
PARTITIONING KEY ( BRAND_ID ) USING HASHING;
然后在清空表时使用如下语句:
alter table [name] activate not logged initially with empty table
Sql的编写原则
DB2的sql编写规则和oracle有所不同,oracle不管是在写程序还是存储过程中尽量是化繁为简,将复杂的sql语句尽量拆开,分成多条sql进行处理,可以有效的提高程序的运行效率。
而在DB2中则恰恰相反,我们在写sql的时候尽量将多个sql语句写成一个负责的语句来处理,这样反而效率更高。
原因是DB2的sql解析处理引擎要远好于oracle,越是对于复杂的sql解析处理的速度优势越明显。反而DB2的程序写的过程,sql过多,如果事务处理不好,容易造成锁升级导致程序跑不出来死住的情况。
存储过程必要的参数
创建存储过程语句(CREATE PROCEDURE)可以包含很多参数,虽然从语法角度讲它们不是必须
您可能关注的文档
- dataX3.0安装使用手册教程文件.doc
- data:数据库安全性与完整性实验讲解学习.doc
- DBA的职责分析演示教学.doc
- DBN算法的基本知识解读教学提纲.doc
- DCC流程(1)演示教学.ppt
- DCS-PLC系统卡件更换作业指导书教案资料.doc
- DCS基础知识学习资料.ppt
- DCS基础知识讲课讲稿.ppt
- DCS控制系统培训讲义(艾默生Deltav)教学教材.ppt
- DEAE sephrose FF说明及使用讲课教案.doc
- 03-2 2025年度民主生活会征求意见座谈会主持词.docx
- 03-1 2025年度民主生活会主持讲话提纲.docx
- 02-1 会前学习-《县以上党和国家机关党员领导干部民主生活会若干规定》相关要求.docx
- 在2025年度民主生活会上的总结讲话三篇.docx
- 在2025年度民主生活会上的总结讲话三篇 (3).docx
- 市委宣传部2025年度民主生活会查摆问题整改方案两篇.docx
- 在市行政审批和政务信息管理局机关2026年全体干部政绩观教育大会上的党课讲稿.docx
- X市应急管理局2026年度安全生产监督检查计划.docx
- 2025年度民主生活会领导班子对照检查材料(五个带头)三篇.docx
- 2025年度民主生活会“五个带头”个人对照检查材料三篇.docx
原创力文档

文档评论(0)