获取Teradata表访问频率信息

在日常维护及系统优化过程中,我们有时需要分析哪些数据库对象是使用频率较高的,哪些对象是长期不用的,从而有依据的制定优化策略。对访问频率高的,尽量做到物理模型最优(如PI是最经常用来关联的,数据分布是均匀的等)。而那些长期不用的对象(表/视图),可以考虑删除。使用频率高的字段和使用频率低的字段进行表拆分...

那么如何获取Teardata表/视图/字段的访问频率信息呢?下面做详细说明:

[@more@]

按照下列步骤打开/关闭开关:
1、 用secureCRT类的工具连接到数据库节点机;
2、 输入cnsterm 6 打开窗口6;
3、 输入 start dbscontrol 命令,打开dbscontrol工具;
4、 出现Started 'dbscontrol' in window 1提示后,按 Ctl+C 退出窗口6;
5、 输入cnsterm 1 切换到窗口1;
6、 可以看到
Release 13.00.01.11 Version 13.00.01.11
DBSControl Utility (Dec 99)
等信息,说明dbscontrol已成功开启
7、输入display gen 命令,可以看到第30个选项为 ObjectUseCountCollectRate,即为我们需要修改的参数,其值默认是0(即为关闭),可将其改为15(即表示每15分钟更新一次访问频率信息)来打开开关;
8、输入命令modify gen 30 =15
9、输入命令QUIT;
出现如下提示:
The DBS Control Record has been modified.
Enter: 'W' to write to the DBS Control GDO or
'Q' to terminate with no update:
10、W 上述修改生效。
上述操作后,系统将停止收集表访问信息。

DBSControl中的系统参数:ObjectUseCountCollectRate,单位是分钟,缺省值为0,数据字典中的AccessCount,LastAccessTimeStamp数据不更新。
设置为非零值,即生效。需要关闭时,重新将此值设置为0即可。
注:该值设置为10以上,否则会影响性能。

上述开关打开一段时间后(如一个月),我们可以查看对象(表/视图/字段)被使用的频率信息:
sel a.databasename,a.tablename,LastAccessTimeStamp,sum(currentperm)
from dbc.tables a,dbc.tablesize b
where a.databasename = 'TEST'
and a.tablename = 'BRD_OFF_WARN_MON'
--and a.accesscount < 10
and a.LastAccessTimeStamp < cast('2011-03-01 00:00:00' as timestamp(0))
and a.databasename = b.databasename
and a.tablename = b.tablename
And a.tablekind = 'T'
group by 1,2,3 order by 4 desc,1,2,3

同样,要看表的字段是否被使用过,将上述dbc.tables表改为dbc.columns查询即可。

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

转载于:http://blog.itpub.net/16723161/viewspace-1057690/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值