DarkLeafyGreen Asked: 2024-01-26 16:00:09 +0800 CST2024-01-26 16:00:09 +0800 CST 2024-01-26 16:00:09 +0800 CST 为什么在 Azure PostgreSQL 中多次调用 DISCARD ALL? 772 我正在调试 Azure PostgreSQL 灵活服务器的高 CPU 负载问题。在 CPU 使用率激增的时间窗口中,我看到大量实用程序查询。处理它们的时间并不长,但数量却有数十万个。 查询都是DISCARD ALL查询。这些查询的目的是什么?出现这么多查询是否正常? postgresql 1 个回答 Voted Best Answer bobflux 2024-01-26T18:18:53+08:002024-01-26T18:18:53+08:00 DISCARD将您的数据库连接重置为“出厂默认值”。 我猜你正在使用某种形式的连接池。这是一件好事,因为打开连接会消耗大量 CPU。但是,在重用连接之前,必须将其重置,这就是 DISCARD 的作用。 大量的 DISCARD 可能只是大量客户端从池中获取连接来执行某些工作的结果。因此,这是您问题的症状,而不是原因。 如果您看到与其他查询相比有大量的 DISCARD,那么...也许您有一些可以循环打开和关闭连接的东西,或者每次想要执行查询时都打开一个连接而不是保持打开状态。
DISCARD将您的数据库连接重置为“出厂默认值”。
我猜你正在使用某种形式的连接池。这是一件好事,因为打开连接会消耗大量 CPU。但是,在重用连接之前,必须将其重置,这就是 DISCARD 的作用。
大量的 DISCARD 可能只是大量客户端从池中获取连接来执行某些工作的结果。因此,这是您问题的症状,而不是原因。
如果您看到与其他查询相比有大量的 DISCARD,那么...也许您有一些可以循环打开和关闭连接的东西,或者每次想要执行查询时都打开一个连接而不是保持打开状态。