有没有人做过smallfile,bigfile,asm的性能比对,共享下测试结果,谢谢!

quiettown 2009-07-29 10:14:54
如题!
...全文
431 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
inthirties 2009-07-30
  • 打赏
  • 举报
回复
大家对于讨论性的贴,如果以前有接触过的,可以多多谈谈自己的想法。每个人有每个人的看法,通过集中的讨论,如果个人的想法还是一斑窥豹的话,那么大家的理解体会集中起来,虽做不到一概而全,但是也是可以汇集成更多的面的
无·法 2009-07-30
  • 打赏
  • 举报
回复
不懂,帮顶
inthirties 2009-07-30
  • 打赏
  • 举报
回复
ASM的确是新的技术,RAW的历史悠久,是老式的一种提高性能和实现RAC的传统方式,多年的生产线考验下来的技术,在其成熟性上,当然是一些生产系统的选择考虑的方面之一,但是RAW也有其不足,这也是Oracle,综合file system和RAW的优点,提出ASM技术解决方案的初衷和目标。

当然对于一个新的技术来说(其实ASM也不算是很新了,毕竟也出来有几年了),大家更多的是对其成熟度的顾虑,不过,试问一下,又有哪家的小孩出生就可以想成人一样快意的奔跑了,不过,这个名为
ASM的Oracle的小孩,却是含着无比的关注和优良的基因而生的。

让我们一起看着它能够快速的成长为肆意在存储解决方案的领域里领跑的人物。
傻儿哥 2009-07-30
  • 打赏
  • 举报
回复
ASM是教新的概念,感觉我接触的大的生产系统基本都还是用raw方式来存储数据的.

ASM的优点比较明显,就是可以动态的增删磁盘,而且读写效率和raw在一个数量级别,
ASM还可以把磁盘读写均衡的分摊到他的diskgroup中.
ASM还有一个优点,在RAC环境下做归档或者快闪的时候,RAW环境下一般需要NFS 挂载文件系统来解决.
有了ASM,可以把归档空间还有快闪目的地都指向ASM.

ASM有一个大的缺点,我想这应该是一个很多生产系统都不敢用它的原因,就是它是基于ASM INSTANCE的,
如果这个instance挂掉了,那么所有数据都完了.
majy 2009-07-29
  • 打赏
  • 举报
回复
下面再来一段,oracle公司极力推荐使用bigfile,每一个tablespace只用一个datafile,这样可以更好的使用好64位操作系统的威力:

http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/physical.htm#sthref485
suncrafted 2009-07-29
  • 打赏
  • 举报
回复
关注
majy 2009-07-29
  • 打赏
  • 举报
回复
关于ASSM,给你一段oracle公司最权威的专家的原话:

Auto segment management just automates the process by which you used to have to manually
tune using multiple freelists. In the past, you would have had to of determine the
number of concurrent modifiers of data (inserts/updates that happen exactly at about the
same time) and configure multiple freelists in order to satisfy these concurrent requests
in a timely fashion.

With auto management you don't have to do this anymore. It'll not distribute across
multiple blocks any more then multiple freelists would have in the past -- only you need
not waste your time and energy attempting to determine the exact correct number of
freelists to have.

This new feature is more efficient then multiple freelists:

<quote>
Free lists have been the traditional method of managing free space within segments.
Bitmaps, however, provide a simpler and more efficient way of managing segment space.
They provide better space utilization and completely eliminate any need to specify and
tune the PCTUSED, FREELISTS, and FREELISTS GROUPS attributes
for segments created in the tablespace. If such attributes should be specified, they are
ignored.
</quote>


a very informal, quick and dirty test I've done shows that automatic segment space mgmt
gives us almost all of the benfit of finely tuned freelists -- without the pain of finely
tuning freelists (something that is virtually impossible to do in the "real world"
anyway).

Go for it -- on a heavy OLTP type table -- this is very beneficial.
quiettown 2009-07-29
  • 打赏
  • 举报
回复
感谢热心回复。
我想知道的是:
1. ASM对性能有没有什么影响,管理成本是比以前多了还是少了。
2. BIGFILE和SMALLFILE楼上也有兄弟说了,SMAILLFILE的CHECKPOINT有增多,可能比BIGFILE开销大。
3. 网上还有贴说创建BigFile,就会有很大的inode locking issues,使用单个TEMPFILE会影响查询性能等。俄想要个相对完整的输出。。。
majy 2009-07-29
  • 打赏
  • 举报
回复
ASM是一种管理方式,oracle9i以后,被强烈推荐使用。我们100G大小的数据库,自从用了这个,从来不用去关心索引重建之类的事情了

关于sallfile和bigfile,其实是要看你的磁盘设计的,如果就是一个普通的大磁盘,那效果是没什么区别的,如果你用的是 磁盘陈列,并且做了条块化(stripping),那么,取一个合适的文件大小就有关系了,我和oracle公司的技术人员讨论过,他们一般推荐每一个文件4-8G是比较合适的
inthirties 2009-07-29
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 inthirties 的回复:]
个人觉得bigfile对性能没有好处,只有坏处。

