- 浏览: 388891 次
文章分类
最新评论
-
小尜:
写的很详细,也很简单,一看就懂。多谢啦。
关于工厂模式和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 1978今天无意看到一个命令:db2cat(系统目录分析). 现把测 ... -
关于db2分区特性的一点心得
2008-10-29 00:31 2443最近了解了下db2的分区特性,发现不是想象中的那样强大,而且 ... -
痛饮咖啡,熟读手册,方可为DBA
2008-10-25 16:09 1247嫦娥上天了。为了庆祝 ... -
关于db2diag.log里面ZRC和ecf的说明
2008-09-28 16:41 4971今天同事给了个db2diag。log文件给分析下 ,对其中的e ... -
关于db2dart dbname /dhwm /tsi 的测试
2008-08-08 01:25 1931下面是db2dart database /dhwm /tsi ... -
db2 初级证书:730.731
2008-07-01 21:29 1356一个偶然的机会,获得了 这2个证书.要学的很还多 db os ... -
关于db2的OLAP的一些函数
2007-07-21 17:00 1422看到人家说OLAP函数的强大,到网上搜了一般。看了下面2个文章 ... -
db2学习笔记(二)
2007-07-15 21:22 2201表空间方面: 1.创建数据库的时候,默认会有3个页大小为4k的 ... -
创新性应用-王涛 (关于db2)转载
2007-07-14 15:09 1325原文: http://blog.csdn.net/best_d ... -
DB2资料(REDBOOK) 转载
2007-07-11 15:16 2485原文为:http://bbs.chinaunix.net/ar ... -
不管怎么强调sortheap的重要性都不为过
2007-07-10 00:14 2829今天看了一篇文章,觉得不管怎么强调sortheap的重要性都不 ... -
db2学习代码例子(代码为转载网上)
2007-07-05 14:31 2223搞db2也2年了,一直都没搞过存储过程,最近想学下,到网上 ... -
DB2SQL存储过程语法官方权威指南(翻译)(转载)
2007-07-04 21:07 2464这个还不错,网上这个文章太多了 : 背景:DB2的数据库性能很 ... -
DB2 存储过程开发最佳实践(转载)
2007-07-04 17:00 6266这个文章对初学者理解 ... -
java调用db2存储过程例子(新手用,熟悉的就不用看了)
2007-07-04 14:15 11012搜索java 调用db2(版本为8.2)存储过程 没几个文章能 ... -
关于DB2数据库的ADM11003E和ADM0501C错误的处理(转载)
2007-06-28 10:55 3991补充说明:对于第一个错误,如果你确信你的系统没有使用存储过 ... -
JDBC的隔离级别研究
2007-04-03 18:37 2358在通过JDBC对数据库进行并发访问时,为了解决并发之间的锁的控 ... -
在JBoss中配置DB2的数据源
2007-03-30 17:34 2453在用myeclipse+db2学习hibernate时,老报 ... -
编写高性能的mysql语法
2007-03-27 15:18 1239...
相关推荐
《水加热系统——Ver003-2010[1].06.29》是一个关于水加热系统的详细文档,包含在名为"Water-Heating-System--Ver003-2010[1].06.29.zip"的压缩文件中。这个文档可能是一个项目的更新版本,发布于2010年6月29日,...
根据提供的文件内容,本文件标题为“Water-Heating-System--Ver003-2010[1].06.29.pdf”,描述和标签均为“空调系统”。在文件的【部分内容】中,提到了与金杯汽车A2插电式混合动力车(A2Plug-inHybrid)电动汽车空调...
这对于理解和学习SDK的使用至关重要。 4. **示例代码**:这些是演示如何使用SDK的代码片段,有助于快速上手。开发者可以通过阅读和修改示例代码,理解如何在实际项目中应用SDK。 5. **编译器或解释器**:如果SDK...
《旅之星(专业数据恢复)_V1.0_06.29简体中文绿色专业版》是一款专门针对数据丢失问题而设计的软件工具。它以其高效的数据恢复能力,便捷的操作流程以及对简体中文环境的良好支持,赢得了用户的广泛好评。下面将详细...
网站快车-10周年纪念版,是快车系统开发团队倾力打造的一套优秀网站管理系统,这个版本,集团队9年CMS系统开发经验于一身,系统包含新闻、博客、商城、图片展示、论坛、产品比较、软件下载、视频、音乐、投稿等数十...
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...
在源码【2011[1].06.29]托盘图标动画例子.e】中,我们可以看到这些知识点的具体实现。程序首先加载图标资源,然后创建托盘图标,接着设置定时器,当定时器触发时,更新托盘图标的图像。在关闭程序时,需要清除托盘...
AI输入滤波(C06.26)和信号类型(C06.29)确保了输入信号的稳定性和准确性。 6. **输出类型**:模拟量输出C06.70设置为4-20mA,表明与外部设备通信的方式。C06.71设置为通讯给定值,意味着变频器接受来自其他设备...