我在PostgreSQL
中使用WPF Application
。
有时候PostgreSQL
使CPU使用率高达100%。
我已经多次遇到此问题,但我不知道原因。
任务管理器中的快照图像位于下面
请注意,当此错误发生时,我杀死了我的应用程序exe,然后等待5分钟,但是任务管理器中的状态仍然没有改变。 CPU仍为100%
我看到了,它通常在Window Update之后发生。我必须重新启动计算机才能通过此操作。
我正在使用PostgreSQL 9.3
。
任何人都可以向我展示解决此问题的方法。
谢谢:)
答案 0 :(得分:1)
如果您仍然可以访问postgres,我要看的一件事是您是否有可能挂断任何查询
SELECT
pid,
now() - pg_stat_activity.xact_start AS duration,
query,
state
FROM pg_stat_activity
WHERE (now() - pg_stat_activity.query_start) > interval '4 minutes';
如果确实存在一个查询,该查询的生存期超过了应有的生存期,则您 可以这样删除:
SELECT pg_cancel_backend(<pid>);
这可能不是问题,但至少会减少可能性。
答案 1 :(得分:0)
在大多数情况下,如果您不使用数据库中的索引,就会出现问题,对经常使用的字段使用索引,特别是如果您使用“ order by”或聚合(例如总和和计数)