精华内容
下载资源
问答
  • 描述:时候一个用户使用了多个表空间,而在数据库翻新时可能因为表空间不存在而报错,因此在导入之前应该查一下表空间是否存在。 select distinct tablespace_name from dba_segments where owner='user_name'...

    描述:有时候一个用户使用了多个表空间,而在数据库翻新时有可能因为表空间不存在而报错,因此在导入之前应该查一下表空间是否存在。

    select distinct tablespace_name from dba_segments where owner='user_name';

     

    展开全文
  • oracle 查看表空间有哪些表 select * from dba_tables wheretablespace_name='表空间名',注意表空间名大小写敏感。 select table_name,tablespace_name from user_tables; from ...

    oracle 查看表空间有哪些表

    select * from dba_tables wheretablespace_name='表空间名',注意表空间名大小写敏感。
    select table_name,tablespace_name from user_tables;


    from http://www.cnblogs.com/xd502djj/archive/2010/11/21/1883467.html
    

    一、使用imp/exp。先导出源库,再创建新库把表空间创建好,然后再导入。(据说这样可以,前提是新的库里面不能有与源库相同名字的表空间。有待验证!) 

    二、使用脚本进行修改。据目前所了解,正长情况下需要修改表的空间表的索引的空间,如果涉及到BOLB字段的表,修改的方式又不一样了! 
    正常情况下的修改脚本: 
    1.修改表的空间 
    alter table TABLE_NAME move tablespace TABLESPACENAME 

    查询当前用户下的所有表 
    select 'alter table  '|| table_name ||'  move tablespace tablespacename;'  from user_all_tables; 

    2.修改表的索引的空间 
    alter index INDEX_NAME rebuild tablespace TABLESPACENAME 


    查询当前用户下的所有索引 
    select 'alter index '|| index_name ||' rebuild tablespace tablespacename;' from user_indexes; 

    可以使用脚本执行查询的结果,这样就可以批量处理! 

    不正常情况即含有BLOB字段的表: 
    参考下面的文档
     

    本人已经执行过,是可行的,但是不知道有没有漏掉数据库中其它对象。是否还存在有对象的表空间需要修改,需要进一步发现或有数据库高手帮忙讲解则不胜感激!目前的修改在项目中还没有出现问题! 

    在移植看注意研究了下Oracle ALTER TABLE MOVE 的语法: 

           ALTER TABLE table_name MOVE [ONLINE] tablespace_name; 
    通过上面的语句可以移植表到新表空间, 

    如果要移植LOB字典需要参考以下语法: 
    ALTER TABLE table_name LOB (lob_item) STORE AS [lob_segment] 
          ( 
            TABLESPACE tablespace_name 
                       (STORAGE.....) 
               ENABLE|DISABLE STORAGE IN ROW 
               CHUNK integer 
               PCTVERSION integer 
                RETENTION 
                FREEPOOLS integer 
                CACHE|NOCACHE|CACHE READS 
               INDEX lobindexname 

    (TABLESPACE tablesapce_name 

    ((STORAGE.....)) 


    .... 

    注解: 

    LOB (lob_item):表中的lob字段 
    STORE AS [lob_segment]:每个lob字段在表创建后系统都会自动单独创建一个段,可以通过这个参数手动指定一个段名 
       tablespace_name:LOB字段新的存储表空间 
    (STORAGE.....):指定tablespace_name的存储属性 
        ENABLE STORAGE IN ROW:如果设置了enable storage in row 那么oracle会自动将小于4000bytes的数据存储在行内, 这是ORACLE的默认值,对于大于4000字节的lob字段保存在lob段(同disable storage in row),在表段将保留36-84字节的控制信息。对于disable storage in row,Oracle将lob字段分开保存在lob段中,而仅仅在行位置保留20字节的指针。对于相当于disable storage in row的这部分(也就是单独保存在LOB段的这部分数据),UNDO仅仅是记录指针与相关lob索引改变,如果发生更新操作等DML操作,原始数据将保留在LOB段。 

        DISABLE STORAGE IN ROW:如果DISABLE这个属性,那么lob数据会在行外存储,行内只存储该lob值得指针,而且这个属性在表 
    创建后只能在MOVE表时才可以被改变 
        CHUNK:是一个很特别的属性,对一次LOB数据的操作(插入或更新),因该分配多少存储空间,指定的值最好是数据库块的倍数,而且指定的值不能大于表空间区间中NEXT的值, 要不然ORACLE会return一个错误,如果以前已经设置这个值了,那么在后期指定的值是不能被改变的。 

    storage as ( CHUNK bytes )表示对于disable storage in row的这部分,最小的LOB块的大小,必须是数据库块(DB_BLOCK_SIZE)的整数倍。一个chunk最多只保留一行LOB数据,也就是说,如果你设置了32K的CHUNK,但是如果LOB字段大小只有4K,也将占用32K的空间 

    storage as(cache|nocahce)表示是否允许lob段经过buffer cache并缓存。默认是nocache,表示直接读与直接写,不经过数据库的data buffer。所以,默认情况下,对于单独保存在LOB段的这部分数据,在发生物理读的时候,是直接读,如direct path read (lob) 

    storage as(nocache logging |nocache nologging),logging/nologging属性只对nocache方式生效,默认是logging,如果是nologging方式,对于 保存在行外的log部分,在update等DML操作时将不记录redo日志。 

        PCTVERSION integer、RETENTION:都是ORACLE用来管理LOB字段镜像数据的。在LOB 数据的更新过程中, 
    ORACLE没有用UNDO TABLESPACE空间,而是从LOB字段所在的表空间里划分一段空间来做镜像空间的, 
    这个空间的大小由PCTVERSION参数控制,默认值为10,代表划分表空间的10%作为镜像空间, 
    每个镜像空间的单元大小由CHUNK参数指定,pctversion可以使用在manual undo mode和automatic undo mode 环境中. 
    retention应用了automatic undo mode中的undo_retention通过时间来管理lob镜像空间. 
    pctversion和retention不能同时被指定.建议数据库在automatic undo mode下使用retention参数。 
    FREEPOOLS integer:给LOG segment指定free list.RAC环境下integer为实例的个数.单实例环境下为1.在automatic undo mode下oracle默认采用 
    FREEPOOLS来管理空闲块列表。除非我们在表的storage配置中指定了freelist groups参数. 
    CACHE|NOCACHE|CACHE READS:指定lob块是否在database buffer中缓存. 
    INDEX lobindexname (TABLESPACE tablesapce_name ((STORAGE.....):给lob列指定索引存储参数 
    举例: 
    SQL> show parameter db_create_file_dest 

    SQL> create tablespace test datafile size 100M autoextend off; 
    SQL> create table test(a varchar2(100), b clob, d blob) pctfree 10 tablespace test; 

    SQL> desc test 
    SQL> SELECT segment_name,tablespace_name,segment_type FROM dba_segments WHERE tablespace_name='TEST'; 

    我们发现每个LOB字段单独有一个LOGSEGMENT和LOBINDEX; 

    SQL> set linesize 200 
    col table_name format a5 
    col column_name format a5 
    SELECT b.table_name, 
    a.segment_name, 
    b.index_name, 
    a.segment_type, 
    b.column_name, 
    a.tablespace_name, 
    b.chunk, 
    b.cache, 
    b.freepools, 
    b.pctversion, 
    b.retention 
    FROM dba_segments a,dba_lobs b 
    WHERE a.segment_name = b.segment_name 
    AND a.tablespace_name = 'TEST' 


    SQL> 

    从上面的结果我们可以观察到LOB字段的各个属性. 
    下面我们对LOB字段move到另一个表空间 

    SQL> create tablespace lob_test datafile size 100M autoextend off; 

    SQL> ALTER TABLE TEST MOVE LOB(B) STORE AS TEST_B ( 
    TABLESPACE lob_test 
    DISABLE STORAGE IN ROW 
    CHUNK 16384 
    RETENTION 
    FREEPOOLS 1 
    NOCACHE); 
    SQL> ALTER TABLE TEST MOVE LOB(D) STORE AS TEST_D ( 
    TABLESPACE lob_test 
    DISABLE STORAGE IN ROW 
    CHUNK 16384 
    RETENTION 
    FREEPOOLS 1 
    NOCACHE); 
    SQL> SELECT segment_name,tablespace_name,segment_type FROM dba_segments WHERE tablespace_name='TEST'; 

    SQL> set linesize 200 
    col table_name format a5 
    col column_name format a5 
    SELECT b.table_name, 
    a.segment_name, 
    b.index_name, 
    a.segment_type, 
    b.column_name, 
    a.tablespace_name, 
    b.chunk, 
    b.cache, 
    b.freepools, 
    b.pctversion, 
    b.retention 
    FROM dba_segments a,dba_lobs b 
    WHERE a.segment_name = b.segment_name 
    AND a.tablespace_name = 'LOB_TEST' 
    /SQL> 

    在一些复杂情况下可能需要连表一起移植 
    alter table table_name move [tablespace_name] lob (lob_item) store as [lobsegmentname] (tablespace tablespace_name.....); 
    移植分区中lob 
    alter table table_name move partition [partition_name] lob (lob_item) store as [logsegmentname] (tablespace_name.....); 
    移植分区表 
    alter table table_name move partition [partition_name] tablespace_name lob (lob_item) store as [logsegmentname] (tablespace_name.....); 
    如果不需要修改lobsegmentname,可以同时移植多个列 
    alter table table_name move lob (lob_item1,lob_item2,lob_item3...) store as [lobsegmentname] (tablespace tablespace_name.....); 



        LOB段也可以利用move来重整数据,以下的语句会将表与lob字段move到指定的表空间: 

       alter table table_name move [tablespace tbs_name] 

    lob(lob_field1,lob_field2) store as (tablespace new_tbs_name); 

    如果LOB字段在分区表中,则增加partition关键字,如 

       alter table table_name move [partition partname] [tablespace tbs_name] 

    lob(field) store as (tablespace new_tbs_name); 



    在数据库中合理的存储LOB列,不仅可以提升性能,而且还可以有效的管理存储空间.

    展开全文
  • SELECT E.SEGMENT_TYPE AS SEGMENT_TYPE , E.SEGMENT_NAME AS SEGMENT_NAME , F.FILE_N...
    SELECT  E.SEGMENT_TYPE          AS SEGMENT_TYPE
          , E.SEGMENT_NAME          AS SEGMENT_NAME
          , F.FILE_NAME             AS FILE_NAME
          , SUM(E.BYTES)/1024/1024  AS SEGMENT_SIZE
    FROM DBA_EXTENTS E
    INNER JOIN DBA_DATA_FILES F ON E.FILE_ID= F.FILE_ID
    WHERE F.FILE_NAME =&FILE_NAME
    GROUP BY  E.SEGMENT_TYPE,E.SEGMENT_NAME,F.FILE_NAME
    ORDER BY 4 DESC;

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29108856/viewspace-2141712/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/29108856/viewspace-2141712/

    展开全文
  • select a.tablespace_name "表空间名称",100-round((nvl(b.bytes_free,0)/a.bytes_alloc)*100,2) "占用率(%)",round(a.bytes_alloc/1024/1024,2) "容量(M)",round(nvl(b.bytes_free,0)/1024/1024,2) "空闲(M)",round...

    select a.tablespace_name "表空间名称",

    100-round((nvl(b.bytes_free,0)/a.bytes_alloc)*100,2) "占用率(%)",

    round(a.bytes_alloc/1024/1024,2) "容量(M)",

    round(nvl(b.bytes_free,0)/1024/1024,2) "空闲(M)",

    round((a.bytes_alloc-nvl(b.bytes_free,0))/1024/1024,2) "使用(M)",

    Largest "最大扩展段(M)",

    to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') "采样时间"

    from (select f.tablespace_name,

    sum(f.bytes) bytes_alloc,

    sum(decode(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) maxbytes

    from dba_data_files f

    group by tablespace_name) a,

    (select f.tablespace_name,

    sum(f.bytes) bytes_free

    from dba_free_space f

    group by tablespace_name) b,

    (select round(max(ff.length)*16/1024,2) Largest,

    ts.name tablespace_name

    from sys.fet$ ff, sys.file$ tf,sys.ts$ ts

    where ts.ts#=ff.ts# and ff.file#=tf.relfile# and ts.ts#=tf.ts#

    group by ts.name, tf.blocks) c

    where a.tablespace_name = b.tablespace_name and a.tablespace_name = c.tablespace_name

    展开全文
  • -- 查询当前登录用户下所拥有的表空间select table_...--查询USERS表空间有哪些表select table_name,tablespace_name from user_tables where tablespace_name='USERS';--查询当T_SCORE_SCJ_TEMP表所在的表空间selec...
  • /* 查询表空间的名字和大小 */ select tablespace_name "表空间的名字", sum(bytes)/1024/1024 "表空间大小" from dba_data_files .../*查看表空间有哪些用户 */ select distinct a.owner from dba_segments a whe
  • 数据字典DBA_TABLESPACES存放表空间的信息,从该视图可以知道数据库中有哪些表空间。 SQL> desc dba_tablespaces; Name Null? Type ----------------------------------------- -------- ----------------...
  • 可以通过查询语句对系统表 user_tables 进行查询。例如要列出用户表中都存在那些表,它们所使用的表空间是那个,可以用下面的语句进行查询select table_name,tablespace_name from user_tables;
  • Oracle-表空间常用操作

    2020-03-29 01:07:00
    表空间的常用操作常用查询查看表空间查看数据文件查看dba表空间的数据文件查看表空间有哪些表修改表所在表空间常用操作创建表空间表空间新增数据文件删除表空间及文件删除表空间的某个数据文件 常用查询 查看...
  • CREATE TABLESPACE zyebp1(表空间名) LOGGING DATAFILE ‘E:\TORACLE\APP\ORADATA\MLDN\zyebp1.DBF’–表空间的路径 SIZE 2M AUTOEXTEND ON ...–查询有哪些表空间。 create user zyebp1 identified by z
  • oracle常用系统

    千次阅读 2012-03-29 22:00:00
    1.查看oracle有哪些表:(通过查询语句对系统表 user_tables 进行查询)   列出用户表中都存在那些表,它们所使用的表空间是那个,可以用下面的语句进行查询  select table_name,tablespace_name from ...
  • Oracle数据库相关名词都有哪些,比如数据库、数据库实例、表空间、用户这些名词。我本身也是用过一段时间的Oracle数据库但对一些名词的掌握始终不是很清楚,今天决定好好整理一下这些内容,有误的地方欢迎大家在评论...
  • select * from dba_users;...– 查询你 当前用户下,有哪些表 SELECT * FROM user_tables – 查询你 当前用户下, 可以访问哪些表 [也就是访问自己 和 其他用户的] SELECT * FROM all_tables – 查询当前数据库
  • Oracle常用查询语句

    2019-04-08 14:23:03
    1、查共有多少个表空间 ...2、查询所有用户对应有哪些表空间的权限 select a2.username,a1.privilege from dba_sys_privs a1 , user_role_privs a2 where a1.privilege = '表空间名' and a1.grantee =a2.granted_r...
  • 在上篇ORACLE查看表空间对象中,我介绍了如何查询一个表空间有那些数据库对象,那么我们是否可以查看某个数据文件包含那些数据库对象呢?如下所示 SELECT E.SEGMENT_TYPE AS SEGMENT_TYPE , E.SEGMENT_NAME AS ...
  • 2.1.1 查询数据库有哪些表空间 2.1.2 本文档假设数据库有这两个业务用户的表空间 2.2 普通表操作方法 2.2.1 新建普通表示例 2.2.2 普通表建立主建示例 2.2.3 普通表建立索引示例 2.3 分区表操作方法 2.3.1 新建...
  • oracle中drop一个表,让数据文件释放空间2015-05-27有时我们需要...1、查询有哪些表空间及相应数据文件col name format a50set linesize 200select a.name,b.name from v$tablespace a ,v$datafile b where a.TS#=b...
  • Oracle命令--查询语句

    2013-05-31 17:10:57
    当前存在哪些表空间 Select * from v$tablespace; 表空间多大 Select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name; 表空间还剩多少空闲空间 Select tablespace_name...
  • Oracle数据库管理

    2019-12-04 13:22:53
    @[Oracle数据库表空间创建] –查询所有表空间 select * from dba_tablespaces; –查询所有表空间 select * from v$tablespace; –查询某个用户默认表空间 ...–查询某个用户有哪些表权限 select *...
  • oracle常用知识点总结 (一)基础查询查询查询表空间信息查询角色信息查询用户信息查询表注释查询表字段和注释查询表字段和类型查询权限查询有那些存储过程查询用户对象查询用户和表...// 查看路径下有哪些表空间,表
  • oracle学习札记25

    2018-07-15 09:09:04
    1. 表空间和数据文件:1.11.22.2.1 创建表空间:2.2 查询数据库有哪些表空间:2.3 查询表空间拥有哪些数据文件:2.43.3.1声明:以上内容来源于网络上的公开视频,仅供个人学习使用。...
  • 移动表空间操作

    2008-12-30 09:58:00
    参照春暖花开同志的文章加上自己的实践A.oracle启动 1)查看那个数据文件所在的表空间还包含有哪些数据文件,执行以下查询: select file_name,status from dba_data_files where tablespace_name=SGCUSS;...
  • oracle入门教学

    2018-03-11 10:33:54
    4.oracle中常见权限有哪些 5.oracle中授权的命令 4.oracle中的数据类型 1.字符 5分钟 2.数值 3.日期 4.LOB 5.建表 1.建表语法 20分钟 2.删除 3.结构的修改 4.截断结构 5.中数据的操作(CUD),...
  • //查看有哪些表空间 select tablespace_name from dba_tablespaces; TEMP 临时表空间 UNDOTBS1 撤销表空间 dba_users 所有的用户都在里面 //查询用户默认表空间,用户一定要大写,否则查询不出来 select user

空空如也

空空如也

1 2 3 4 5 6
收藏数 101
精华内容 40
关键字:

查询oracle有哪些表空间