我现在有一个视图,根据条件检索到大约1000万左右的数据,我现在要将这写数据插入到一个表中,大约1年插入一次。想知道用什么方法最快,插入的表不能删除。
请大家帮忙
请大家帮忙
解决方案 »
- PRO*C+MFC写的程序,发布时需要打包ORACLE客户端吗?
- 怎么在oracle10g查询所有包含某字段的表名
- SQL脚本翻译
- oracle 怎么给整个Sql作为一个别名 然后和其他的表left join
- 谁有CNOUG邀请注册码
- ORACLE 统计每一列的和
- 学习oracle管理该学哪方面的东西,能推荐基本好书吗
- O9i的JDBC不支持批处理吗?
- 怎样用语句删/建主键?
- imp导入提示IMP-00058: 遇到 ORACLE 错误 12154 ORA-12154: TNS: 无法解析指定的连接标识符 IMP-00000: 未成功
- 报表统计的问题,望高手们不吝指教
- 如何把sql server2000数据库导入到 oracle数据库里
http://user.qzone.qq.com/251097186/blog/12499880001. 采用高速的存储设备,提高读写能力,如:EMC 和NetApp,2. 假如tab1表中的没有数据的话
DROP TABLE TAB1;
CREATE TABLE TAB1 AS SELECT * FROM TAB2;
然后在创建索引 3. 用Hint 提示减少操作时间
INSERT /*+Append*/ INTO tab1
SELECT * FROM tab2;4. 采用不写日志及使用Hint提示减少数据操作的时间。建议方案是先修改表为不写日志:
sql> alter table table_name NOLOGGING;
插入数据:
INSERT /*+Append*/ INTO tab1
SELECT * FROM tab2;插入完数据后,再修改表写日志:
sql> alter table table_name LOGGING; 这里的区别就在于如果插入数据的同时又写日志,尤其是大数据量的insert操作,需要耗费较长的时间。5. 用EXP/IMP 处理大量数据
(1)给当前的两个表分别改名
alter table tab1 rename to tab11;
alter table tab2 rename to tab1;
(2)导出改名前的tab2
exp user/pwd@... file=... log=... tables=(tab1)
(3)把名字改回来
alter table tab1 rename to tab2;
alter table tab11 rename to tab1;
(4)导入数据
imp user/pwd@... file=... log=... fromuser=user touser=user tables=(tab1)