摘要:
当我们发现某个SQL语句执行很慢时,可以通过查看它的访问计划来定位原因,如是否执行了合适的索引、是否采用了正确的连接方法等。但是我们发现很多用户对访问计划的生成和解释工具的使用存在很多疑惑,本文通过一些实例来解释具体的用法,希望对大家有所帮助。步骤1. 创建explain表 访问计划的采集和评估是通过一些explain命令和工具实现的,在采集和评估之前需要先创建一些数据表来存放解释数据。在/sqllib/misc下有个文件叫EXPLAIN.DDLdb2 connect to db2 -tvf /sqllib/misc/EXPLAIN.DDL (unix和linux下注意大小写)在当前数据库中. 阅读全文
posted @ 2013-07-18 14:00
Brad Miller
阅读(6115)
评论(0)
推荐(0)
摘要:
【转】DB2日常维护——REORG TABLE命令优化数据库性能 一个完整的日常维护规范可以帮助 DBA 理顺每天需要的操作,以便更好的监控和维护数据库,保证数据库的正常、安全、高效运行,防止一些错误重复发生。 由于DB2使用CBO作为数据库的优化器,数据库对象的状态信息对数据库使用合理的 ACCESS PLAN至关重要。DB2 优化器使用目录统计信息来确定任何给定查询的最佳访问方案。如果有关表或索引的统计信息已过时或者不完整,则会导致优化器选择不是最佳的方案,并且会降低 执行查询的速度。当数据库里某个表中的记录变化量很大时,需要在表上做REORG操作来优化数据库性能一、完整的REORG表的. 阅读全文
posted @ 2013-07-18 13:59
Brad Miller
阅读(12477)
评论(0)
推荐(0)
摘要:
1.runstats的语法:runstats on table [模式名].[表名] with distribution and detailed indexes all注意:你可以在所有列上,或者仅仅在某些列或列组(除了LONG和LOB列)上执行RUNSTATS。如果没有指定特定列的子句,系统则会使用默认的ON ALL COLUMNS子句。使用RUNSTATS WITH DISTRIBUTION当您已确定表中包含不是统一分布的数据时,可以运行包含WITH DISTRIBUTION子句的RUNSTATS。目录统计信息表通常包含关于表中最高和最低值的信息,而优化器假定数据值是在两个端点值之间均匀 阅读全文
posted @ 2013-07-18 13:58
Brad Miller
阅读(20021)
评论(0)
推荐(0)
摘要:
打开和关闭快照缺省情况不打开 DB2 监控,必须在连接或实例级别上进行设置。有一系列监视器开关来决定是否监控某种数据元素。还预留了一个内存堆,用于包含为监控而存储的信息。1:在instance级别上设置监视器开关 在实例级别上设置监视器开关会影响连接到该实例中任何数据库的所有用户。下面是监视器开关 DFT_MON_STMT:语句监视器(用于动态 SQL) DFT_MON_TABLE:表监视器 DFT_MON_LOCK:锁监视器 DFT_MON_BUFPOOL:缓冲池监视器 DFT_MON_SORT:排序监视器 DFT_MON_UOW:工作单元信息 DFT_MON_TIMESTAMP:跟踪时间戳 阅读全文
posted @ 2013-07-18 13:56
Brad Miller
阅读(6143)
评论(1)
推荐(0)
摘要:
ERROR [55019] [IBM][DB2/NT] SQL1477N For table "DB_YHJX.YHJX_FHDKFHZ" an object "521" in table space "3" cannot be accessed. SQLSTATE=55019SQL1477N 对于表 "",不能访问表空间 "" 中的对象 ""。说明:试图访问一个表,而该表的其中一个对象是不可访问的。由于下列原因之一,该表可能不可访问:1.当回滚工作单元时,该表激活了 NOT 阅读全文
posted @ 2013-07-18 13:55
Brad Miller
阅读(10165)
评论(0)
推荐(0)
摘要:
1. 统计所有节点表空间使用率 select substr(TABLESPACE_NAME,1,20) as TBSPC_NAME,bigint(TOTAL_PAGES * PAGE_SIZE)/1024/1024 as "TOTAL(MB)", used_pages*PAGE_SIZE/1024/1024 as "USED(MB)", free_pages*PAGE_SIZE/1024/1024 as "FREE(MB)" from table(snapshot_tbs_cfg('DB_NAME', -2)) as 阅读全文
posted @ 2013-07-18 13:54
Brad Miller
阅读(32420)
评论(0)
推荐(0)
摘要:
DB2中的数据类型DB2内置数据类型可以分成数值型(numeric)、字符串型(character string)、图形字符串(graphic string)、二进制字符串型(binary string)或日期时间型(datetime)。还有一种叫做 DATALINK 的特殊数据类型。DATALINK 值包含了对存储在数据库以外的文件的逻辑引用。数值型数据类型包括 SMALLINT、INTEGER、BIGINT、DECIMAL(p,s)、REAL 和 DOUBLE。所有数值都有符号和精度。精度是指除符号以外的二进制或十进制的位数。如果数字的值大于等于零,就认为符号为正。*小整型,SMALLIN 阅读全文
posted @ 2013-07-18 11:48
Brad Miller
阅读(21732)
评论(0)
推荐(0)
摘要:
相比较Oracle来说,DB2的锁机制麻烦了很多,而且这个麻烦带来的不是性能的上升而是下降,不过如果细致了解的话,只能感慨不愧是数据库理论诞生的公司,在实现数据库理论上比Oracle全面得多。 Oracle没有实现一般数据库理论里的锁机制,带来的并发性与性能上的提升以及相关的问题上文已经介绍了,现在来说说几乎完全实现一般数据库理论锁机制的DB2数据库这方面的实现。 下面的资料来源于IBM资料库DB2和 Oracle的并发控制(锁)比较 首先是锁是属性,有如下几个基本属性:锁定对象,锁定大小,锁定时间,锁定状态。锁定对象表示锁定的数据资源,DB2支持对表空间,表,行,索引(大型机里支持对数据页. 阅读全文
posted @ 2013-07-18 11:46
Brad Miller
阅读(21459)
评论(0)
推荐(2)
摘要:
DB2数据库常用命令数据库学习你可以用 get snapshot for locks on XXX 看是那个表锁了,再从相关的操作去查原因吧db2pd -d 库名 -locks和db2pd -d 库名 -wlockswindow环境下在db2cmd下,使用db2 get snapshot for locks on dbname-查看数据库管理器级别快照信息 db2 get snapshot for dbm -查看数据库级别快照信息 db2 get snapshot for database on dbname -查看应用级别快照信息 db2 get snapshot for applic... 阅读全文
posted @ 2013-07-18 11:44
Brad Miller
阅读(3954)
评论(0)
推荐(0)
摘要:
1.对于执行中的报错,可以在db2命令行下运行命令 : db2=>? SQLxxx 查看对应的报错原因及解决方法。2.错误SQL0206N SQLSTATE=42703 检测到一个未定义的列、属性或参数名。 SQL0206N "SQL_COU_ALL" is not valid in the context where it is used. SQLSTATE=42703 db2 => ? "42703" db2 => ? SQL0206N 3.错误SQL0668N code "7" SQLSTATE=57016 表 阅读全文
posted @ 2013-07-18 11:42
Brad Miller
阅读(39647)
评论(0)
推荐(0)
浙公网安备 33010602011771号