不过这里提到的database open倒是有可能会好一些,

checkpoint会提高,就有些不明白了。
[/Quote]

checkpoint会提高,就有些不明白了。

难道是如果多个datafile的话,checkpoint会去同步后比较然后在确认,还是???
inthirties 2009-07-29
  • 打赏
  • 举报
回复
个人觉得bigfile对性能没有好处,只有坏处。

不过这里提到的database open倒是有可能会好一些,

checkpoint会提高,就有些不明白了。
ngx20080110 2009-07-29
  • 打赏
  • 举报
回复
smallfile和bigfile各有各的好處。
smallfile在管理方面更有靈活性。
如果一個tablespace要儲存巨大的數据(TB級別的),那麽就用bigfile吧,因爲用smallfile來保存的話,要用很多個smallfile,這樣會增加checkpoint時的IO操作。

ps.對ASM還不是很熟悉,不討論了。
csuxp2008 2009-07-29
  • 打赏
  • 举报
回复
继续顶
quiettown 2009-07-29
  • 打赏
  • 举报
回复
感谢楼上诸位兄弟,小结下,只说性能,管理上优势显而易见:
1. Bigfile在某些可能影响性能的方面做的比Smallfile
Performance of database opens, checkpoints, and DBWR processes should improve if data is stored in bigfile tablespaces instead of traditional tablespaces. However, increasing the datafile size might increase time to restore a corrupted file or create a new datafile.
-- http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/physical.htm#i14068
2. ASM可以改善性能,由上面天黑的回复及
ASM:A vertical integration of both the file system and the volume manager built specifically for Oracle Database files. It extends the concept of stripe and mirror everything to optimize performance, while removing the need for manual I/O tuning.
-- http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/glossary.htm#CNCPT1995
3. 不过上面都是ORACLE自己说的,有时候也当不得真。
4. 所以有没有人明白里面的实现机理或给出测试数据。
5. 此帖200分,哪边给建议都给分,明天结帐,多谢!


thesecretblue 2009-07-29
  • 打赏
  • 举报
回复
pay attention
inthirties 2009-07-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 majy 的回复:]
回答楼上:如果磁盘已经做了条块化(stripping)不用自己去考虑I/O分布的问题
[/Quote]

这个和bigfile就没有关系叻。
majy 2009-07-29
  • 打赏
  • 举报
回复
回答楼上:如果磁盘已经做了条块化(stripping)不用自己去考虑I/O分布的问题
inthirties 2009-07-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 majy 的回复:]
下面再来一段,oracle公司极力推荐使用bigfile,每一个tablespace只用一个datafile,这样可以更好的使用好64位操作系统的威力:

http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/physical.htm#sthref485
[/Quote]

这里没有推荐的意义吧,突出的bigfile的好处
也就是在storage上,不需要多个datafile叻,但是我决定这个对于文件管理来说是好处,毕竟只对应一个文件,当然比多个文件好管理,不过性能上倒是比不到smallfile哟,毕竟small file又方式分散到IO如果处理的好的话。

而且对于管理来说如果用ASM的话。我们也不需要对文件直接管理哟

所以这里smallfile解决的storage capacity的问题,并不是解决better-performance的问题的,
不应该把smallfile/bigfile和ASM进行比较,比较方向不同,没有可比性。

