查看: 6778|回复: 26

[性能调整] 最后一帖:为什么我的数据库SQL初始化时间特别长……

[复制链接]
论坛徽章:
0
发表于 2010-3-16 12:06 | 显示全部楼层 |阅读模式
最后发一帖:

单位作数据库升级,由8i升级到10g.

我做了两台测试机,
第一台,
服务名HS01-60
服务器配置:Intel(R) Pentium(R) III proessor 997MHz,1.00GB内存

第二个,
服务名HS01-new
服务器配置:Intel(R) Xeon(R) E5520 @2.27GHz 2.26GHZ,7.99GB内存

方法都是一样的:
1,首先在新服务器中安装oracle
2,用DBCA建库
3,根据原有DB中的表空间,用户等,在新DB中创建表空间,用户,角色等……
4,用imp导入原DB中导出的DMP文件。

但在第二台中发现非常的奇怪的现象:现象就是查询数据时特别慢,SQL初始化时间特别长……
1,在PL在PL/SQL中表现就是执行一条SQL时,点击执行后,下面的状态会显示:“Intializing……”,这个过程就很长。但这个过程在原有的DB(oracle8i)和hs60中就很快!
2,尤其是查询数据字典内容时,对比特别明显。在hs01-new要好几秒,但hs01-60中一下就完了!

为什么呢?
HS01-new服务器配置要高好多,为什么性能却这这么差呢,真是不理解!

问了一些人,调整了一些内容,未见什么成效!
两者创建时,不太一样。在DBCA第二步中,hs01-60先的是一般用途,hs01-new选的是定制数据库。
比较两者的参数,只有15个不同的,见附表,有V$parameter中的全部参数。

我是不行了,找不到原因,也调不好,准备重作一下!
但很有些不甘心啊,怎么就找不到原因呢!
我作了些简单的性能查询,并加了执行计划,如附件从中可以明显看出,HS01-new所用时间比hs01-60要长不少……真是郁闷…
有兴趣的可以研究一下!

相关帖子:
http://www.itpub.net/viewthread. ... p;extra=&page=1
http://bbs.chinaunix.net/viewthr ... ;extra=#pid11937504

PS:忘了说一点,对于HS01-new,对比原来的数据库,发现执行计划时optimizer goal不同。
8i : optimizer goal= choose
10gptimizer goal=all rows
以为找到了问题,于是用以下语句修改:
ALTER system SET OPTIMIZER_MODE = CHOOSE
但初始化时间依然很长。

后来又将其改回All_rows,感觉查询数据时变快了,没有那么长的初始华时间了。但查询数据字典时,仍然是很慢,仍然有很长的初始华时间……

[ 本帖最后由 taoyoyo 于 2010-3-16 12:15 编辑 ]

HS01_10g_参数对比.rar

30.41 KB, 下载次数: 13

hs01_60.txt

45.45 KB, 下载次数: 13

hs01_new.txt

64.88 KB, 下载次数: 15

论坛徽章:
819
授权会员
日期:2007-08-10 01:06:30会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB元老
日期:2008-08-24 00:06:57 2014年世界杯参赛球队: 德国
日期:2014-07-09 15:28:06马上加薪
日期:2014-11-23 19:24:42马上有钱
日期:2014-12-21 16:14:33暖羊羊
日期:2015-03-04 14:50:372015年新春福章
日期:2015-03-06 11:57:31
发表于 2010-3-16 12:23 | 显示全部楼层
你原来8i相当于用的是rule 优化器,把10g改成用rule试试

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2010-3-16 13:11 | 显示全部楼层
改为rule?

这个好么,我试一下!

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2010-3-16 13:16 | 显示全部楼层
不行,还是有那个现象……甚至还比较严重……

使用道具 举报

回复
论坛徽章:
1
2010新春纪念徽章
日期:2010-03-01 11:19:07
发表于 2010-3-16 13:46 | 显示全部楼层
select sg.name,sg.value as value_b,round(sg.value/1024/1024,2) as value_m from v$sga sg;
在导入数据之前做也慢吗?

