1.对于一个要经常大量查询的表怎么做可以让它能比较快的查出自己所要的数据?
2.大型的表(200w),如果要删除/修改其中的100w,怎么做才会不影响数据库的正常工作?
2.大型的表(200w),如果要删除/修改其中的100w,怎么做才会不影响数据库的正常工作?
解决方案 »
- 望高手帮忙?如果能解决该问题本人愿拿1000RMB酬谢,决不食言!!!!!!!!
- 求《Oracle 10g数据库管理、应用与开发标准教程》教程里的school.dmp和vendition.dmp文件
- SQL Server 改为ORACLE的语法
- 如何优化oracle的sql语句
- 能不能用PL/SQL写一个存储过程将本用户下的数据备份成一个文件?怎么能做到!
- asp连接oracle92的问题,谢谢,顶者有分
- 求sql语句、?
- 问一个10进制转16进制的问题
- 是否可以同一个job调用多个过程
- 关于oracle中connectby和rownum的问题
- 一个表,有一个自增的ID,我想每次insert into这个表的时候得到产生记录的ID,请问如何做?
- 如何把数值格式转换为金额式样的字符问题。
如果查询结果占总数据量的50%以上,那就屏蔽索引
定期分析表,为oracle优化器提供明确的统计信息2.大型的表(200w),如果要删除/修改其中的100w,怎么做才会不影响数据库的正常工作?最好把需要保留的数据 create table new_table as select * from old_table where ..
然后 truncate table old_table;
然后 insert /*+append*/ into old_table select * from new_table;
commit;
大量查询,单单建立一个索引好象是个好的办法,
你看这个是一个方法不,从表的创建开始考虑:
主表建立在多个表空间的基础上,即. 将表分割,数据就同时分割了,这样查询就可以减少I/O进程。
2.大型的表(200w),如果要删除/修改其中的100w,怎么做才会不影响数据库的正常工作?“ truncate table old_table”
这样做不会影响工作的正常运行吗??
不是个好办法吧!
http://www.meno.com.cn/IT/oracle/ziliao/200501/312.html对于问题2,想对大型的表进行操作,同时不对数据库影响——不明白楼主什么意思,是觉得遗漏说的truncate后在insert的方式降低了数据库的运行效率,还是说影响了日常业务系统的数据连贯性,导致当时无法运转了?200W不是很大的,所以如果白天一直应用,考虑夜间进行1楼说的操作。 至于对200W的表要进行一般数据的update,还不想影响这张表的访问,没有什么办法吧?或者你备份后,对备份的表进行100W次以上的update?
其实如果这个表如果增加修改等操作很少的话,我还是建议你可以建物化视图来解决,针对不同的条件可以建立几个MV2. 你要删除/修改一般的数据,不影响数据库的正常工作是不可能的.