oracle创建表空间自增空间管理
表空间(tablespace)指数据库分一个或多个表空间、段(segment)指存储数据表、区(extent)指数据行、块(block),这些都是oracle数据库在数据文件中组织数据的基本单元
1.创建表空间
create tablespace SIRM2
datafile 'D:\oracle\product\10.2.0\oradata\orcl\SIRM2.dbf' size 1024M --存储地址 初始大小1G
autoextend on next 10M maxsize unlimited --每次扩展10M,无限制扩展
EXTENT MANAGEMENT local autoallocate
segment space management auto;
创建表空间,名称为SIRM2 ;
2. 表空间有一个数据文件*.dbf,大小为1024MB;
3. 允许表空间自动扩展(autoextends),每次增长10MB(next 10M),并且不限制最大大小;
4. 说明表空间本地(local)管理,并自动分配范围(autoallocate),用户不能指定范围的大小;
5. 段空间(segment)的空间管理上使用bitmaps(auto)来管理数据块。使用AUTO会比使用MANUAL有更好的空间利用率,与效能上的提升。
在Oracle 8i以前,可以有两种选择,一种是在字典中管理(DICTIONARY),另一种是本地管理(LOCAL ),从9I开始,只能是本地管理方式.因为LOCAL 管理方式有很多优点.
在字典中管理(DICTIONARY): 将数据文件中的每一个存储单元做为一条记录,所以在做DM操作时,就会产生大量的对这个管理表的Delete和Update操作.做大量数据管理时,将会产生很多的DM操作,严得的影响性能,同时,长时间对表数据的操作,会产生很多的磁盘碎片,这就是为什么要做磁盘整理的原因.
本地管理(LOCAL): 用二进制的方式管理磁盘,有很高的效率,同进能最大限度的使用磁盘. 同时能够自动跟踪记录临近空闲空间的情况,避免进行空闲区的合并操作。
SEGMENT SPACE MANAGEMENT
磁盘扩展管理方法:
SEGMENT SPACE MANAGEMENT: 使用该选项时区大小由系统自动确定。由于 Oracle 可确定各区的最佳大小,所以区大小是可变的。
2.创建用户
create user test identified by test
default tablespace SIRM2
temporary tablespace TEMP
profile DEFAULT;
3.授权
grant dba to test;
grant connect to test;
grant resource to test;
4.代码例子
--查看表空间 select distinct tablespace_name from dba_free_space; --创建表空间 create tablespace XH_History_WS datafile 'D:\app\bailongfei123\oradata\orcl\XH_History_WS.dbf' size 120M --存储地址 初始大小120M autoextend on next 10M maxsize unlimited --每次扩展10M,无限制扩展 EXTENT MANAGEMENT local autoallocate ---说明表空间本地(local)管理,并自动分配范围(autoallocate),用户不能指定范围的大小 segment space management auto; --段空间(segment)的空间管理上使用bitmaps(auto)来管理数据块。使用AUTO会比使用MANUAL有更好的空间利用率,与效能上的提升 --删除表空间 drop tablespace XH_History_WS including contents and datafiles; --创建用户 create user XH_Bai_History_WS identified by tiger default tablespace XH_History_WS; ----- alter user 用户 quota unlimited on 表空间A; alter user 用户 quota unlimited on 表空间B; --或者放开所有表空间 grant unlimited tablespace to 用户; --或者索性给所有权限 grant resource,connect,dba to 用户; --查询用户 select * from all_users; --授权 grant connect to XH_Bai_History_WS;-- --是授予最终用户的典型权利,最基本的权力,能够连接到ORACLE数据库中,并在对其他用户的表有访问权限时,做SELECT、UPDATE、INSERTT等操作 grant resource to XH_Bai_History_WS;--是授予开发人员的,能在自己的方案中创建表、序列、视图等。 grant dba to XH_Bai_History_WS;--是授予系统管理员的,拥有该角色的用户就能成为系统管理员了,它拥有所有的系统权限 --revoke revoke connect,resource from java_user; grant create view to java_user --创建视图权限,一般网上找都是说的这句,但是光有这句还是无法创建 grant create view to XH_Bai_History_WS; --授予查询权限 grant select any table to B; --授予权限 grant select any dictionary to B; --以上3项地后就能正常创建视图了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通