使用道具 举报

回复
认证徽章
论坛徽章:
50
2014年世界杯参赛球队: 荷兰
日期:2014-07-11 07:56:59蛋疼蛋
日期:2012-03-06 07:22:542012新春纪念徽章
日期:2012-02-13 15:09:522012新春纪念徽章
日期:2012-02-13 15:09:522012新春纪念徽章
日期:2012-02-13 15:09:522012新春纪念徽章
日期:2012-02-13 15:09:522012新春纪念徽章
日期:2012-02-13 15:09:522012新春纪念徽章
日期:2012-01-04 11:53:29蛋疼蛋
日期:2011-11-11 15:47:00ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26
发表于 2010-3-16 13:56 | 显示全部楼层
对了,好像10G的数据字典访问就是会比以前8I的刚慢,很多情况下,我都用
select /*+rule*/  来访问数据字典,如性能视图表

使用道具 举报

回复
论坛徽章:
120
现任管理团队成员
日期:2011-05-07 01:45:08乌索普
日期:2019-02-14 23:54:04
发表于 2010-3-16 14:20 | 显示全部楼层
... 没什么用数据字典比较性能? 这样有意义么? 10g 8i数据字典差异太大了~

lz 到底相比较什么? 那你应用上的sql拿过来作比较~ 不要再client上看时间,直接做10046,然后比较时间

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2010-3-16 16:30 | 显示全部楼层

回复 #5 mp3www 的帖子

我又重新了数据库,还没有导入数据,测试了一下:
只是查了一个SGA,就很明显……

回7楼zergduan :我知道10g和8i的字典差好多,但现在10g和10g的比较啊。
虽然字典不是用户数据,但DB在使用时肯定要经常用到字典,这个慢了,肯定会影响性能的……我这样理解应该可以吧!

从下面的过程,我们可以看到,第一次查询比较慢,然后就比较快了,但过一会之后,再查询,又变慢了!
但同样的,也是10g,hs01-60上查询就基本上没有什么变化。
真不知道这到底是为什么!

当然我这个方法,可能是很拙劣的,看不出什么问题,但别的我不太会。

大家有什么测试的方法可以教教我!

谢谢


SQL> set autotrace on

--第一次

SQL> set timing on
SQL> select name,value/1024/1024 as value_M from v$sga;

NAME                              VALUE_M
------------------------------ ----------
Fixed Size                     1.30968857
Variable Size                  190.627811
Database Buffers                      388
Redo Buffers                       4.0625

已用时间:  00: 00: 18.78

Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=ALL_ROWS (Cost=0 Card=1 Bytes=38)
   1    0   FIXED TABLE (FULL) OF 'X$KSMSD' (TABLE (FIXED)) (Cost=0 Ca
          rd=1 Bytes=38)





Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          0  consistent gets
          0  physical reads
          0  redo size
        658  bytes sent via SQL*Net to client
        425  bytes received via SQL*Net from client
          4  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          4  rows processed



--第2次

SQL> select name,value/1024/1024 as value_M from v$sga;

NAME                              VALUE_M
------------------------------ ----------
Fixed Size                     1.30968857
Variable Size                  190.627811
Database Buffers                      388
Redo Buffers                       4.0625

已用时间:  00: 00: 00.50

Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=ALL_ROWS (Cost=0 Card=1 Bytes=38)
   1    0   FIXED TABLE (FULL) OF 'X$KSMSD' (TABLE (FIXED)) (Cost=0 Ca
          rd=1 Bytes=38)





Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          0  consistent gets
          0  physical reads
          0  redo size
        658  bytes sent via SQL*Net to client
        425  bytes received via SQL*Net from client
          4  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          4  rows processed

--第3次

SQL> select name,value/1024/1024 as value_M from v$sga;

NAME                              VALUE_M
------------------------------ ----------
Fixed Size                     1.30968857
Variable Size                  190.627811
Database Buffers                      388
Redo Buffers                       4.0625

