IT分销/经销数据库

select syscat.tables 很慢的一个摄取量

dblook 导出表结构很慢,很慢
查看了 执行了的sql,这个sql执行了  几百次,感觉上 导出一张表,就执行下面的sql一次
怀疑是下面这个sql执行的:
DECLARE THIS_TABLE_ALIAS CURSOR FOR            
with iv (tabname, tabschema, base_tabname, base_tabschema, remarks,create_time, definer) as
     ((SELECT  tabname, tabschema, base_tabname, base_tabschema, remarks,create_time, definer
                   FROM    SYSCAT.TABLES              
                   WHERE   type = 'A' and   base_tabname = :H00005   
                   and                      base_tabschema = :H00007 )      
     union all              
     (select st.tabname, st.tabschema, st.base_tabname, st.base_tabschema, st.remarks,st.create_time, st.definer
                   from iv,  SYSCAT.TABLES st              
                   where iv.tabname = st.base_tabname and  iv.tabschema = st.base_tabschema and  st.type = 'A'))        
select tabname,
tabschema,
base_tabname,
base_tabschema,
remarks,
create_time,
definer
from iv
ORDER BY tabschema, tabname FOR READ ONLY



我执行了一下这个sql的部分
Statement:
  DECLARE C1 CURSOR
  FOR
     SELECT tabname, tabschema, base_tabname, base_tabschema, remarks,
             create_time, definer
     FROM SYSCAT.TABLES
     WHERE type ='A' and base_tabname ='a' and base_tabschema ='a'

Section Code Page = 1208
Estimated Cost = 56141.507812              --这么高的cost
Estimated Cardinality = 0.000000
(    2) Access Table Name = SYSIBM.SYSTABLES  ID = 0,5
        |  Index Scan:  Name = SYSIBM.INDTABLES09  ID = 9
        |  |  Regular Index (Not Clustered)
        |  |  Index Columns:
        |  |  |  1: AUDITPOLICYID (Ascending)
        |  #Columns = 7
        |  Evaluate Block/Data Predicates Before Locking Committed Row
        |  Evaluate Predicates Before Locking for Committed Key
        |  #Key Columns = 0
        |  |  Start Key: Beginning of Index
        |  |  Stop Key: End of Index
        |  Data Prefetch: Eligible 3506
        |  Index Prefetch: Eligible 3506
        |  Lock Intents
        |  |  Table: Intent Share
        |  |  Row  : Next Key Share
        |  Sargable Predicate(s)
        |  |  #Predicates = 3
(    1) |  |  Return Data to Application
        |  |  |  #Columns = 7
(    1) Return Data Completion
End of section

Optimizer Plan:
            Rows   
          Operator
            (ID)   
            Cost   
                    
        3.27867e-10
            n/a     
          RETURN   
           ( 1)     
          56141.5   
            |      
        3.27867e-10
            n/a     
           FETCH   
           ( 2)     
          56141.5   
       /           
    55226       55226   
     n/a         n/a   
   IXSCAN     Table:   
    ( 3)      SYSIBM   
   395.307    SYSTABLES
     |      
      1      
Index:      
SYSIBM      
INDTABLES09


导出很慢很慢,想这个sql 这么优化呢?

附件:

附件图标db2trc.part01.rar (8.58 MB)

附件图标db2trc.part02.rar (8.58 MB)

附件图标db2trc.part02.rar (8.58 MB)

附件图标db2trc.part03.rar (5.65 MB)

附件图标db2support.zip (1.4 MB)

附件图标db2batch.sql (88.24 KB)

附件图标db2support.zip (1.36 MB)

参与87

86同行回答

wangzhonnewwangzhonnew软件工程师IBM Canada Ltd.
不会,只要bufferpool够大能够把sysibm.systables放进去,一次tablescan也会很快的就算是比较夸张的SAP系统也不会有那么多的表,运行一天也跑不完的显示全部
不会,只要bufferpool够大能够把sysibm.systables放进去,一次tablescan也会很快的
就算是比较夸张的SAP系统也不会有那么多的表,运行一天也跑不完的收起
IT分销/经销 · 2011-07-06
浏览434
drdb2drdb2系统工程师se
回复 82# wangzhonnew Then, it is IBM's call to consider an enhancement.Luckily we have only 1000 aliases,  if we have 10,000, or even 100,000 aliases, we expect db2look to run days to return?显示全部
回复 82# wangzhonnew

