数据库大量查询和删除速度的讨论 1.对于一个要经常大量查询的表怎么做可以让它能比较快的查出自己所要的数据?2.大型的表(200w),如果要删除/修改其中的100w,怎么做才会不影响数据库的正常工作? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.对于一个要经常大量查询的表怎么做可以让它能比较快的查出自己所要的数据?根据实际的sql语句,创建相应的索引如果查询结果占总数据量的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; 1.对于一个要经常大量查询的表怎么做可以让它能比较快的查出自己所要的数据?大量查询,单单建立一个索引好象是个好的办法,你看这个是一个方法不,从表的创建开始考虑:主表建立在多个表空间的基础上,即. 将表分割,数据就同时分割了,这样查询就可以减少I/O进程。2.大型的表(200w),如果要删除/修改其中的100w,怎么做才会不影响数据库的正常工作?“ truncate table old_table”这样做不会影响工作的正常运行吗??不是个好办法吧! 对于问题1,楼主的想法和分区表的思路相似,但是前提是你说的那个经常查询的表是个数据量很大的表,否则对于小表采取分区技术反而会使性能下降。可以参考 Oracle读书笔记-分区表http://www.meno.com.cn/IT/oracle/ziliao/200501/312.html对于问题2,想对大型的表进行操作,同时不对数据库影响——不明白楼主什么意思,是觉得遗漏说的truncate后在insert的方式降低了数据库的运行效率,还是说影响了日常业务系统的数据连贯性,导致当时无法运转了?200W不是很大的,所以如果白天一直应用,考虑夜间进行1楼说的操作。 至于对200W的表要进行一般数据的update,还不想影响这张表的访问,没有什么办法吧?或者你备份后,对备份的表进行100W次以上的update? 1. 除了建索引,分析表,还要分析索引,索引列,加大各种_area_size,加上并行等等,实在太多的因素有影响. 其实如果这个表如果增加修改等操作很少的话,我还是建议你可以建物化视图来解决,针对不同的条件可以建立几个MV2. 你要删除/修改一般的数据,不影响数据库的正常工作是不可能的. 数据库怎么做求写 问大家出现的严重错误是什么问题? 我写的这个语句有问题,可是找不出来,希望大家帮我 看看~~ 查看数据库联机重做日志的生成量 急:使用sqlloader导入,造成服务器内存分配的问题。 统计的问题: 请教:关于用户登录入服务器数据库 oracle 数据库的灾难恢复 ★★★★★向各位大虾求救:如何查询得到哪些表有哪些相同字段.!!!!!!!!★★★★ 有没有人用过oracle portal,一起交流交流 一个表,有一个自增的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. 你要删除/修改一般的数据,不影响数据库的正常工作是不可能的.