oracle中truncate和索引的问题 索引truncate效率 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1,我所了解的索引一般是建立在不常变更的表上面的,但是我们的表每天都会被truncate,这样是不是会影响效率?truncate有索引和没索引的表速度一样么?没有影响,truncate 有索引和无索引的速度是一样的,因为你的数据量比较大,建议你在重新写入数据后,收集下这几张表的统计信息。2,虽然我们的数据不是用insert到数据库的,导入数据会因为表有索引会对导入速度有影响么?顺便问下,如果insert到数据库,因为存在索引,是不是效率很低?有索引导入时,速度肯定要比没有索引要慢,具体慢多少取决索引的个数和索引关联列的个数。3,有没有什么其他好办法来提高效率。1.insert 时 可以加一个 /*+ append */选项2.1000W 的数据,建议分批导入,比如分成 100批次,每次提交10W 行。3.可以考虑,在insert 之前,把索引先干掉,再 append 到表中,导完后,再增加索引,再收集统计信息。 采用不写日志及使用Hint提示减少数据操作的时间。1)先修改表为不写日志sql> alter table table_name NOLOGGING;2)插入数据:INSERT /*+Append*/ INTO tab1 SELECT * FROM tab2;3)插入完数据后,再修改表写日志: sql> alter table table_name LOGGING; 楼上说的都挺好的,可以测试一下另外楼主的需求,也可以考虑通过dblink 建物化视图的方式~ 您说的第二条的方法 是指我从原始表插入结果表的时候做么?我之前查到使用 /*+Append*/ 会使数据库很臃肿?这样做好吗? oracle 安装问题 触发器自治事务问题 sql语句问题,求帮忙! oracle 10 g 出现table or view does not exist Oracle9i安装出错,求助 求救:ORACLE与PCANYWHERE问题:急急急!!! 简单问题,如何将数据库文件重定向? 请教关于Oracle Text全文检索的问题 sqlldr遇到中文timestamp类型数据该如何导入 SQL查询问题刚才写的不详细现在重写 跨平台数据库迁移问题 oracle存储emoji表情乱码的问题。
没有影响,truncate 有索引和无索引的速度是一样的,因为你的数据量比较大,建议你在重新写入数据后,收集下这几张表的统计信息。2,虽然我们的数据不是用insert到数据库的,导入数据会因为表有索引会对导入速度有影响么?顺便问下,如果insert到数据库,因为存在索引,是不是效率很低?
有索引导入时,速度肯定要比没有索引要慢,具体慢多少取决索引的个数和索引关联列的个数。3,有没有什么其他好办法来提高效率。
1.insert 时 可以加一个 /*+ append */选项
2.1000W 的数据,建议分批导入,比如分成 100批次,每次提交10W 行。
3.可以考虑,在insert 之前,把索引先干掉,再 append 到表中,导完后,再增加索引,再收集统计信息。
1)先修改表为不写日志
sql> alter table table_name NOLOGGING;
2)插入数据:
INSERT /*+Append*/ INTO tab1
SELECT * FROM tab2;
3)插入完数据后,再修改表写日志:
sql> alter table table_name LOGGING;
另外楼主的需求,也可以考虑通过dblink 建物化视图的方式~