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

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

53

积分

0

好友

3

主题
1#
发表于 2013-11-15 22:08:54 | 查看: 5049| 回复: 7
本帖最后由 zhm2815 于 2013-11-16 21:14 编辑

测试环境:
OS version:redhat 5.4
资源:2C,32G
存储:单盘创建文件系统,未做存储优化
数据库:10.2.0.5.9,8K,内存12G
涉及数据表:KIS_SNMP,31个分区,每个分区600W左右,总大小90G左右。
使用了bitmap索引,查询当天数据1s以内,7天的数据4s内,30天数据35s内。

生产环境:
OS version:AIX 7.1
资源:2C,64G
存储:EMC,裸设备
数据库:10.2.0.5.9,32K,内存20G
涉及数据表:KIS_SNMP,31个分区,每个分区400W左右,总大小60G左右。
使用了bitmap索引,查询当天数据需要2-3s,7天的数据10-15s,30天数据40-50s左右。

业务非常简单,从单表查询指定IP地址和指定IP端口的数据。

现象:当天导入全部数据后,将应用切换到生产机,未增加数据库内存前查询也挺快,下午6点左右将内存从5G调整到20G,重启后也还挺快,第二天来的时候就发现非常慢,甚至比测试环境还要差。

相关附件包括:查询快时和慢时的AWR报告、sql执行计划、ash、addm、10046等报告。
网管报告.zip (128.33 KB, 下载次数: 1803)

2194.html                                  -- 迁到生产环境后,未修改SGA之前的sql 执行计划报告
2194_2195.html                        -- 迁到生产环境后,未修改SGA之前的AWR报告
2377.html                                  -- 迁到生产环境后,修改SGA之后,执行较慢时的sql 执行计划报告     
2377_2379.html                        --迁到生产环境后,修改SGA之后,执行较慢时AWR报告
ashrpt_2810_2811.html            --迁到生产环境后,执行较慢时ASH报告
awrpt_2810_2811.html             --迁到生产环境后,执行较慢时AWR报告
awrsqrpt_a450vquwbsa8p.html --迁到生产环境后,执行较慢时sql执行计划报告
sqltrpt_a450vquwbsa8p.txt       --迁到生产环境后,sql语句的Sql Tunning报告
tab_ind_stat.txt                         --生产环境表和索引相关信息。

2#
发表于 2013-11-16 16:40:31
本帖最后由 wushi8 于 2013-11-16 16:43 编辑

3a8vrq481v0jg
这个SQL执行一次物理读1.4G,明显异常,做个trace,确定下是否在等IO,再看下执行计划是否有变动。
你加完内存后SGA,PGA都没做过修改?

回复 只看该作者 道具 举报

3#
发表于 2013-11-16 19:20:44
你的zip包里有好几个报告,至少介绍一下 分别对应什么环境

回复 只看该作者 道具 举报

4#
发表于 2013-11-16 21:19:57
本帖最后由 zhm2815 于 2013-11-16 21:23 编辑
wushi8 发表于 2013-11-16 16:40
3a8vrq481v0jg
这个SQL执行一次物理读1.4G,明显异常,做个trace,确定下是否在等IO,再看下执行计划是否有 ...


这个语句应该是一个统计语句,他们自己手动执行的。平时并不运行。

回复 只看该作者 道具 举报

5#
发表于 2013-11-16 21:20:37
Maclean Liu(刘相兵 发表于 2013-11-16 19:20
你的zip包里有好几个报告,至少介绍一下 分别对应什么环境

感谢刘大的提醒,已做说明。

回复 只看该作者 道具 举报

6#
发表于 2013-11-16 21:31:55
2194.html                                  -- 迁到生产环境后,未修改SGA之前的sql 执行计划报告
SQL Id        Elapsed Time (ms)        Module        Action        SQL Text
0wa43q1p9dh22        13,563                          select DISTINCT "Timestamp" as writeTime, "OidGroup", 100*("snmpResult...



2377.html
SQL Id        Elapsed Time (ms)        Module        Action        SQL Text
72tarv4qh6fb0        44,739                          select distinct "Timestamp" as writeTime, 100*("snmpResultZero"/("snmp...


awrsqrpt_a450vquwbsa8p.html
SQL Id        Elapsed Time (ms)        Module        Action        SQL Text
a450vquwbsa8p        51,165         sqlplus@QHNMDB02 (TNS V1-V3)                 select distinct "Timestamp" as WRITETIME, "snmpResultZero" as CALCRESU...



回复 只看该作者 道具 举报

7#
发表于 2013-11-16 21:34:13
72tarv4qh6fb0

SELECT DISTINCT "Timestamp" AS writeTime,
  100*("snmpResultZero"/("snmpResultZero"+"snmpResultOne")) calcResult,
  "snmpResultZero"
FROM KIS_SNMP
WHERE "OidGroup"                                               ='MemoryUtilization_cisco_1_0'
AND "Host"                                                     ='199.0.62.53'
AND "Timestamp"                                               >='1130922091500000'
AND "Timestamp"                                               <='1131022091500000'
AND 100                                                                          *("snmpResultZero"/("snmpResultZero"+"snmpResultOne")) IS NOT NULL
AND 0                                                         <>("snmpResultZero"+"snmpResultOne")
ORDER BY "Timestamp"



0wa43q1p9dh22       

SELECT DISTINCT "Timestamp" AS writeTime,
  "OidGroup",
  100*("snmpResultZero"/("snmpResultZero"+"snmpResultOne")) ?′灻?ê
FROM KIS_SNMP
WHERE ("OidGroup"='MemoryUtilization_cisco_1_0')
AND "Host"       ='40.52.240.65'
AND "Timestamp" >='1130918091047000'
AND "Timestamp" <='1131018091047000'
AND 0           <>("snmpResultZero"+"snmpResultOne")
ORDER BY "Timestamp"


a450vquwbsa8p

SELECT DISTINCT "Timestamp" AS WRITETIME,
  "snmpResultZero"          AS CALCRESULT
FROM itmuserdc.KIS_SNMP
WHERE "Host"                    = '199.0.27.68'
AND ("OidGroup"                 = 'ifUtilizationIn_general_55'
OR "OidGroup"                   = 'ifUtilizationInHC_general_55')
AND "Timestamp"                >= '1130930000000000'
AND "Timestamp"                <= '1131031171224000'
AND "snmpResultZero"           IS NOT NULL
AND to_number("snmpResultZero") > 0
ORDER BY "Timestamp"



这3个SQL文本区别还是不小的,不清楚你为什么 要放3个不同SQL的 前后对比

回复 只看该作者 道具 举报

8#
发表于 2013-11-17 19:49:13
本帖最后由 zhm2815 于 2013-11-17 19:55 编辑
Maclean Liu(刘相兵 发表于 2013-11-16 21:34
72tarv4qh6fb0

SELECT DISTINCT "Timestamp" AS writeTime,


这个可能是他们应用自己做了些小的修改。
KIS_SNMP上只建了一个(host,oidgroup)的索引,没有其他索引。

最后一个是建了bitmap索引之后的,但是也没有太大改善。

我看了执行计划变化比较大的还是User I/O Wait Time (ms)

回复 只看该作者 道具 举报

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

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

GMT+8, 2024-5-17 15:17 , Processed in 0.065021 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

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