日期:2014-05-16  浏览次数:20962 次

百万条数据的表。插入数据的优化问题。
我们这儿有个表现在数据有两百万条左右 。
现在每天执行作业,插入6万左右的数据。
结果这作业,一执行就执行10几个小时。
我感觉。百万数据的表也不是很大啊。我们的SQL2005的服务器。很多表,都是千万以上数据的。
百万数据。读取,新建也就几十秒的事儿。
怎么ORACLE就这么慢呢。
一个6万左右的数据。还会卡死。有大神能帮忙给点儿意见吗?
查询速度还OK。不慢。只是插入的时候特慢。
------解决方案--------------------
引用:
没有子查询。。。
就是一条直传递,NOLOGING的语句。


你要确定你的job里面只有插入操作么?
如果确定是插入操作的问题,那么就把插入的代码复制出来,然后在外面执行一次看看插入的时间是否真的很慢!确定是插入慢了那么就插入一条试试要多长的时间。然后在用forall语句插入几十万条试试要多长时间。
------解决方案--------------------
引用:
这么一条删除语句,都执行了15分钟。
delete sales_pro  where sdate=to_date('2014-01-28','yyyy-mm-dd') ;

删除数据条件涉及的数量多吗?走索引了吗?可以尝试用ROWID方式删除