问几个oracle问题

碧水幽幽泉 2010-05-28 09:01:36
如题:
1.表空间或数据文件的移动对表中的数据有影响吗?
2.行连接和行迁移如何理解?
3.在进行数据文件添加时,带上参数resize和reuse是什么意思?
4.数据块和表的关系?
5.我们在修改系统级参数时,带上scope = spfile 或 scope=both 的用意是什么?

希望大家帮忙解答!谢谢!
...全文
85 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
碧水幽幽泉 2010-05-29
  • 打赏
  • 举报
回复
好了!问题已经解决!就此结贴!
碧水幽幽泉 2010-05-28
  • 打赏
  • 举报
回复
再问下:
使用resize是重新制定数据文件的大小后,原来数据文件上的信息都会被清空吗?
huangdh12 2010-05-28
  • 打赏
  • 举报
回复
resize可以重新分配空间,可以放大缩小,但是缩小后的空间应该要比原来使用的空间要大巴。。
碧水幽幽泉 2010-05-28
  • 打赏
  • 举报
回复
感谢两位高手的回答!
wh62592855 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qq646748739 的回复:]

再问下:
使用resize是重新制定数据文件的大小后,原来数据文件上的信息都会被清空吗?
[/Quote]不会
但是有一些限制

RESIZE Clause
This clause is valid only for bigfile tablespaces. It lets you increase or decrease the size of the single datafile to an absolute size. Use K, M, G, or T to specify the size in kilobytes, megabytes, gigabytes, or terabytes, respectively.

To change the size of a newly added datafile or tempfile in smallfile tablespaces, use the ALTER DATABASE ... autoextend_clause (see database_file_clauses ).
Dave 2010-05-28
  • 打赏
  • 举报
回复
5.我们在修改系统级参数时,带上scope = spfile 或 scope=both 的用意是什么?
-- 修改参数的作用范围。 scope 有三个值: spfile,memory,both.
有写参数可以用直接修改,有些参数需要重启数据库。 可以用下面语句进行查看:
SQL> select name,issys_modifiable from v$parameter where name='control_files';
如果返回false,就需要重启数据库


4.数据块和表的关系?
-- 表空间(tableSpace) 段(segment) 盘区(extent) 块(block) 关系
http://blog.csdn.net/tianlesoftware/archive/2009/12/13/4962476.aspx

scorpio_lei 2010-05-28
  • 打赏
  • 举报
回复
1、有的。表空间和数据文件是物理的概念。不能随意移动。应该是通过移动表中的数据来重新制定表空间。
2、数据时存储在block中的,如果表的记录过大,超出一个块的存储能力,就牵涉到行迁移和行连接。会影响数据库的性能
3、resize是重新制定数据文件的大小,reuse是指如果已经存在了这样一个文件名,那么直接覆盖掉原来的文件,如果原来的文件上有数据,也会清除
4、数据库的逻辑结构block->extent->segment->table/index ,可以看出块与表的关系
4、scope=spfile,是指修改的参数只修改到spfile中,当前实例不生效,下次启动才会生效。scope=both表示当前实例和spfile中都修改
xiaosheng2008 2010-05-28
  • 打赏
  • 举报
回复
是用create tablespace 语句创建表空间无论是否使用resize
语句执行完后,被reuse的数据文件中的数据都已经无法被数据库识别,
之前使用此数据文件的数据库也不能识别此数据文件
xiaosheng2008 2010-05-28
  • 打赏
  • 举报
回复
1.表空间是个逻辑概,物理上是数据文件,可以使用rename命令移动数据文件,
并且不会对数据文件中的数据造成影响
2.数据时存储在block中的,如果表的记录过大,超出一个块的存储能力,
就需要使用多个block存储同一个记录,
多个block之间用指针建立联系,这便是行链接
当block初始能存储一行数据,但是这行记录经过update后变大导致当前block空间不够,
就需要把数据迁移到其它block中去,这便是行迁移

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