- 浏览: 381156 次
文章分类
最新评论
-
小尜:
写的很详细,也很简单,一看就懂。多谢啦。
关于工厂模式和spring的IOC -
fjjiaboming:
代码排版!!!!!
JDBC事务和JTA (XA)事务 -
fjjiaboming:
排版有问题吗? 望交流.
做人有三个层次 -
fjjiaboming:
看来数据库连接池 必须用JNDI 注册在容器 , 对吗?
JDBC事务和JTA (XA)事务 -
fd1803:
SSL工作原理:http://www.wosign.com/B ...
SSL(Server Socket Layer)简介
有点乱 ,我认为重要的用绿色标注下,可以看重点:
1.关于syscat.tables中个别字段说明:<o:p></o:p>
npages和fpages的区别说明:要计算表中的空页数,查询 SYSCAT.TABLES 中的 FPAGES 和 NPAGES 列并从 FPAGES 数减去 NPAGES 数。FPAGES 列存储正在使用的总页数;NPAGES 列存储包含一些行的页数。当删除整个范围内的行时,可能出现空页。 <o:p></o:p>
随着空页数的增多,就更需要进行表重组。重组表时将回收空页并减少表所使用的空间量。另外,因为会将空页读入缓冲池以进行表扫描,所以回收未使用的页可以提高表扫描的性能。<o:p></o:p>
Overflow字段说明:查询 SYSSTAT.TABLES 表中的 OVERFLOW 列以监视溢出值。此列中的值表示不适合其原始页的行数。当使用比初始值更长的值来更新 VARCHAR 列时,行数据可能会溢出。在这些情况下,在行中的原始位置将保留一个指针,而实际值存储在由指针指示的另一个位置。这可能会影响性能,因为数据库管理器必须根据指针来查找行的内容。这个包括两个步骤的过程增加了处理时间,并且可能还会增加需要的 I/O 数目。 <o:p></o:p>
重组表数据将消除行溢出;因此,随着溢出行数的增加,重组表数据就可能会具有更多好处。 <o:p></o:p>
<o:p> </o:p>
2.通过db2的控制中心查看死锁情况(这个太长,还没时间写(有时间会补上的,只是时间不怎么够用),大家可以到控制中心右边那个 “应用程序列表”里面的“显示锁定链” 。要是谁还不明白,可以发邮件到这: columbuschina@126.com.)<o:p></o:p>
3.关于日志文件的情况<o:p></o:p>
4.关于db2的QUIESCE 命令的用法说明:<o:p></o:p>
a.Db2 quiesce tablespaces for table tablename (share/intent to update/EXCLUSIVE) 停顿 ,可以用db2 list tablespaces show detail 查看那个表空间和那个表被停顿了(select tabschema,tabname from syscat.tables where tbspaceid=? And tableid=? With ur).用 db2 quiesce tablespaces for table tablename reset 去除quiesce状态。<o:p></o:p>
b.停顿状态有share/intent to update/EXCLUSIVE 3类。为share、intent to update时此表空间所有的表可以执行查询操作,但不可以执行insert和update操作。为exclusive时select、insert、update都不行。当然了,在quiesce状态下不可以在此表空间中增加表。<o:p></o:p>
5.rename table命令: db2 rename table tablea to tableb 或者 db2 rename tablea to tableb<o:p></o:p>
6.db2 list tablespaces show detail 对于数据库管理的表空间有个高水位标记(high water mark),这个参数的意义:High water mark是记录tablespace使用的pages最峰值,如果high water mark过高,而used pages较小说明该表空间可能存在大量碎片,会一定程度影响数据库性能。这种情况下通过对tablespace中的表和视图进行reorg可以一定程度的降低high water mark的值!<o:p></o:p>
7.一般数据和索引放在独自的表空间里面。<o:p></o:p>
8.关于reorgchk、runstats、reorg命令说明:<o:p></o:p>
a.db2 reorgchk (update/current) statistics on table (all/tablename) 注:使用update statistics时会执行runstats操作。<o:p></o:p>
对 reorgchk 所使用的度量的考虑因素包括:(当查看 reorgchk 工具的输出时,找到用于表的 F1、F2 和 F3 这几列,以及用于索引的 F4、F5、F6、F7 和 F8 这几列。如果这些列中的任何一列有星号 (*),则说明当前的表和/或索引超出了阈值。)<o:p></o:p>
F1: 属于溢出记录的行所占的百分比。当这个百分比大于 5% 时,在输出的 F1 列中将有一个星号 (*)。
F2: 数据页中使用了的空间所占的百分比。当这个百分比小于 70% 时,在输出的 F2 列上将有一个星号 (*)。
F3: 其中含有包含某些记录的数据的页所占的百分比。当这个百分比小于 80% 时,在输出的 F3 列上将有一个星号 (*)。
F4: 群集率,即表中与索引具有相同顺序的行所占的百分比。当这个百分比小于 80% 时,那么在输出的F4 列上将有一个星号 (*)。
F5: 在每个索引页上用于索引键的空间所占的百分比。当这个百分比小于 50% 时,在输出的 F5 列上将有一个星号 (*)。
F6: 可以存储在每个索引级的键的数目。当这个数字小于 100 时,在输出的 F6 列上将有一个星号 (*)。
F7: 在一个页中被标记为 deleted 的记录 ID(键)所占的百分比。当这个百分比大于 20% 时,在输出的 F7 列上将有一个星号 (*)。
F8: 索引中空叶子页所占的百分比。当这个百分比大于 20% 时,在输出的 F8 列上将有一个星号 (*)。<o:p></o:p>
B. REORG TABLE
REORG TABLE命令的语法如下:
>>-REORG TABLE--table-name----+--------------------+------------>
'-INDEX--index-name--'
>-----+-----------------------+--------------------------------><
'-USE--tablespace-name--'
执行REORG可以考虑分为表上有索引和没有索引两种情况:
1) 如果表上有索引
如表名为DB2INST1.STAFF,索引名为DB2INST1.ISTAFF,命令如下:
db2 reorg table db2inst1.staff index db2inst1.istaff use tempspace1
建议REORG时使用USE参数指定数据重排时使用的临时表空间,否则,REORG工作将会在表所在表空间中原地执行。
如果表上有多个索引,INDEX参数值请使用最为重要的索引名。
2) 如果表上没有索引
如表名为DB2INST1.STAFF, SYSIBM.SYSTABLES
db2 reorg table db2inst1.staff use tempspace1
db2 reorg table sysibm.systables use tempspace1
C.runstats
收集所有列上的统计信息:
RUNSTATS ON TABLE db2admin.department ON ALL COLUMNS 等同于:RUNSTATS ON TABLE db2admin.department
收集单个列上的目录统计信息:RUNSTATS ON TABLE db2admin.department ON COLUMNS (deptno, deptname)
收集关键列上的目录统计信息(索引的列,如果没有索引存在,这条命令不会收集任何列的统计信息):RUNSTATS ON TABLE db2admin.department ON KEY COLUMNS
收集关键列上和一个非关键列上的目录统计信息:RUNSTATS ON TABLE db2admin.department ON KEY COLUMNS AND COLUMNS (deptname)
收集表和索引上的目录统计信息:RUNSTATS ON TABLE db2admin.department AND INDEXES ALL
详细信息:http://www.ibm.com/developerworks/cn/db2/library/techarticles/dm-0412pay/
d.db2rebind命令:db2rbind dbname -l errorfilelog.out
<o:p> </o:p>
9. 操作系统时间不对 会导致某些函数不能用 ,比如 ltrim()和 rtrim(),一般是系统时间晚于实践时间引起的(注:如果在操作系统时间不对前数据库已经使用过上面2个函数,就不会出现上述错误,可能是db2在第一次使用的时候执行函数,并把结果放在内存中,下次使用的时候直接从内存中取,而不用去执行其他太多的代码,这个不知道想的对不对)
<o:p> </o:p>
10. db2中 '正式 ' 和'正式'效果是一样的,原因:因为在字符串比较的过程是对于短的字符串在右边补位(blanks),直到两个字符串长度相等,然后对每一个byte进行比较。用 select * from t_dn_ht where hex(htlx_d)=hex('正式')做到 区分 '正式 ' 和'正式' ;HEX(..) 返回值的十六进制表示 (注:这个在oracle中是不成立的)
<o:p> </o:p>
11. 我们知道在使用中文字符集的数据库中,当你对一列中文数据使用order by 排序时,排序的结果正是按照每行记录第一个汉字的拼音首字母进行排列的,<o:p></o:p>
<o:p> </o:p>
12. sysibm.sysdummy1”是一个类似于 oracle 中的 “dual” 的东西,是一个没有实际数据的虚拟表。用“sysibm.sysdummy1”可能会比用“sysibm.systables” 性能高,因为前者不用dbms去验证表的有效性,但是这种性能的差别,不是一般的小系统中能体现出的。Sysibm。sysdummy1是一个特殊的内存中的表<o:p></o:p>
<o:p> </o:p>
13. 在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引。按索引来排序或分组,可以提高效率。<o:p></o:p>
<o:p> </o:p>
14.在SQL语句中,LIKE关键字支持通配符匹配,但这种匹配特别耗费时间。例如:SELECT * FROM Order WHERE CreateUser LIKE ‘M_ _ _’ 。即使在CreateUser字段上建立了索引,在这种情况下也还是采用顺序扫描的方式,Order表中有1000条记录,就需要比较1000次。如果把语句改为SELECT * FROM Order WHERE CreateUser >’M’ AND CreateUser <’N’,在执行查询时就会利用索引来查询,显然会大大提高速度。(注:这个感觉不错)<o:p></o:p>
<o:p> </o:p>
15. distinct<o:p></o:p>
<o:p> </o:p>
使用distinct是为了保证在结果集中不出现重复值,但是distinct会产生一张工作表,并进行排序来删除重复记录,这会大大增加查询和I/O的操作次数。因此应当避免使用distinct关键字。(注:这个还没怎么做过测试,就当个知识写这吧)<o:p></o:p>
<o:p> </o:p>
16. 临时表<o:p></o:p>
<o:p> </o:p>
使用临时表时数据库会在磁盘中建立相应的数据结构,因为内存的访问速度远远大于外部存储器的访问速度,在复杂查询中使用临时表时,中间结果会被导入到临时表中,这种磁盘操作会大大降低查询效率。另外,在分布式系统中,临时表的使用还会带来多个查询进程之间的同步问题。所以,在进行复杂查询时最好不要使用临时表。(这个不是很明白,还没查好,你要是明白可以留言,先谢谢了)<o:p></o:p>
<o:p> </o:p>
17.db2存储过程方面(这里的都是一些很浅的东西,为初次接触笔记)<o:p></o:p>
a.对于声明变量的一个建议:对于varchar变量 前缀 用 v_开头,int变量用n_开头<o:p></o:p>
b.<o:p></o:p>
<o:p> 注:还在学习中,后面的还会继续贴上 </o:p>
发表评论
-
考试成绩
2011-03-19 11:56 0uuuuuuuu -
db2cat 命令
2009-06-24 21:53 1935今天无意看到一个命令:db2cat(系统目录分析). 现把测 ... -
关于db2分区特性的一点心得
2008-10-29 00:31 2395最近了解了下db2的分区特性,发现不是想象中的那样强大,而且 ... -
痛饮咖啡,熟读手册,方可为DBA
2008-10-25 16:09 1207嫦娥上天了。为了庆祝 ... -
关于db2diag.log里面ZRC和ecf的说明
2008-09-28 16:41 4915今天同事给了个db2diag。log文件给分析下 ,对其中的e ... -
关于db2dart dbname /dhwm /tsi 的测试
2008-08-08 01:25 1870下面是db2dart database /dhwm /tsi ... -
db2 初级证书:730.731
2008-07-01 21:29 1303一个偶然的机会,获得了 这2个证书.要学的很还多 db os ... -
关于db2的OLAP的一些函数
2007-07-21 17:00 1384看到人家说OLAP函数的强大,到网上搜了一般。看了下面2个文章 ... -
db2学习笔记(二)
2007-07-15 21:22 2112表空间方面: 1.创建数据库的时候,默认会有3个页大小为4k的 ... -
创新性应用-王涛 (关于db2)转载
2007-07-14 15:09 1234原文: http://blog.csdn.net/best_d ... -
DB2资料(REDBOOK) 转载
2007-07-11 15:16 2428原文为:http://bbs.chinaunix.net/ar ... -
不管怎么强调sortheap的重要性都不为过
2007-07-10 00:14 2787今天看了一篇文章,觉得不管怎么强调sortheap的重要性都不 ... -
db2学习代码例子(代码为转载网上)
2007-07-05 14:31 2194搞db2也2年了,一直都没搞过存储过程,最近想学下,到网上 ... -
DB2SQL存储过程语法官方权威指南(翻译)(转载)
2007-07-04 21:07 2415这个还不错,网上这个文章太多了 : 背景:DB2的数据库性能很 ... -
DB2 存储过程开发最佳实践(转载)
2007-07-04 17:00 6215这个文章对初学者理解 ... -
java调用db2存储过程例子(新手用,熟悉的就不用看了)
2007-07-04 14:15 10913搜索java 调用db2(版本为8.2)存储过程 没几个文章能 ... -
关于DB2数据库的ADM11003E和ADM0501C错误的处理(转载)
2007-06-28 10:55 3921补充说明:对于第一个错误,如果你确信你的系统没有使用存储过 ... -
JDBC的隔离级别研究
2007-04-03 18:37 2304在通过JDBC对数据库进行并发访问时,为了解决并发之间的锁的控 ... -
在JBoss中配置DB2的数据源
2007-03-30 17:34 2405在用myeclipse+db2学习hibernate时,老报 ... -
编写高性能的mysql语法
2007-03-27 15:18 1203...
相关推荐
Water-Heating-System--Ver003-2010[1].06.29
空调系统
旅之星(专业数据恢复)_V1.0_06.29简体中文绿色专业版,经过测试,请放心使用,值得珍藏的好东西
网站快车-10周年纪念版,是快车系统开发团队倾力打造的一套优秀网站管理系统,这个版本,集团队9年CMS系统开发经验于一身,系统包含新闻、博客、商城、图片展示、论坛、产品比较、软件下载、视频、音乐、投稿等数十...
LC的SDK,用于测试LC IPC的图像、声音连接等,用于二次开发。
值得推荐的个人文档管理软件 截止2011-1-10,目前最新版 My Notes Keeper (V1.9.9 build 1205, 06.29.2010) 中文-注册-绿色版
06.29 06.21 06.13 06.06 05.31 05.24 05.18 05.10 05.03 04.25 04.18 04.10 04.04 03.28 03.20 () 03.14 03.06 02.28 02.21 02.14 02.07 02.01 01.18 01.11 01.04 12.28 12.14 12.07 11.29 11.23 11.16 11.09 () ...
汽车电子电器控制-空调.pptx 汽车空调系统.ppt 汽车空调系统的检修.pptx 新能源汽车技术空调.ppt Water-Heating-System--Ver003-2010[1].06.29.pdf
leetcodeshin 封算法问题列表 04.18 04.10 -> 重做 04.04 -> 重做 03.28 03.20 () 03.14 03.06 -> ...06.29 06.21 06.15 06.08 06.01 05.25 05.18 05.11 05.04 04.27 04.19 04.13 04.05 03.30 03.20
:seedling: 我目前正在学习C 和React,NodeJs,Python和Go Week: 04 February, 2021 - 11 February, 2021 TypeScript 16 hrs 3 mins █████████████▒░░░░░░░░░░░ 52.83 % C 6 hrs 33 mins...