首页 » Web前端 » tablefileDataphp技巧_oracle表空间和数据文件

tablefileDataphp技巧_oracle表空间和数据文件

访客 2024-12-12 0

扫一扫用手机浏览

文章目录 [+]

CREATE TABLESPACE dbname_tablespace DATAFILE '/P1RDIDB/DATAFILE/dbname_datafile01.dbf' SIZE 10G AUTOEXTEND ON NEXT 100M MAXSIZE 30G;

用户创建:

tablefileDataphp技巧_oracle表空间和数据文件

create user dbusername identified by "db@123." default tablespace dbname_tablespace;

tablefileDataphp技巧_oracle表空间和数据文件
(图片来自网络侵删)

授权:

grant dba to dbusername;

--改变用户表空间容量限定,不做限定ALTER USER dbusername QUOTA UNLIMITED ON dbname_tablespace;

密码不过期

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;数据文件

表空间数据文件容量与DB_BLOCK_SIZE有关,在初始建库时,DB_BLOCK_SIZE要根据实际须要,可以设置为 4K,8K,16K,32K,64K。
默认8K,ORACLE的物理文件最大只许可4194304个数据块(每个数据文件最多只能包含2^22-1个数据块。
这个限定是由于Oracle的Rowid中利用22位来代表Block号,这22位最多只能代表2^22-1个数据块。
这个限定也就直接导致了每个数据文件的最大许可大小),表空间数据文件的最大值为 4194304×DB_BLOCK_SIZE/1024M

查询块大小

SELECT value FROM v$parameter WHERE name = 'db_block_size';DB_BLOCK_SIZE作为数据库的最小操作单位,是在创建数据库的时候指定的,在创建完数据库之后不可修正。
要修正DB_BLOCK_SIZE,须要重修数据库。
常日做法是将数据EXP出来,然后重修数据库,指定新的DB_BLOCK_SIZE,然后再将数据IMP进数据库。
DB_BLOCK_SIZE一样平常设置为操作系统块的倍数,即2K,4K,8K,16K或32K,但它的大小一样平常受数据库用场的影响。
对付联机事务,其特点是事务量大,但每个事务处理的数据量小,以是DB_BLOCK_SIZE设置小些就足够了,一样平常为4K或者8K,设置较大的话,一次读出的数据有部分是没用的,会拖慢数据库的读写韶光,同时增加无必要的IO操作。
而对付数据仓库和ERP方面的运用,每个事务处理的数据量很大,以是DB_BLOCK_SIZE一样平常设置得比较大,一样平常为8K,16K或者32K,此时如果DB_BLOCK_SIZE小的话,那么I/O自然就多,花费太大。
大一点的DB_BLOCK_SIZE对索引的性能有一定的提高。
由于DB_BLOCK_SIZE比较大的话,一个DB_BLOCK一次能够索引的行数就比较多。
对付行比较大的话,比如一个DB_BLOCK放不下一行,数据库在读取数据的时候就须要进行行链接,从而影响读取性能。
此时DB_BLOCK_SIZE大一点的话就可以避免这种情形的发生查询数据库的默认块大小

SELECT name, value FROM v$sysstat WHERE name = 'db block size'查询表的块大小

SELECT table_name, block_size FROM all_tablesWHERE owner = 'SCOTT'多个数据文件累加

将表空间存储为多个数据文件,每个文件不大于32GB(精确的值为32768M)

create tablespace JC_DATAlogging datafile 'F:\app\oracle\oradata\orcl\JC_DATA01.dbf' size 50m autoextend on next 50m maxsize 32767m extent management local; --为表空间增加数据文件alter tablespace JC_DATA add datafile 'F:\app\oracle\oradata\orcl\JC_DATA02.dbf' size 50m autoextend on next 50m maxsize 32767m;扩大db_block_size

创建数据库时,db_block_size可以设置(db_block_size的最大大小为32KB)。
如果把db_block_size扩大到32KB,那么我们的系统就可以支持单个数据文件最大128GB。

创建bigfile表空间

在oracle11g中引进了bigfile表空间,他充分利用了64位CPU的寻址能力,使oracle可以管理的数据文件总量达到8EB。
单个数据文件的大小达到128TB,纵然默认8K的db_block_size也达到了32TB。

创建bigfile的表空间利用的sql语句和创建表空间的语句利用基本相同。

create bigfile tablespace···

Bigfile tablespace 只许可一个数据文件,在大文件表空间下,Oracle利用32位来代表Block号, 每个文件最多可以容纳4G(2^32)个Block。
那么也便是说当Block_size为2k时,数据文件可以达到8T。
当Block_size为8k时,数据文件可以达到32T。
当block_size 为32K时,数据文件可以达到128T。

标签:

相关文章