关于bigfile数据文件和表空间

[复制链接]
查看11 | 回复9 | 2011-1-4 10:24:02 | 显示全部楼层 |阅读模式
10g提出了一个大文件表空间的概念,以前我从来没使用过,也不太了解。
网上搜索了下,主要提到的优点是存储大小更大了,这个比较明显。还有提到“DB_FILES 和 MAXDATAFILES 这两个参数的值给 SGA 带来的压力会减轻”,不太理解,求高手指教~~
由于项目组有人讨论将以前的表空间都替换为大文件表空间以提高性能(数据仓库项目),不知是否会有性能提升?如果有提升,主要提升在哪里?在相同情况下会不会加重其他系统负担,比如I/O、CPU?
回复

使用道具 举报

千问 | 2011-1-4 10:24:02 | 显示全部楼层
google & test
回复

使用道具 举报

千问 | 2011-1-4 10:24:02 | 显示全部楼层
官网资料里找到的,关于大文件表空间对SGA的好处:
You can also adjust parameters to reduce the SGA space required for datafile information and the size of the control file.
还有一句是:
Performance of database opens, checkpoints, and DBWR processes should improve if data is stored in bigfile tablespaces instead of traditional tablespaces
有没有人有使用经验的,因为整体性能这玩意也不是我本机随便跑几下能测试出来的。
回复

使用道具 举报

千问 | 2011-1-4 10:24:02 | 显示全部楼层
原帖由 〇〇 于 2010-10-18 11:19 发表
google & test

如果搜索的信息足够,一般也不至于来这里发帖吧


回复

使用道具 举报

千问 | 2011-1-4 10:24:02 | 显示全部楼层
1 bigfile tablespace only have 1 file...
回复

使用道具 举报

千问 | 2011-1-4 10:24:02 | 显示全部楼层
建大表索引時可以用bigfile temp tablespace,我建過一個64G的,非常方便
回复

使用道具 举报

千问 | 2011-1-4 10:24:02 | 显示全部楼层
db_files太大会占用很多内存
9i的看 http://www.dbafan.com/blog/?p=92
10g 我测试了一下,感觉没有那么夸张,不过的确也占用了一些内存
SQL> show parameter db_files
NAME
TYPEVALUE
------------------------------------ ----------- ------------------------------
db_files
integer 200
SQL> select * from v$sgastat where name like '%files%';
POOL NAME
BYTES
------------ ------------------------------------------------------------ ----------
shared poolmax allowable # log files
253200
shared pooldb_files
196100
SQL> alter system set db_files=20000 scope=spfile;
系统已更改。
SQL> alter system set db_files=20000 scope=spfile;
系统已更改。
SQL> startup force
ORACLE 例程已经启动。
Total System Global Area 1468006400 bytes
Fixed Size
1298880 bytes
Variable Size
343936576 bytes
Database Buffers 1115684864 bytes
Redo Buffers
7086080 bytes
数据库装载完毕。
数据库已经打开。
SQL>select * from v$sgastat where name like '%files%';
POOL NAME
BYTES
------------ ------------------------------------------------------------ ----------
shared poolmax allowable # log files
253200
shared pooldb_files
15565848
--也就15M
MAXDATAFILES 这个参数我记忆中10g已经没有用了
Performance of database opens, checkpoints, and DBWR processes should improve if data is stored in bigfile tablespaces instead of traditional tablespaces
我个人的理解 我觉得 大表空间 文件数是很少的 比如说200

而小表空间 可能要
10000
对10000个文件 做检查点和对200个文件做检查点 和其他一些操作 性能上肯定是有影响的
我想有好处 一定也有不好之处吧
举个简单的例子,如果一个 表被drop了,而这个表在 大表空间了,数据文件是1T,那么恢复这个表空间1T,估计也够呛吧
如果是小表空间,表空间可能是10G,恢复一下应该会很快的
回复

使用道具 举报

千问 | 2011-1-4 10:24:02 | 显示全部楼层
谢谢楼上几位参与讨论~
今天中午和同事交流了一下,他提出这个用大文件数据文件替换常规的数据文件,主要是分去表性能上的考虑。他打算把比较大的分区表,每个分区放在单独的表空间里,这些表空间使用同一个bigfile数据文件,这样在查询跨分区数据或较多数据时,不至于跨越多个数据文件,以次为提升性能的主要目的。他还给我看了下他近段时间做的相关测试,测试结果也显示,在检索速度上,多表空间单个数据文件(bigfile)的分区表>多表空间多个数据文件(smallfile)分区表>单表空间分区表。
回复

使用道具 举报

千问 | 2011-1-4 10:24:02 | 显示全部楼层
当然,这个测试由于条件限制,只是在一般的PC服务器上做了简单的查询测试,对于并发和其他DML的影响还未知。
回复

使用道具 举报

千问 | 2011-1-4 10:24:02 | 显示全部楼层
顶一下
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行