Then, it is IBM's call to consider an enhancement.

Luckily we have only 1000 aliases,  if we have 10,000, or even
100,000 aliases, we expect db2look to run days to return?收起
互联网服务 · 2011-07-06
浏览428
wangzhonnewwangzhonnew软件工程师IBM Canada Ltd.
alias的schema不一定必须和表的schema一样啊CREATE ALIAS HEDGES.A1 FOR MCKNIGHT.T1显示全部
alias的schema不一定必须和表的schema一样啊
CREATE ALIAS HEDGES.A1 FOR MCKNIGHT.T1收起
IT分销/经销 · 2011-07-06
浏览478
nowhillnowhill系统工程师
不是bug,如果指定了-a,那就直接把所有的alias都导出来就行,如果没有指定-a,就需要针对特定的表导出相应 ...wangzhonnew 发表于 2011-7-6 09:25     如你所说, 如果我指定 -z  ,那么为什么不 把整个模式的  alias 一起倒出来呢?...显示全部
不是bug,如果指定了-a,那就直接把所有的alias都导出来就行,如果没有指定-a,就需要针对特定的表导出相应 ...
wangzhonnew 发表于 2011-7-6 09:25



    如你所说, 如果我指定 -z  ,那么为什么不 把整个模式的  alias 一起倒出来呢?收起
IT分销/经销 · 2011-07-06
浏览529
wangzhonnewwangzhonnew软件工程师IBM Canada Ltd.
不是bug,如果指定了-a,那就直接把所有的alias都导出来就行,如果没有指定-a,就需要针对特定的表导出相应的alias,因此需要对各个表执行一次显示全部
不是bug,如果指定了-a,那就直接把所有的alias都导出来就行,如果没有指定-a,就需要针对特定的表导出相应的alias,因此需要对各个表执行一次收起
IT分销/经销 · 2011-07-06
浏览532
nowhillnowhill系统工程师
只是要你证实一下:db2look 导出一个schema, 应该比导出N个所有schema快 (v9前是这样)你的情况正好相反 ...drdb2 发表于 2011-7-5 23:27     测试了一下 ,如你所说,我到了一会儿,  那个sql的执行次数居然一次也没有增加,看来 是bug居多了...显示全部
只是要你证实一下:
db2look 导出一个schema, 应该比导出N个所有schema快 (v9前是这样)
你的情况正好相反 ...
drdb2 发表于 2011-7-5 23:27



    测试了一下 ,如你所说,我到了一会儿,  那个sql的执行次数居然一次也没有增加,看来 是bug居多了收起
IT分销/经销 · 2011-07-06
浏览432
drdb2drdb2系统工程师se
只是要你证实一下:db2look 导出一个schema, 应该比导出N个所有schema快 (v9前是这样)你的情况正好相反, 导出一个schema超慢, 比导出N个所有schema慢几十陪。That is a bug of v9, and IBM needs to fix it....显示全部
只是要你证实一下:
db2look 导出一个schema, 应该比导出N个所有schema快 (v9前是这样)
你的情况正好相反, 导出一个schema超慢, 比导出N个所有schema慢几十陪。
That is a bug of v9, and IBM needs to fix it.收起
互联网服务 · 2011-07-05
浏览453
nowhillnowhill系统工程师
我这里有很多 schema ,这个方法不适用 ^_^显示全部
我这里有很多 schema ,这个方法不适用 ^_^收起
IT分销/经销 · 2011-07-05
浏览448
drdb2drdb2系统工程师se
Right, that is the typical flag using db2look.If your system has basically one Application schema, "-a" and "-z" should output the same.显示全部
Right, that is the typical flag using db2look.
If your system has basically one Application schema, "-a" and "-z" should output the same.收起
互联网服务 · 2011-07-05
浏览438
nowhillnowhill系统工程师
-a: Generate statistics for all creators这个是导出数据库用的?显示全部
-a: Generate statistics for all creators
这个是导出数据库用的?收起
IT分销/经销 · 2011-07-05
浏览452

提问者

nowhill
系统工程师

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2011-06-27
  • 关注会员:1 人
  • 问题浏览:39358
  • 最近回答:2011-07-07
  • X社区推广