0

我想在我的应用程序运行期间检查有关 PostgreSQL 性能的一些信息。

我的应用程序在循环中对 20 个表执行以下操作:

  1. 截断表。

  2. 删除表上的约束

  3. 删除表上的索引

  4. insert into local_table select * from remote_oracle_table

    最近我在这部分遇到了一个错误

    SQLERRM = 无法扩展文件“base/16400/124810.23”:在块 3092001 处仅写入了 8192 个字节中的 4096 个

  5. 在表上创建约束

  6. 在表上创建索引。

该操作每晚运行。大多数桌子都是500M-2G的小桌子,但很少有桌子是24G-45G的大桌子。

我的 wals 和我的数据目录在不同的 fs 上。我的数据目录 fs 大小是 400G。在此操作期间,数据目录 fs 变满。但是,在此操作之后,释放了 100G,这意味着从数据目录 fs 的 400g 中使用了 300G。关于这些尺寸的东西似乎不太好。

当我检查我的数据库大小时:

mydb=# SELECT
mydb-#     pg_database.datname,
mydb-#     pg_size_pretty(pg_database_size(pg_database.datname)) AS size
mydb-#     FROM pg_database;
  datname  |  size   
  -----------+---------
  template0 | 7265 kB
  mydb      | 246 GB
  postgres  | 568 MB
  template1 | 7865 kB
  (4 rows)

当我检查 mydb 数据库中的所有表时:

mydb-#    relname as "Table",
mydb-#    pg_size_pretty(pg_total_relation_size(relid)) As "Size",
mydb-#    pg_size_pretty(pg_total_relation_size(relid) -     
          pg_relation_size(relid)) as "External Size"
mydb-#    FROM pg_catalog.pg_statio_user_tables ORDER BY 
          pg_total_relation_size(relid) DESC;
         Table             |    Size    | External Size 
        -------------------+------------+---------------
                    table 1| 45 GB      | 13 GB
                    table 2| 15 GB      | 6330 MB
                    table 3| 9506 MB    | 3800 MB
                    table 4| 7473 MB    | 1838 MB
                    table 5| 7267 MB    | 2652 MB
                    table 6| 5347 MB    | 1701 MB
                    table 7| 3402 MB    | 1377 MB
                    table 8| 3092 MB    | 1318 MB
                    table 9| 2145 MB    | 724 MB
                    table 10| 1804 MB    | 381 MB
                    table 11 293 MB     | 83 MB
                    table 12| 268 MB     | 103 MB
                    table 13| 225 MB     | 108 MB
                    table 14| 217 MB     | 40 MB
                    table 15| 172 MB     | 47 MB
                    table 16| 134 MB     | 36 MB
                    table 17| 102 MB     | 27 MB
                    table 18| 86 MB      | 22 MB
                   .....

在数据目录中,基本目录的大小为 240G。我的机器上有 16G 的内存。

4

0 回答 0