如题:
1.表空间或数据文件的移动对表中的数据有影响吗?
2.行连接和行迁移如何理解?
3.在进行数据文件添加时,带上参数resize和reuse是什么意思?
4.数据块和表的关系?
5.我们在修改系统级参数时,带上scope = spfile 或 scope=both 的用意是什么?希望大家帮忙解答!谢谢!
1.表空间或数据文件的移动对表中的数据有影响吗?
2.行连接和行迁移如何理解?
3.在进行数据文件添加时,带上参数resize和reuse是什么意思?
4.数据块和表的关系?
5.我们在修改系统级参数时,带上scope = spfile 或 scope=both 的用意是什么?希望大家帮忙解答!谢谢!
2、数据时存储在block中的,如果表的记录过大,超出一个块的存储能力,就牵涉到行迁移和行连接。会影响数据库的性能
3、resize是重新制定数据文件的大小,reuse是指如果已经存在了这样一个文件名,那么直接覆盖掉原来的文件,如果原来的文件上有数据,也会清除
4、数据库的逻辑结构block->extent->segment->table/index ,可以看出块与表的关系
4、scope=spfile,是指修改的参数只修改到spfile中,当前实例不生效,下次启动才会生效。scope=both表示当前实例和spfile中都修改
-- 修改参数的作用范围。 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
使用resize是重新制定数据文件的大小后,原来数据文件上的信息都会被清空吗?
并且不会对数据文件中的数据造成影响
2.数据时存储在block中的,如果表的记录过大,超出一个块的存储能力,
就需要使用多个block存储同一个记录,
多个block之间用指针建立联系,这便是行链接
当block初始能存储一行数据,但是这行记录经过update后变大导致当前block空间不够,
就需要把数据迁移到其它block中去,这便是行迁移
语句执行完后,被reuse的数据文件中的数据都已经无法被数据库识别,
之前使用此数据文件的数据库也不能识别此数据文件
但是有一些限制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 ).