使用DB2look 重新创建优化器访问计划(5)


示例 3:
您需要在单分区的环境中模拟生产中的整个数据库以进行测试。
注意:如果测试中的数据库名与生产中的不同,那么可能需要修改每个 db2look 输出中的数据库名。
步骤 1:使用 -l 选项收集 db2look,以收集表空间/缓冲池/数据库节点组信息。

db2look -d

 1<dbname> -l -o storage.out   
 2  
 3修改表空间信息以适应您的测试环境。例如,在生产中,您具有下列表空间:   
 4  
 5\------------------------------------   
 6\-- DDL Statements for TABLESPACES --   
 7\------------------------------------   
 8  
 9CREATE REGULAR TABLESPACE DMS1 IN DATABASE PARTITION GROUP IBMDEFAULTGROUP   
10PAGESIZE 4096 MANAGED BY DATABASE   
11USING ( FILE ’/data/dms1’20000,   
12FILE ’/data/dms2’20000,   
13FILE ’/data/dms3’20000)   
14EXTENTSIZE 32   
15PREFETCHSIZE 32   
16BUFFERPOOL IBMDEFAULTBP   
17OVERHEAD 12.670000   
18TRANSFERRATE 0.180000   
19DROPPED TABLE RECOVERY ON;   
20  
21如果测试上没有设置相同的路径,那么就要修改上面的位置。如果您仅仅计划模拟环境,而不要复制整个数据,那么就减小文件的大小,并在必要时使用较少容器。如果没有创建相同的缓冲池,那么您还可能修改缓冲池名称。缓冲池必须具有相同的页面大小(pagesize)。不要修改表空间的页面大小。一旦处理了这些并创建了数据库,就运行 storage.out 文件:   
22  
23db2 -tvf storage.out   
24  
25如果需要,就重新定向输出以确保都成功运行了。例如:   
26  
27db2 -tvf storage.out &gt; storage_results.out   
28  
29步骤 2:从生产中收集配置和环境变量信息,并在测试系统上运行它:   
30  
31db2look -d sample -f -fd -o config.out   
32  
33请记住,在 MPP 环境中,这将为运行该命令的节点收集该信息。如果不同的数据库分区上的 DB2 注册表和数据库以及数据库管理器配置不同,您将需要为每个节点分别收集该信息。然而,如果测试中无法具有与生产中相同的分区,那么就从生产中执行该查询的节点中收集该信息,然后在测试中使用该信息。   
34请注意,如果测试中具有不同的分区数目,那么您的模拟将有所欠缺。   
35在测试系统上,运行 config.out 文件,如下:   
36db2 -tvf config.out   
37  
38上面考虑到优化器将使用 db2fopt 信息来查看所分配的总的缓冲池和排序堆,现在将成为测试环境中的设置。而且,这也是在测试中由于内存约束而不具有与生产中相同的缓冲池以及排序堆时所使用的技术。同时,本文前面所讨论的配置参数以及环境变量也将进行更新。   
39步骤 3:当模拟整个数据库时,从生产中收集所有对象的 DDL 信息,并在测试中运行 db2look。   
40  
41在生产中:   
42  
43db2look -d sample -e -a -m -o db2look.out   
44  
45在测试中:   
46  
47db2 -tvf db2look.out   
48  
49为了看到输出结果,可发出:   
50  
51db2look -tvf db2look.out &gt; db2look.results   
52  
53一旦完成了以上步骤,就请确保在测试中将 dbheap 数据库配置参数设置为与生产中相同的值。   
54步骤 4:使用 db2exfmt 从测试和生产中获得访问计划,并确保下列内容与生产中的相同:   
55  
56Database Context:   
57\----------------   
58Parallelism: None   
59CPU Speed: 4.762804e-07   
60Comm Speed: 100   
61Buffer Pool size: 128500   
62Sort Heap size: 128   
63Database Heap size: 5120   
64Lock List size: 12250   
65Maximum Lock List: 10   
66Average Applications: 4   
67Locks Available: 78400   
68  
69Package Context:   
70\---------------   
71SQL Type: Dynamic   
72Optimization Level: 3   
73Blocking: Block All Cursors   
74Isolation Level: Cursor Stability   
75  
76  
77\---------------- STATEMENT 1 SECTION 201 ----------------   
78QUERYNO: 1   
79QUERYTAG: CLP   
80Statement Type: Select   
81Updatable: No   
82Deletable: No   
83Query Degree: 1</dbname>
Published At
Categories with 数据库类
Tagged with
comments powered by Disqus