C# PostgreSQL使CPU使用率达到100%?
我正在我的C# PostgreSQL使CPU使用率达到100%?,c#,wpf,cpu-usage,postgresql-9.3,C#,Wpf,Cpu Usage,Postgresql 9.3,我正在我的WPF应用程序中使用PostgreSQL 有时,PostgreSQL使CPU使用率达到100% 我已经多次遇到这个问题,但我不知道原因 下面是任务管理器中的快照映像 注意,当这个错误发生时,我会杀死我的应用程序exe,并在5分钟内等待,但任务管理器中的状态仍然没有改变。CPU仍然是100% 我知道,这通常发生在窗口更新之后。我必须重新启动计算机才能通过这个 我使用的是PostgreSQL 9.3 任何人都可以告诉我解决这个问题的方法 谢谢:)如果您仍然可以访问postgres,我想看
WPF应用程序中使用PostgreSQL
有时,PostgreSQL
使CPU使用率达到100%
我已经多次遇到这个问题,但我不知道原因
下面是任务管理器中的快照映像
注意,当这个错误发生时,我会杀死我的应用程序exe,并在5分钟内等待,但任务管理器中的状态仍然没有改变。CPU仍然是100%
我知道,这通常发生在窗口更新之后。我必须重新启动计算机才能通过这个
我使用的是PostgreSQL 9.3
任何人都可以告诉我解决这个问题的方法
谢谢:)如果您仍然可以访问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>);
选择pg_cancel_backend();
这可能不是问题,但至少会减少可能性的数量 如果你仍然能够访问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>);
选择pg_cancel_backend();
这可能不是问题,但至少会减少可能性的数量 如果不在数据库中使用索引,问题出现的大部分时间,请对经常使用的字段使用索引,特别是如果使用“排序依据”或聚合(如总和和计数)如果不在数据库中使用索引,问题出现的大部分时间,对经常使用的字段使用索引,特别是如果您使用“排序依据”或聚合(如总和和计数)发生这种情况时是否运行查询?是的,我的应用程序经常运行查询,因此我认为此时也不例外。发生这种情况时是否运行查询?是的,我的应用程序经常运行查询,所以我认为现在也不例外。谢谢,我会尽力让你知道结果:)谢谢,我会尽力让你知道结果:)