一、表空间
1、作用
(1)“表空间”可以理解为“数据文件”的集合。一个“数据文件”必须属于一个“表空间”,而一个“表空间”可以包含多个数据文件。
(2)“表空间”是面对用户开放的逻辑单位。用户创建表、索引等对象的时候,需要指定该对象存放到哪个表空间,而不能指定存放到哪个数据文件。假设一下,假如直接把表指定到数据文件的情况。因为很多操作系统对文件大小有限制,因此,如果你的表超过了那个限制,那么就没办法处理了。而表空间则可以通 过 增加数据文件的数量来扩展。
此外,表空间的引入,还可以将一个表空间的多个数据文件存放到不同的磁盘目录下。对资源分配带来更多的便利。
2、类型
permanent:永久性表空间,
temporary:临时表空间,用于临时数据的存放(临时表空间消耗的主要原因是需要对查询的中间结果进行排序);数据在重启数据库的时候会自动的清空
主要做排序用,大数据量的排序需要产生很多的中间结果,这些结果内存中通常放不下,需要临时保存到磁盘上,这就是临时表空间的作用。
重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会一直增长。直到耗尽硬盘空间。
网上有人猜测在磁盘空间的分配上,oracle使用的是贪心算法,如果上次磁盘空间消耗达到1GB,那么临时表空间就是1GB。也就是说当前临时表空间文件的大小是历 史上使用临时表空间最大的大小。
在数据库运行的过程中经常有大量并发排序,为了提高排序性能,应该建立多个临时表空间。
临时表空间使用机制:
1.如果没有创建临时表空间,则使用system表空间为临时表空间,易产生碎片
2.如果创建了临时表空间,则需指定否则还会使用system表空间为临时表空间
3.如果创建了默认临时表空间,无需指定,自动使用
undo:还原表空间. 用于存入重做日志文件.
数据库中可存在多个撤消表空间,但任一时间只有一个撤消表空间被激活.用于事务回滚,提供读一致性,支持Oracle Flashback的一些特性,如Flashback Query.
Bigfile 大文件表空间
Bigfile表空间仅由一个数据文件组成.单个数据文件最大可达128TB(表空间块大小为32KB).许多原用于维护数据文件的命令现在可用于表空间级别(Bigfile表空间)
二、索引
索引当然可以指定表空间,不指定就在数据库默认的表空间中
三、用户
建立用户时,用户名必须为大写,否则登录提示用户名、密码错误
Oracle中用户的权限有几种分配方法:
1)通过grant system privilege直接授权给用户。
2)通过grant role分配role给用户,然后通过给role分配权限来间接的给用户分配权限。
3)通过grant object privilege给用户分配特定对象的比如:select,update..等权限。
四、默认用户
SYS:change_on_install,只能以SYSDBA或SYSOPER登录
默认看不到其他用户建表,但可以用 用户名.表名 访问任何用户的表
SYSTEM:manager,只能以NORMAL登录
默认不能用 用户名.表名 访问任何用户的表
Sysdba用户: 可以改变字符集、创建删除数据库、登录之后用户是SYS(shutdown、startup)
Sysoper:用户不可改变字符集、不能创、删数据库、登陆之后用户是PUBLIC (shutdown、startup)
DBA用户:只有在启动数据库后才能执行各种管理工作。
注意:
建表时表名、列名+双引号,表示区分大小写
查询时,如果表名、列名含大小写,用的时候要加双引号