迁移后PostgreSQL性能下降

迁移后PostgreSQL性能下降,sql,postgresql,upgrade,database-performance,Sql,Postgresql,Upgrade,Database Performance,在PostgreSQL数据库服务器v9.3迁移到v9.6之后,我注意到整个系统的性能有所下降。配置参数与v9.3中的相同,考虑到以下参数: 共享缓冲区=10000MB 工时=64MB 维护工作量=1024MB 我还尝试监视一些资源,这就是结果 可用的免费共享buff/cache总使用量 内存:31G 385M 4.5G 10G 26G 19G 交换:3.0G 0B 3.0G 此外,当我运行一些查询时,服务器会在内部启动如下查询: select typname from pg_type wher

在PostgreSQL数据库服务器v9.3迁移到v9.6之后,我注意到整个系统的性能有所下降。配置参数与v9.3中的相同,考虑到以下参数:

  • 共享缓冲区=10000MB
  • 工时=64MB
  • 维护工作量=1024MB
  • 我还尝试监视一些资源,这就是结果

    可用的免费共享buff/cache总使用量
    内存:31G 385M 4.5G 10G 26G 19G
    交换:3.0G 0B 3.0G
    
    此外,当我运行一些查询时,服务器会在内部启动如下查询:

    select typname from pg_type where oid=1043
    set search path to public
    deallocate pdo_stmt_0000000e
    
    然后运行我的查询,但我担心迁移后会对性能造成一些影响。我有另一台9.6服务器,新安装的服务器没有迁移,它没有出现这个问题(响应时间)。它似乎在这些问题上花费了太多的时间

    关于如何解决这个问题,你有什么建议吗


    我使用了
    pg_-upgrade
    ,但是我注意到在这个过程中一些数据没有迁移到v9.6服务器。之后,我执行了转储/恢复过程,并进行了真空分析,您可以在慢速和快速系统上安装pg_stat_语句扩展,并比较两个系统中的顶级查询的性能。当时间/执行存在重大差异时,您可以检查执行计划(使用解释分析)

    有时,新功能在升级后会对性能产生重大影响。如果我记性好的话,并行顺序扫描已添加到9.6中。虽然这基本上是一个很好的特性,但在某些情况下,它的使用可能会导致查询速度减慢。这可能是将parallel_setup_cost(或其他planner参数)设置为不同值以避免效率低下的并行顺序扫描的原因


    稍后编辑:正如我在中看到的,并行查询执行在默认情况下没有被激活,因此这可能不是您的情况放缓的原因。不过,我认为,只有对顶级查询的性能及其计划进行分析,才能阐明这一问题。

    在我们的案例中,我们忽略了:

    分析
    数据库

    大迁移后,Postgres可能特别需要它


    例如,将django 2.2升级到3.2时,所有
    id
    字段类型都从
    AutoField
    更改为
    BigAutoField

    尝试
    EXPLAIN ANALYZE
    并在两台服务器之间进行比较。您看到的这些语句不是Postgres服务器的“内部”语句。这看起来更像是从应用程序(或应用程序使用的数据访问框架)发送的语句@a_horse_,带有_no_名称。这只是执行登录操作,以选择用户权限和其他stof,以便呈现主仪表板。它也在使用select over information_schema.coulmns表,我没有使用这些查询。您可能没有运行这些语句,但Postgres也没有运行它们。它一定是您的软件堆栈中的某个东西。有什么方法可以检查该选项吗?