ITPub博客

首页 > Linux操作系统 > Linux操作系统 > DB2 STUDY NOTE

DB2 STUDY NOTE

原创 Linux操作系统 作者:bpmfhu 时间:2019-02-06 18:18:05 0 删除 编辑

一些和TUNNING有关的NOTE


1.big data block reading
如果一个区段里的多个叶面中的多条记录将被读取的时候,不必再进行的另外的物理i/o操。特别是在dss的系统里面。

2.think ing prefetch size
它在查询之前把需要的数据页读入缓冲区,这种异步读取可以减少执行时间。默认情况是:这个参数和你创建数据库的dft_prefetch_sz数据库的配置参数一样。当db2触发预取需求时,这个值决定了多少页面将会被一致性读取。把这个值设置成区段大小的倍数。多个区段就可以被一次性读取。这个方法在表空间的容器分布在不同硬盘上的时候更加有效。
为了能够预取,db2启动了称为i/o服务器的独立的控制线程,去执行页面读取。这些i/o服务器等待来自数据库代理的请求,而数据库代理管理着所有的sql请求的执行。第一个可用的i/o服务器将从一个队列里读取预取请求并把数据读入缓冲池。我们可以通过配置num_ioservers来控制,通过配置这个参数,多个i/o服务器可以同时取得数据。
db2监控系统的i/o活动,如果需要连续的页面读取。db2将会启动预取请求。这种功能被称为连续检测,可以通过seqdetect来获得。默认为yes。
不管seqdetect设置的参数如何,列表预取都会发生。通常在扫描一个索引后,db2建立一个内部的行标示符列表时,需要列表预取,然后按物理地址顺序将之排序并且开始扫描表,获取所需的纪录。因为db2事先知道需要哪些页面,它能在应用程序请求此页面前把它装回缓存里面。这样一来,由于异步执行了预取数据的工作,将大大缩短检索数据的时间。

3.page clean
当读和修改数据页面的时候,他们聚集在buffer pool里。无论何时一个页面被读入,都必定是bufer pool将之读入。如果buffer pool被修改过的页面填满了,那么在读入一个新的页面之前,就必须将一个修改的页面写回到磁盘上。为了防止填满buffer poll,必须进行页面清除,把那些修改过的页面写回到磁盘,以确保在新的页面被读入前,buffer pool是可用的。这一特性是通过num_iocleaners数据库配置参数实现的。
数据库配置参数chngpgs_thresh指定什么时候页面清除工作开始进行,即被修改页的百分比达到何种程度,需要启动页面清除任务。页面清除时,将建立一个写回磁盘的页面列表。一旦完成了把页面写回到磁盘的工作后,它将变回非活动状态并且等待下一次触发,default为60%

4.number of extent
在dms的tablespace里面至少需要6个extent
3个用于开销管理和控制信息
每个表对象需2个extent

5.need number of pages
for example:(extent size in pages*n)+1

6.data write
首选的contaners,把同样大小的容器放在不同的物理设备上,以优化空间利用率和db2的并行操作。

7.raid device
1)将容器定义在raid上面
2) 使区段等于或为raid分割大小的倍数
3) 确保表空间的预取大小是raid的分割大小乘以raid并行设备数再乘以区段大小 的倍数
4) 使用db2set里面的db2_striped_containers,按raid分割大小排列区段
5) 使用db2set里面的db2_parallel_io,使同步磁盘i/o生效。

8.MULTIPGE ALLOCATE
在里面,每次对象增长时相关文件会扩展一个页面。当插入大量行的时候,系统为了分配另外的页面,可能会造成一定的延迟。如果想提高插入的效率,可以使用多页文件分配的方法。这种方法允许系统一次分配或者扩展文件超过一个EXTENT。它将在所有的SMS表空间容器里面分配空白页面来填满最后的区段。可以通过DB2EMPFA工具实现,数据库参数MULITIPAGE_ALLOC来指定它的值。

9.sms/dms

10.temp tablespace
一个数据库只定义了一个临时表空间,而将多个容器放在不同的磁盘以提高性能。
原则:
.为每一个页尺寸建立一个sms临时表空间
.为这些tablespace容器使他们共享一个文件系统,这样使磁盘共享最大化,磁盘需求总量最小化。由于每一个临时表都是由db2建立和删除,所以磁盘空间可以被回收和利用。
.出于性能的考虑,我们可以采用dms来做temp tablespace.

11.extent size
tablespace 的区段大小是指数据在写入下一个容器前向容器中写入的表的页数。
dms一次给一个表分配一个区段的空间。如果表已填充并且区段已经满了,会分配一个新的区段。对一个dms管理的大表而言,增大page size,可以减小分配extent的开销。
但是在oltp里面,一个大的区段将把许多应用程序并不需要的数据页带入buffer pool。此时,小的page size好。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4096/viewspace-52449/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 搜索引擎Accoona
请登录后发表评论 登录
全部评论

注册时间:2001-12-26

  • 博文量
    62
  • 访问量
    43061