gpt4 book ai didi

postgresql - 对插入语句进行故障排除,失败但没有错误

转载 作者:行者123 更新时间:2023-11-29 14:33:37 24 4
gpt4 key购买 nike

我正在尝试在 postgres 数据库中执行一个非常简单的插入语句。它不起作用,但也没有出错,所以我不知道如何排除故障。这是声明:

INSERT INTO my_table (col1, col2) select col1,col2 FROM my_table_temp;

临时表中有大约 200m 个条目,my_table 中有 50m 个条目。临时表没有索引或约束,但 my_table 中的两列都有 btree 索引,并且 col1 有外键约束。

我运行了大约 20 天的第一个查询。上次我尝试了大约 50m 的类似插入,花了 3 天,所以我预计它需要一段时间,但不是一个月。此外, my_table 不会变长。相隔 1 天查询,以下产生相同的确切数字。

从 my_table 中选择 count(*);

所以它根本没有插入。但它也没有出错。查看系统资源使用情况,它似乎根本没有做任何事情,该进程没有占用资源。

查看其他正在运行的查询,我有权查看的任何其他内容都没有触及任何一个表,而且我是唯一使用它们的人。

我不确定如何排除故障,因为没有错误。它只是什么也没做。任何关于可能出错的事情或需要检查的事情的想法都会非常有帮助。

最佳答案

为了将来遇到这个问题的任何人:

经过长时间的讨论(参见上面评论中的 linked discussion),问题原来与 psycopg2 在内存中缓冲查询有关。

另一个有用的注意事项:插入带有索引的表很慢,因此它可以帮助在批量加载之前删除它们,然后再添加它们。

关于postgresql - 对插入语句进行故障排除,失败但没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48192185/

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