也可以见我在这个贴上的回帖
http://topic.csdn.net/u/20090729/09/9b958ebf-533e-4200-bc4e-3c1c11c4b329.html?85728
---创建表空间 CREATE SMALLFILE TABLESPACE "NNC_DATA01" DATAFILE 'f:\database\DATA\NNC_DATA01' SIZE 256K AUTOEXTEND ON NEXT 512K MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; CREATE SMALLFILE TABLESPACE "NNC_DATA02" DATAFILE 'f:\database\DATA\NNC_DATA02' SIZE 256K AUTOEXTEND ON NEXT 512K MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; CREATE SMALLFILE TABLESPACE "NNC_DATA03" DATAFILE 'f:\database\DATA\NNC_DATA03' SIZE 512K AUTOEXTEND ON NEXT 1024K MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; CREATE SMALLFILE TABLESPACE "NNC_INDEX01" DATAFILE 'f:\database\INDEX\NNC_INDEX01' SIZE 128K AUTOEXTEND ON NEXT 256K MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; CREATE SMALLFILE TABLESPACE "NNC_INDEX02" DATAFILE 'f:\database\INDEX\NNC_INDEX02' SIZE 128K AUTOEXTEND ON NEXT 256K MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; CREATE SMALLFILE TABLESPACE "NNC_INDEX03" DATAFILE 'f:\database\INDEX\NNC_INDEX03' SIZE 256K AUTOEXTEND ON NEXT 512K MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; ---创建表空间 ---创建用户及授权 create user nc56 identified by nc56; grant dba to nc56; ---创建用户及授权 ---登录ORACLE sqlplus /nolog conn / as sysdba create user user_name identified by password 创建用户 alter user system identified by manager;修改用户密码 grant dba to user_name 用户授权 drop user user_name cascade 清空指定用户的所有数据,但表空间已占用的空间不会释放 create or replace directory expdir as 'c:\bak' grant read,write on directory expdir to nc55 expdp nc55/nc55@ncxh directory=expdir dumpfile=ncxh0412.dmp schemas=nc55 job_name=nc55job impdp nc55/nc55@nctest directory=expdir dumpfile=ncxh0412.dmp remap_schema=nc55:nc55 logfile=impnc0412.log job_name=impnc55job exp nc55/nc55@ncxh file=D:\*.DMP FULL=Y ---指定用户:owner=(用户1,用户n),指定表:tables=(表1,表2) ,表的字段:tables=(table1) query=\" where filed1 like '00%'\",压缩:compress=y imp NC55/NC55@NCXH FULL =Y FILE=D:\*.DMP IGnORE=Y exit expdp nc5011/hanc5059 DIRECTORY=expdir dumpfile=nc0621.dmp schemas=nc5011 parallel=2 job_name=nc5011job; impdp nc5011/hanc5059 DIRECTORY=expdir dumpfile=nc0621.dmp remap_schema=nc5011:nc5011 logfile=impnc0621.log job_name=imp_nc0621 parallel=2 & expdp nc30/nc30 DIRECTORY=expdir dumpfile=nc300.dmp schemas=nc30 parallel=3; expdp iufo/iufo DIRECTORY=expdir dumpfile=iufo300.dmp schemas=iufo parallel=3 job_name=aa 看用户方法: smit 选“Security & Users” 选“users” 选“list all users” F3退出 nc_uap 客户化(客户化,基础数据,web开发框架,外部交换平台,二次开发工具,查询引擎,web服务,业务依赖数据) nc_am 资产管理与固定资产 nc_fi 总账,固定资产,会计平台,财务公共,现金管理,应收、应付,借款报销,web报销 nc_tpb 计划预算(预算基础,全面预算,费用预算) nc_tm 资金管理 oracle 导入导出 来源: ChinaUnix博客  日期: 2006.06.04 17:41 (共有0条评论) 我要评论 Oracle数据导入导出imp/exp命令 --如何在oracle中导入dmp数据库文件? 2006/2/16 zhanghua first create Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。 执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行, DOS中可以执行时由于 在oracle 8i 中 安装目录\ora81\BIN被设置为全局路径, 该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。 oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。 SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。 下面介绍的是导入导出的实例。 数据导出: 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中 exp system/manager@TEST file=d:\daochu.dmp full=y 2 将数据库中system用户与sys用户的表导出 exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys) 3 将数据库中的表inner_notify、notify_staff_relat导出 exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat) 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出 exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\" 上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。 也可以在上面命令后面 加上 compress=y 来实现。 数据的导入 1 将D:\daochu.dmp 中的数据导入 TEST数据库中。 imp system/manager@TEST file=d:\daochu.dmp imp aichannel/aichannel@HUST full=y file=file= d:\data\newsmgnt.dmp ignore=y 上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。 在后面加上 ignore=y 就可以了。 2 将d:\daochu.dmp中的表table1 导入 imp system/manager@TEST file=d:\daochu.dmp tables=(table1) 基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。 注意: 1、在进行导入恢复时,如果是全部导入的话,就需要将原有的用户删除,这样此用户所拥有的数据就可以直接被删除了,否则在进导入时会下面的错误提示( ORACLE error 2291 encountered )那是因为与原有一些表,或主键出现冲突所致,所以再重新建立此用户,再导入数据就可以了。 2、在从导出文件中只导入某个表时,一定要使用该用户导入,比如只将ghb用户的user_id表导入,imp [email=ghb/123@test.sid.com]ghb/123@test.sid.com[/email] file=/tmp/ghb_2006.dmp tables=(user_id) 注意: 操作者要有足够的权限,权限不够它会提示。 数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。 附录一: 给用户增加导入数据权限的操作 第一,启动sql*puls 第二,以system/manager登陆 第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略) 第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW , DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE, DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字 第五, 运行-cmd-进入dmp文件所在的目录, imp userid=system/manager full=y file=*.dmp 或者 imp userid=system/manager full=y file=filename.dmp 执行示例: F:\Work\Oracle_Data\backup>imp userid=test/test full=y file=inner_notify.dmp 屏幕显示 Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006 (c) Copyright 2000 Oracle Corporation. All rights reserved. 连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production With the Partitioning option JServer Release 8.1.7.0.0 - Production 经由常规路径导出由EXPORT:V08.01.07创建的文件 已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入 导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换) . 正在将AICHANNEL的对象导入到 AICHANNEL . . 正在导入表 "INNER_NOTIFY" 4行被导入 准备启用约束条件... 成功终止导入,但出现警告。 附录二: Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的. 先建立import9.par, 然后,使用时命令如下:imp parfile=/filepath/import9.par 例 import9.par 内容如下: FROMUSER=TGPMS TOUSER=TGPMS2 (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同) ROWS=Y INDEXES=Y GRANTS=Y CONSTRAINTS=Y BUFFER=409600 file==/backup/ctgpc_20030623.dmp log==/backup/import_20030623.log

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