oracle表空间数据库
⑴ 在Oracle数据库中如何查询某一个表空间下的某张表里面的数据;怎么查询某个表空间下的所有表的信息
查看当前用户的缺省表空间
select username,default_tablespace from user_users
查看当前用户的角色
select * from user_role_privs
查看当前用户的系统权限和表级权限
select * from user_sys_privs
select * from user_tab_privs
查看用户下所有的表
select * from user_tables
⑵ oracle 怎么查看一个数据库中有几个表空间
SELECTt.tablespace_name,
round(SUM(bytes/(1024*1024)),0)ts_size
FROMdba_tablespacest,dba_data_filesd
WHEREt.tablespace_name=d.tablespace_name
GROUPBYt.tablespace_name;
⑶ 怎么查看oracle 表空间属于哪个数据库
oracle数据只能创建一个数据库实例
在一个数据库下可以有多个表空间
在一个数据库下可以有多个用户,每个用户可使用不同的表空间
用户下,可以建立数据库表,表也可以在不同的表空间
查询数据库中的表空间
#查数据文件select*fromv$dbfile;
#所有表空间select*fromv$tablespace;
#表空间的数据文件selectfile_name,tablespace_namefromdba_data_files;
查询/修改用户默认表空间
selectusername,default_tablespace,temporary_tablespacefromuser_users;
alteruser用户名defaulttablespace新表空间;
查看表所在的表空间
selecttable_name,tablespace_namefromall_tables/dba_tables/user_tables;
⑷ 在Oracle数据库中表空间和数据库什么区别
MS sql用户登录就能创建数据库的意思是她本身就有一个数据库,你连的是默认数据库。oracle安装的时候也会问你是否在安装数据库软件的时候创建一个实例,如果你同意创建实例那么你连接进来的时候也会有个默认的数据库给你去创建表之类的东西。所以根本上这些都是差不多,都是因为他们里面有实例在运行了。
再说说oracle建表的顺序:首先肯定有数据库实例啦,就是我们常说的数据库;之后创建表空间;表空间建好了就创建用户注意设置用户的表空间,赋权限;之后就用这个用户创建表,这些表就好到这个用户的默认表空间下了。
⑸ oracle 中 表空间和数据库是什么关系
表空间作为逻辑存储概念,包含物理的数据文件来构成,
数据库作为存储数据的地方,必然要包含存储,就是这样的关系了。
⑹ oracle数据库建表和表空间设计
这个数据的多少和表空间的选择和你的数据量多少是没有太大关系的,需要统计你的数据量的大小。如果数据量很大,像你说的3*100*2000万*1.5k需要估算一下他是有多少G?这样才好设计表空间的分配。从10g开始有表空间支持一个大的数据文件,由多个文件组成肯定没有一个文件好管理,但是如果出问题了一个大数据文件损坏肯定造成的损失很大。这就是易维护性和安全性的取舍。不知道你们磁盘阵列是怎么做的如果没有raid1,数据又很重要的话,也许添加多个数据文件。但是多个数据文件的添加,每个数据文件的大小又受到OS的影响,这个和DB_block_size的大小又有关系,具体算法我不细讲,结论是单个数据文件最多32G。所以这个时候就看你的数据量大小了,你只说量,但是也许有lob字段之类的我无法估算大小,所以这个你自己算一下,如果需要的数据文件过多的话,你想方便维护也是可以使用大数据文件。sql如下:
SQL> create bigfile tablespace giapblob ----------------表空间名字
2 datafile 'H:\ypx\pic02.dbf' ----------------数据文件名字路径
3 size 204800M ----------------200G的bigfile
4 autoextend on next 1024M -----------------扩展自动1G
5 maxsize unlimited -----------------不限最大
6 extent management local autoallocate; ----------------自动管理分配区间
其中上述只是从管理方便的角度考虑一个表空间的处理方法,一般单个表空间最大限制是1022个数据文件*4M数据块*DB_BLOCK_SIZE=32TB。如果数据量过大,必须采用多表空间。
另外也要考虑需求中的使用性能,如果表数据量过大,比如你们每天2000万,那有没有历史表数据?这个如果是OLAP还好说,OLTP可能要做分区表等等一系列的性能考虑,情况不同选择不同。
⑺ 如何查看oracle数据库中的表空间
oracle 数据库里查看表空间使用状况;
oracle表空间的事情状况要经常查看,一般空闲比例过低的时候就应该考虑增大表看空间了。查看方法如下SQL:
方法一:
select dbf.tablespace_name,
dbf.totalspace "总量(M)",
dbf.totalblocks as 总块数,
dfs.freespace "剩余总量(M)",
dfs.freeblocks "剩余块数",
(dfs.freespace / dbf.totalspace) * 100 "空闲比例"
from (select t.tablespace_name,
sum(t.bytes) / 1024 / 1024 totalspace,
sum(t.blocks) totalblocks
from dba_data_files t
group by t.tablespace_name) dbf,
(select tt.tablespace_name,
sum(tt.bytes) / 1024 / 1024 freespace,
sum(tt.blocks) freeblocks
from dba_free_space tt
group by tt.tablespace_name) dfs
where trim(dbf.tablespace_name) = trim(dfs.tablespace_name)
方法二:
SELECT Total.name "Tablespace Name",
Free_space, (total_space-Free_space) Used_space, total_space
FROM
(select tablespace_name, sum(bytes/1024/1024) Free_Space
from sys.dba_free_space
group by tablespace_name
) Free,
(select b.name, sum(bytes/1024/1024) TOTAL_SPACE
from sys.v_$datafile a, sys.v_$tablespace B
where a.ts# = b.ts#
group by b.name
) Total
WHERE Free.Tablespace_name = Total.name
当发现有的表空间不够的错误时,处理如下:
1:找出该表空间对应的数据文件及路径
select * from dba_data_files t
where t.tablespace_name = 'ARD'
2:增大数据文件
alter database datafile '全路径的数据文件名称' resize ***M
3:增加数据文件
alter tablespace 表空间名称
add datafile '全路径的数据文件名称' ***M
注解:表空间尽量让free百分比保持在10%以上,如果低于10%就增加datafile或者resizedatafile,一般数据文件不要超过2G
⑻ 在Oracle中数据库、表空间、表之间的关系
在oracle中,表空间是存储概念上的,建立表空间需要有对应的数据文件,数据文件建立好之后直接会把一定的磁盘空间分配给它,这样可以对数据库的存储空间进行有效的管理。然后在建表的时候指定对应的表空间,该表的数据就会都存在表空间对应的数据文件上,和Mysql那种每个表一个文件的方式比起来,存储的可控性更强。
oracle和mysql不同,不存在mysql中那种数据库的概念,而是实例的概念,当然,也可以在实例里建立不同的user来区分,每个user对应的表都是相对独立的,比如两个user下可以分别建同名的表,但又可以通过授权来交互使用。
建数据库是在安装oracle之后执行dbca建立实例。
建表空间语句是 CREATE TABLESPACE TBS_DEFAULT DATAFILE
'/app/oradata/sys_tbs/tbs_default.dbf' size 500M
LOGGING
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
/
这里主要是需要指定对应的datafile。
建表基本都一样,例如
create table (col_1 number(8),col_2 char(2),col_3 date)
tablespace tbs_default
/
数据库就不要删除了,这方面你看下关于user操作的语句就可以了。
drop tablespace tbs_name including contents and datafiles;--删除表空间及数据文件
drop table tab_name purge; -- 删除表。
⑼ 怎样查询oracle数据库中所有的表空间
1、首先需要找到oracle安装目录,打开控制台管理。
⑽ oracle 数据库 表空间
创建表用户
并指定表空间(test123_TEMP为一个临时表空间名)
create
user
test000
identified
by
test000
default
tablespace
test123
temporary
tablespace
test123_TEMP;
给用户付权限
GRANT
CONNECT,RESOURCE,DBA
TO
ODJUKE;