重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
源表和目标表 直接哈希分区 64个
公司主营业务:成都网站设计、网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出蒲江县免费做网站回馈大家。
目标表在关联字段建本地分区索引 ,分区键和索引键一样
目标表的分区最好分到多个表空间上
写个存储过程按分区扫源表,操作目标表(更新或插入)
开多个session调存储过程传分区为参数
可以参考这个,求出总空间,已用空间了
select total.tablespace_name,round(total.MB,2) as Total_MB,
round(total.MB-free.MB, 2) as Used_MB
from (select tablespace_name, sum(bytes)/1024/1024 as MB from dba_free_space group by tablespace_name) free,
(select tablespace_name, sum(bytes)/1024/1024 as MB from dba_data_files group by tablespace_name) total
where free.tablespace_name=total.tablespace_name
看创建时间吧,可以用一个伪劣来看,ORA_ROWSCN,这个代表记录的变动
select ORA_ROWSCN,t.* from table t
可以用SCN_TO_TIMESTAMP(ora_rowscn)这个函数来看到ora_rowscn所代表的变动点,也就是时间
一、创建一个表
create table A
(
TABLE_NAME VARCHAR2(200),
COUNT_NUM NUMBER
)
二、创建一个存储过程
create or replace procedure tj_data as
-- 当前存储过程用到的变量
v_tableName VARCHAR2(100);
v_sql varchar2(200);
v_count integer;
-- 获取当前数据库中的所有表
CURSOR TABLE_LOOP IS SELECT Table_name FROM User_tables;
begin
-- 打开游标
delete from A;
OPEN TABLE_LOOP;
LOOP
FETCH TABLE_LOOP INTO v_tableName;
EXIT WHEN TABLE_LOOP %NOTFOUND;
v_sql:= 'select count(1) from '||v_tableName;
execute immediate v_sql into v_count;
insert into a values (v_tableName,v_count);
END LOOP;
CLOSE TABLE_LOOP;
end;
三、查出表数据不同的信息
select * from (
select t.table_name,t.num_rows from dba_tab_statistics t where t.owner='表空间' and table_name !='A' and t.table_name in (
SELECT Table_name FROM User_tables)) B,A where a.table_name=b.table_name
根据数据库表中字段条件进行排序查询order by,设置rownum可以只查询出相应条数的数据
1、查看表空间的大小,首先我们要登录到oracle数据库,我们要使用管理员的身份登录,因为管理员的权限要相对的大一些。
2、登录到数据库之后,我们要在侧边栏找到dataspace这个文件夹,这个文件夹下存放的就是我们管理员可以管理的所有的表空间的名称。
3、根据dataspace文件夹下的内容名称,选择我们想要看的表空间,使用右键点击的方式,选择右键显示中的属性按钮。
4、进入到属性表之后,我们可以看到当前表空间的许多属性,其中有个属性叫做segment space management的选项,当这个选项的值为auto的时候,表示当前表空间是可以自增长的,否则就是固定大小的。