
# PV_SESSION_MEMORY_DETAIL
PV_SESSION_MEMORY_DETAIL统计线程的内存使用情况，以MemoryContext节点来统计。
其中内存上下文"TempSmallContextGroup"，记录当前线程中所有内存上下文字段"totalsize"小于8192字节的信息汇总，并且内存上下文统计计数记录到"usedsize"字段中。所以在视图中，"TempSmallContextGroup"内存上下文中的"totalsize"和"freesize"是该线程中所有内存上下文"totalsize"小于8192字节的汇总总和，usedsize字段表示统计的内存上下文个数。
可通过"select \* from pv_session_memctx_detail(threadid, '');"将某个线程所有内存上下文信息记录到"/tmp/dumpmem"目录下的"threadid_timestamp.log"文件中。其中threadid可通过下表sessid中获得。
表1PV_SESSION_MEMORY_DETAIL字段 
| 名称          | 类型       | 描述                                                               |
|:---|:---|:---|
| sessid      | text     | 线程启动时间+线程标识+节点名称（字符串信息为timestamp.threadid.nodename）。             |
| sesstype    | text     | 线程名称。                                                            |
| contextname | text     | 内存上下文名称。                                                         |
| level       | smallint | 当前上下文在整体内存上下文中的层级。                                               |
| parent      | text     | 父内存上下文名称。                                                        |
| totalsize   | bigint   | 当前内存上下文的内存总数，单位Byte。                                             |
| freesize    | bigint   | 当前内存上下文中已释放的内存总数，单位Byte。                                         |
| usedsize    | bigint   | 当前内存上下文中已使用的内存总数，单位Byte；"TempSmallContextGroup"内存上下文中该字段含义为统计计数。 |
   
#### 应用示例
查询当前节点上所有MemoryContext的使用情况。
根据sessid定位到该MemoryContext是在哪个线程中创建和使用的，依据totalsize，freesize及usedsize来确认内存的使用情况是否符合预期，预先判断是否可能存在内存泄露的风险。
```
SELECT * FROM pv_session_memory_detail;
                 sessid                  |        sesstype        |                  contextname                   | level |            parent            | totalsize | freesize | usedsize 
-----------------------------------------+------------------------+------------------------------------------------+-------+------------------------------+-----------+----------+----------
 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | TempSmallContextGroup                          |     0 |                              |    646520 |   125184 |      149
 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | TopMemoryContext                               |     0 |                              |    372672 |    19488 |   353184
 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | Record information cache                       |     1 | TopMemoryContext             |     24576 |    13632 |    10944
 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | Operator class cache                           |     1 | TopMemoryContext             |     24576 |    15168 |     9408
 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | smgr relation table                            |     1 | TopMemoryContext             |     24576 |    11040 |    13536
 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | TransactionAbortContext                        |     1 | TopMemoryContext             |     32768 |    32704 |       64
 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | Portal hash                                    |     1 | TopMemoryContext             |     24576 |    16192 |     8384
 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | CacheMemoryContext                             |     1 | TopMemoryContext             |   1858848 |    10640 |  1848208
 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | InvalidCacheMemoryContext                      |     2 | CacheMemoryContext           |   2088960 |   828928 |  1260032
 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | WAL record construction                        |     1 | TopMemoryContext             |     49792 |     6528 |    43264
 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | LOCAL LOCK hash                                |     1 | TopMemoryContext             |     24576 |    15936 |     8640
 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | Timezones                                      |     1 | TopMemoryContext             |     24576 |    15808 |     8768
 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | SELF MEMORY CONTEXT                            |     1 | TopMemoryContext             |     66600 |    17824 |    48776
 1760444600.140326303562480.coordinator1 | file_recyclebin        | TempSmallContextGroup                          |     0 |                              |    642688 |   129040 |      147
 1760444600.140326303562480.coordinator1 | file_recyclebin        | TopMemoryContext                               |     0 |                              |   1437632 |    14256 |  1423376
 1760444600.140326303562480.coordinator1 | file_recyclebin        | Operator class cache                           |     1 | TopMemoryContext             |     24576 |    15168 |     9408
 1760444600.140326303562480.coordinator1 | file_recyclebin        | smgr relation table                            |     1 | TopMemoryContext             |     24576 |    11040 |    13536
 1760444600.140326303562480.coordinator1 | file_recyclebin        | TransactionAbortContext                        |     1 | TopMemoryContext             |     32768 |    32704 |       64
 1760444600.140326303562480.coordinator1 | file_recyclebin        | Portal hash                                    |     1 | TopMemoryContext             |     24576 |    16192 |     8384
 1760444600.140326303562480.coordinator1 | file_recyclebin        | CacheMemoryContext                             |     1 | TopMemoryContext             |   1858848 |    12096 |  1846752
```