已用时间:  00: 00: 00.25

Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=ALL_ROWS (Cost=0 Card=1 Bytes=38)
   1    0   FIXED TABLE (FULL) OF 'X$KSMSD' (TABLE (FIXED)) (Cost=0 Ca
          rd=1 Bytes=38)





Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          0  consistent gets
          0  physical reads
          0  redo size
        658  bytes sent via SQL*Net to client
        425  bytes received via SQL*Net from client
          4  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          4  rows processed

--第4次

SQL> select name,value/1024/1024 as value_M from v$sga;

NAME                              VALUE_M
------------------------------ ----------
Fixed Size                     1.30968857
Variable Size                  190.627811
Database Buffers                      388
Redo Buffers                       4.0625

已用时间:  00: 00: 00.15

Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=ALL_ROWS (Cost=0 Card=1 Bytes=38)
   1    0   FIXED TABLE (FULL) OF 'X$KSMSD' (TABLE (FIXED)) (Cost=0 Ca
          rd=1 Bytes=38)





Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          0  consistent gets
          0  physical reads
          0  redo size
        658  bytes sent via SQL*Net to client
        425  bytes received via SQL*Net from client
          4  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          4  rows processed

--第N次

SQL> select name,value/1024/1024 as M_value from v$sga;

NAME                              M_VALUE
------------------------------ ----------
Fixed Size                     1.30968857
Variable Size                  190.627811
Database Buffers                      388
Redo Buffers                       4.0625

已用时间:  00: 00: 08.88

Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=ALL_ROWS (Cost=0 Card=1 Bytes=38)
   1    0   FIXED TABLE (FULL) OF 'X$KSMSD' (TABLE (FIXED)) (Cost=0 Ca
          rd=1 Bytes=38)





Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          0  consistent gets
          0  physical reads
          0  redo size
        658  bytes sent via SQL*Net to client
        425  bytes received via SQL*Net from client
          4  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          4  rows processed

[ 本帖最后由 taoyoyo 于 2010-3-16 16:41 编辑 ]

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2010-3-16 16:49 | 显示全部楼层

回复 #7 zergduan 的帖子

知道10g和8i的字典差好多,但现在10g和10g的比较啊。
虽然字典不是用户数据,但DB在使用时肯定要经常用到字典,这个慢了,肯定会影响性能的……我这样理解应该可以吧!

你想想,查询一个v$version就要2~3秒,这正常么……

当然我这个方法,可能是很拙劣的,看不出什么问题,但别的我不太会。

你说的10046,我倒会一点,等会做一下!

以下是在服务器端做的!
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE    10.2.0.1.0      Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

已用时间:  00: 00: 06.15

执行计划
----------------------------------------------------------
Plan hash value: 1078166315

------------------------------------------------------------------------------
| Id  | Operation        | Name      | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------
|   0 | SELECT STATEMENT |           |     1 |    47 |     0   (0)| 00:00:01 |
|*  1 |  FIXED TABLE FULL| X$VERSION |     1 |    47 |     0   (0)| 00:00:01 |
------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter("INST_ID"=USERENV('INSTANCE'))


统计信息
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          0  consistent gets
          0  physical reads
          0  redo size
        680  bytes sent via SQL*Net to client
        385  bytes received via SQL*Net from client
          4  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          5  rows processed

SQL>


连Set autotrace on都要反应1秒,这为什么啊……
在配置远远低的hs01-60上都没有这样啊……

实在奇怪啊!

[ 本帖最后由 taoyoyo 于 2010-3-16 16:53 编辑 ]

使用道具 举报

回复
论坛徽章:
1
2010新春纪念徽章
日期:2010-03-01 11:19:07
发表于 2010-3-16 17:00 | 显示全部楼层
慢的时候系统性能怎样?
操作系统是什么版本?
是不是安装个64位版本的oracle试一试?

使用道具 举报

回复

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

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表