gpt4 book ai didi

sql - 在Oracle中Delete语句非常慢

转载 作者:行者123 更新时间:2023-12-04 10:27:59 24 4
gpt4 key购买 nike

我有一个约有10万条记录的表,我想删除一些行,问题是DELETE语句运行非常缓慢-它在30分钟内未完成。但是select语句在1秒内返回。SELECT语句如下:

select * from daily_au_by_service_summary 
where summary_ts >= to_date('09-04-2012','dd-mm-yyyy')
order by summary_ts desc;
DELETE语句如下:
delete from daily_au_by_service_summary 
where summary_ts > to_date('09-04-2012','dd-mm-yyyy');
该表的唯一索引位于 summary_ts
可能是什么原因?
编辑:我杀死了锁定表的 session 后,问题已经解决,谢谢大家的帮助。
SESSION_ID ORACLE_USERNAME                OS_USER_NAME                   OBJECT OWNER                   OBJECT_NAME                                                                                                                      OBJECT_TYPE         LOCKED_MODE
---------- ------------------------------ ------------------------------ ------------------------------ -------------------------------------------------------------------------------------------------------------------------------- ------------------- -----------
213 T03RPT elou T03RPT DAILY_AU_BY_SERVICE_SUMMARY TABLE 3
203 T03RPT elou T03RPT DAILY_AU_BY_SERVICE_SUMMARY TABLE 3
202 T03RPT elou T03RPT DAILY_AU_BY_SERVICE_SUMMARY TABLE 3
190 T03RPT elou T03RPT DAILY_AU_BY_SERVICE_SUMMARY TABLE 3
189 T03RPT elou T03RPT DAILY_AU_BY_SERVICE_SUMMARY TABLE 3
188 T03RPT elou T03RPT DAILY_AU_BY_SERVICE_SUMMARY TABLE 3
187 T03RPT elou T03RPT DAILY_AU_BY_SERVICE_SUMMARY

最佳答案

原因可能有很多:

  • 服务器负载(不太可能因为SELECT快速)
  • 触发器(请参见how to list them for a table)。
  • 外键(List of foreign keys and the tables they reference)
  • 每行中有很多数据(LOB,很多列)。
  • 有人在您要删除的表(或整个表)中锁定了行。 See this blog post how to list locksThis discussion可能也有帮助。

  • 如果外键是问题,通常的解决方案是在外列上添加索引:对于每个删除操作,Oracle需要检查这是否违反外键关系。

    关于sql - 在Oracle中Delete语句非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10101484/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com