Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

1

好友

29

主题
1#
发表于 2013-3-5 14:57:03 | 查看: 4096| 回复: 2
有一个查询
  1. SELECT B.ROW_ID,
  2.        B.INVENTORY_ITEM_ID,
  3.        B.SEGMENT1,
  4.        B.SEGMENT2,
  5.        B.SEGMENT3,
  6.        B.SEGMENT4,
  7.        B.SEGMENT5,
  8.        B.SEGMENT6,
  9.        B.SEGMENT7,
  10.        B.SEGMENT8,
  11.        B.SEGMENT9,
  12.        B.SEGMENT10,
  13.        B.SEGMENT11,
  14.        B.SEGMENT12,
  15.        B.SEGMENT13,
  16.        B.SEGMENT14,
  17.        B.SEGMENT15,
  18.        B.SEGMENT16,
  19.        B.SEGMENT17,
  20.        B.SEGMENT18,
  21.        B.SEGMENT19,
  22.        B.SEGMENT20,
  23.        B.ATTRIBUTE1,
  24.        B.ATTRIBUTE2,
  25.        B.ATTRIBUTE3,
  26.        B.ATTRIBUTE4,
  27.        B.ATTRIBUTE5,
  28.        B.ATTRIBUTE6,
  29.        B.ATTRIBUTE7,
  30.        B.ATTRIBUTE8,
  31.        B.ATTRIBUTE9,
  32.        B.ATTRIBUTE10,
  33.        B.ATTRIBUTE11,
  34.        B.ATTRIBUTE12,
  35.        B.ATTRIBUTE13,
  36.        B.ATTRIBUTE14,
  37.        B.ATTRIBUTE15,
  38.        B.GLOBAL_ATTRIBUTE_CATEGORY,
  39.        B.GLOBAL_ATTRIBUTE1,
  40.        B.GLOBAL_ATTRIBUTE2,
  41.        B.GLOBAL_ATTRIBUTE3,
  42.        B.GLOBAL_ATTRIBUTE4,
  43.        B.GLOBAL_ATTRIBUTE5,
  44.        B.GLOBAL_ATTRIBUTE6,
  45.        B.GLOBAL_ATTRIBUTE7,
  46.        B.GLOBAL_ATTRIBUTE8,
  47.        B.GLOBAL_ATTRIBUTE9,
  48.        B.GLOBAL_ATTRIBUTE10,
  49.        B.PROGRAM_ID,
  50.        B.PROGRAM_UPDATE_DATE,
  51.        T.DESCRIPTION,
  52.        T.LONG_DESCRIPTION,
  53.        B.CONCATENATED_SEGMENTS,
  54.        B.PADDED_CONCATENATED_SEGMENTS
  55.   FROM MTL_SYSTEM_ITEMS_TL T, MTL_SYSTEM_ITEMS_B_KFV B
  56. WHERE B.INVENTORY_ITEM_ID = T.INVENTORY_ITEM_ID
  57.    AND B.ORGANIZATION_ID = T.ORGANIZATION_ID
  58.    AND T.LANGUAGE = userenv('LANG');
复制代码
查询结果时间很长,执行计划是两个表的全表扫描
其中t表约200万行数据,org_id中包含105.106.107.110(但由于dml较多所以无法使用位图索引),inventory_item_id返回基数较大,group by后约13万数据,language包含zhs,zht,us,ja(但同样无法使用位图是索引)查询中t.l=lang返回约50万行数据

问题是:我基于t表的DESCRIPTION,LONG_DESCRIPTION,org_id,inventory_item_id,language创建物化视图日志,完了创建on commit的快速刷新物化视图,要不要这样做,还是有其他方法也能提高本次查询?

olap的数据库
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE        10.2.0.3.0        Production
TNS for IBM/AIX RISC System/6000: Version 10.2.0.3.0 - Productio
NLSRTL Version 10.2.0.3.0 - Production
2#
发表于 2013-3-5 20:00:13
1. 你的这几张大表是否经常有DML 操作? 还是几乎read only的?

2.
“问题是:我基于t表的DESCRIPTION,LONG_DESCRIPTION,org_id,inventory_item_id,language创建物化视图日志,完了创建on commit的快速刷新物化视图,要不要这样做,还是有其他方法也能提高本次查询?”

这样做有什么 实质意义吗?

回复 只看该作者 道具 举报

3#
发表于 2013-3-5 21:06:29
Maclean Liu(刘相兵 发表于 2013-3-5 20:00
1. 你的这几张大表是否经常有DML 操作? 还是几乎read only的?

2.

1.dml比较频繁,几乎每天都有dml,但是dml的数据量不大
2.我就是想,如果是建快速刷新物化视图,选择这几列作为物化视图日志的列好不好?还是我理解上有误了?(我想的是基于rowid,sequence建立)

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-5-17 18:43 , Processed in 0.045837 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569