暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL 兼容Oracle sql_trace 10046 10053 方法 - SQL诊断跟踪

原创 digoal 2022-01-20
558

作者

digoal

日期

2021-09-04

标签

PostgreSQL , Oracle , sql_trace


《PostgreSQL 兼容Oracle sql_trace 10046 10053 方法 - SQL诊断跟踪》

其他:

awr (perf insight, awr)

《PostgreSQL pg_stat_statements AWR 插件 pg_stat_monitor , 过去任何时间段性能分析 [推荐、收藏]》

历史会话 (perf insight)

《PostgreSQL 活跃会话历史记录插件 - pgsentinel 类似performance insight \ Oracle ASH Active Session History》
《PostgreSQL 13 preview - wait event sample - 等待事件统计(插件,hook) - ASH - performance insight》
《PostgreSQL Oracle 兼容性之 - performance insight - AWS performance insight 理念与实现解读 - 珍藏级》

  • PARSER STATISTICS
  • PARSE ANALYSIS STATISTICS
  • parse tree
  • REWRITER STATISTICS
  • rewritten parse tree
  • PLANNER STATISTICS
  • plan
  • sort STATISTICS
  • EXECUTOR STATISTICS
  • QUERY PLAN
    • actual time
    • loops
    • mem usage
    • Buffers: shared hit
    • blocks
    • io timing
  • WAL
  • JIT
  • 死锁等

详见:
《2019-PostgreSQL 2天体系化培训 - 视频每周更新》

打印到当前会话前台, 同时打印到日志

\set VERBOSITY verbose  
set log_min_messages = debug5;  
set log_min_error_statement = debug5;  
-- set trace_recovery_messages = DEBUG5;     # 只能启动前在参数文件中配置  
-- set track_commit_timestamp = on;     # 只能启动前在参数文件中配置  
-- set log_checkpoints = on;     # 只能启动前在参数文件中配置  
set log_error_verbosity = verbose;  
set log_lock_waits = on;  
set log_replication_commands = off;  
set log_temp_files = 0;  
set track_activities = on;  
set track_counts = on;  
set track_io_timing = on;  
set track_wal_io_timing = on;  
set track_functions = 'all';  
set trace_sort = on;  
-- set trace_locks = on;      # 要求 LOCK_DEBUG macro 定义  
-- set trace_lwlocks = on;    # 要求 LOCK_DEBUG macro 定义  
-- set trace_userlocks = on;   # 要求 LOCK_DEBUG macro 定义  
-- set trace_lock_oidmin   # 要求 LOCK_DEBUG macro 定义  
-- set trace_lock_table    # 要求 LOCK_DEBUG macro 定义  
-- set debug_deadlocks = on;    # 要求 LOCK_DEBUG macro 定义  
-- set log_btree_build_stats = on;   # 要求 BTREE_BUILD_STATS macro 定义  
-- set wal_debug = on;     # 要求 WAL_DEBUG macro 定义  
-- set jit_debugging_support = on;  # 只能启动前在参数文件中配置  
set jit_dump_bitcode = on;  
set jit_expressions = on;  
-- set jit_profiling_support = on;   # 只能启动前在参数文件中配置  
set jit_tuple_deforming = on;  
-- set log_statement_stats = on;  # 与log_statement_stats互斥, 可挑选使用   
set log_parser_stats = on;     --  与log_statement_stats互斥, 可挑选使用   
set log_planner_stats = on;    --  与log_statement_stats互斥, 可挑选使用   
set log_executor_stats = on;    --  与log_statement_stats互斥, 可挑选使用   
-- set log_autovacuum_min_duration = 0;   # 只能启动前在参数文件中配置  
set deadlock_timeout = '1s';  
set debug_print_parse = on;  
set debug_print_rewritten = on;  
set debug_print_plan = on;  
set debug_pretty_print = on;  
set lock_timeout = '1s';  
-- set log_recovery_conflict_waits = on;   # 只能启动前在参数文件中配置  
set client_min_messages = log;    -- 可选debug5,...debug1, log, notice, warning, error  

例子

postgres=# explain (analyze,verbose,timing,costs,buffers,WAL,SUMMARY) select count(*),relkind from pg_class group by relkind order by count(*) desc limit 1;  
LOG:  00000: PARSER STATISTICS  
DETAIL:  ! system usage stats:  
!   0.000101 s user, 0.000069 s system, 0.000168 s elapsed  
!   [0.005759 s user, 0.003854 s system total]  
!   4120 kB max resident size  
!   0/0 [0/0] filesystem blocks in/out  
!   0/36 [0/1095] page faults/reclaims, 0 [0] swaps  
!   0 [0] signals rcvd, 0/0 [31/77] messages rcvd/sent  
!   0/0 [1/33] voluntary/involuntary context switches  
LOCATION:  ShowUsage, postgres.c:4888  
LOG:  00000: PARSE ANALYSIS STATISTICS  
DETAIL:  ! system usage stats:  
!   0.000597 s user, 0.000211 s system, 0.000809 s elapsed  
!   [0.006405 s user, 0.004079 s system total]  
!   4824 kB max resident size  
!   0/0 [0/0] filesystem blocks in/out  
!   0/179 [0/1274] page faults/reclaims, 0 [0] swaps  
!   0 [0] signals rcvd, 0/0 [31/78] messages rcvd/sent  
!   0/0 [1/33] voluntary/involuntary context switches  
LOCATION:  ShowUsage, postgres.c:4888  
LOG:  00000: parse tree:  
DETAIL:     {QUERY   
   :commandType 5   
   :querySource 0   
   :canSetTag true   
   :utilityStmt ?   
   :resultRelation 0   
   :hasAggs false   
   :hasWindowFuncs false   
   :hasTargetSRFs false   
   :hasSubLinks false   
   :hasDistinctOn false   
   :hasRecursive false   
   :hasModifyingCTE false   
   :hasForUpdate false   
   :hasRowSecurity false   
   :isReturn false   
   :cteList <>   
   :rtable <>   
   :jointree <>   
   :targetList <>   
   :override 0   
   :onConflict <>   
   :returningList <>   
   :groupClause <>   
   :groupDistinct false   
   :groupingSets <>   
   :havingQual <>   
   :windowClause <>   
   :distinctClause <>   
   :sortClause <>   
   :limitOffset <>   
   :limitCount <>   
   :limitOption 0   
   :rowMarks <>   
   :setOperations <>   
   :constraintDeps <>   
   :withCheckOptions <>   
   :stmt_location 0   
   :stmt_len 144  
   }  
LOCATION:  elog_node_display, print.c:85  
LOG:  00000: REWRITER STATISTICS  
DETAIL:  ! system usage stats:  
!   0.000000 s user, 0.000000 s system, 0.000001 s elapsed  
!   [0.006462 s user, 0.004101 s system total]  
!   4828 kB max resident size  
!   0/0 [0/0] filesystem blocks in/out  
!   0/0 [0/1275] page faults/reclaims, 0 [0] swaps  
!   0 [0] signals rcvd, 0/0 [31/80] messages rcvd/sent  
!   0/0 [1/33] voluntary/involuntary context switches  
LOCATION:  ShowUsage, postgres.c:4888  
LOG:  00000: rewritten parse tree:  
DETAIL:  (  
   {QUERY   
   :commandType 5   
   :querySource 0   
   :canSetTag true   
   :utilityStmt ?   
   :resultRelation 0   
   :hasAggs false   
   :hasWindowFuncs false   
   :hasTargetSRFs false   
   :hasSubLinks false   
   :hasDistinctOn false   
   :hasRecursive false   
   :hasModifyingCTE false   
   :hasForUpdate false   
   :hasRowSecurity false   
   :isReturn false   
   :cteList <>   
   :rtable <>   
   :jointree <>   
   :targetList <>   
   :override 0   
   :onConflict <>   
   :returningList <>   
   :groupClause <>   
   :groupDistinct false   
   :groupingSets <>   
   :havingQual <>   
   :windowClause <>   
   :distinctClause <>   
   :sortClause <>   
   :limitOffset <>   
   :limitCount <>   
   :limitOption 0   
   :rowMarks <>   
   :setOperations <>   
   :constraintDeps <>   
   :withCheckOptions <>   
   :stmt_location 0   
   :stmt_len 144  
   }  
)  
LOCATION:  elog_node_display, print.c:85  
LOG:  00000: PLANNER STATISTICS  
DETAIL:  ! system usage stats:  
!   0.000549 s user, 0.000530 s system, 0.001121 s elapsed  
!   [0.007130 s user, 0.004662 s system total]  
!   5668 kB max resident size  
!   0/0 [0/0] filesystem blocks in/out  
!   0/191 [0/1486] page faults/reclaims, 0 [0] swaps  
!   0 [0] signals rcvd, 0/0 [31/82] messages rcvd/sent  
!   0/2 [1/35] voluntary/involuntary context switches  
LOCATION:  ShowUsage, postgres.c:4888  
LOG:  00000: plan:  
DETAIL:     {PLANNEDSTMT   
   :commandType 1   
   :queryId 0   
   :hasReturning false   
   :hasModifyingCTE false   
   :canSetTag true   
   :transientPlan false   
   :dependsOnRole false   
   :parallelModeNeeded false   
   :jitFlags 0   
   :planTree   
      {LIMIT   
      :startup_cost 34.31   
      :total_cost 34.32   
      :plan_rows 1   
      :plan_width 9   
      :parallel_aware false   
      :parallel_safe false   
      :async_capable false   
      :plan_node_id 0   
      :targetlist (  
         {TARGETENTRY   
         :expr   
            {VAR   
            :varno 65001   
            :varattno 1   
            :vartype 20   
            :vartypmod -1   
            :varcollid 0   
            :varlevelsup 0   
            :varnosyn 0   
            :varattnosyn 0   
            :location -1  
            }  
         :resno 1   
         :resname count   
         :ressortgroupref 1   
         :resorigtbl 0   
         :resorigcol 0   
         :resjunk false  
         }  
         {TARGETENTRY   
         :expr   
            {VAR   
            :varno 65001   
            :varattno 2   
            :vartype 18   
            :vartypmod -1   
            :varcollid 0   
            :varlevelsup 0   
            :varnosyn 1   
            :varattnosyn 17   
            :location -1  
            }  
         :resno 2   
         :resname relkind   
         :ressortgroupref 2   
         :resorigtbl 1259   
         :resorigcol 17   
         :resjunk false  
         }  
      )  
      :qual <>   
      :lefttree   
         {SORT   
         :startup_cost 34.31   
         :total_cost 34.32   
         :plan_rows 4   
         :plan_width 9   
         :parallel_aware false   
         :parallel_safe false   
         :async_capable false   
         :plan_node_id 1   
         :targetlist (  
            {TARGETENTRY   
            :expr   
               {VAR   
               :varno 65001   
               :varattno 1   
               :vartype 20   
               :vartypmod -1   
               :varcollid 0   
               :varlevelsup 0   
               :varnosyn 0   
               :varattnosyn 0   
               :location -1  
               }  
            :resno 1   
            :resname count   
            :ressortgroupref 1   
            :resorigtbl 0   
            :resorigcol 0   
            :resjunk false  
            }  
            {TARGETENTRY   
            :expr   
               {VAR   
               :varno 65001   
               :varattno 2   
               :vartype 18   
               :vartypmod -1   
               :varcollid 0   
               :varlevelsup 0   
               :varnosyn 1   
               :varattnosyn 17   
               :location -1  
               }  
            :resno 2   
            :resname relkind   
            :ressortgroupref 2   
            :resorigtbl 1259   
            :resorigcol 17   
            :resjunk false  
            }  
         )  
         :qual <>   
         :lefttree   
            {AGG   
            :startup_cost 34.25   
            :total_cost 34.29   
            :plan_rows 4   
            :plan_width 9   
            :parallel_aware false   
            :parallel_safe false   
            :async_capable false   
            :plan_node_id 2   
            :targetlist (  
               {TARGETENTRY   
               :expr   
                  {AGGREF   
                  :aggfnoid 2803   
                  :aggtype 20   
                  :aggcollid 0   
                  :inputcollid 0   
                  :aggtranstype 20   
                  :aggargtypes <>   
                  :aggdirectargs <>   
                  :args <>   
                  :aggorder <>   
                  :aggdistinct <>   
                  :aggfilter <>   
                  :aggstar true   
                  :aggvariadic false   
                  :aggkind n   
                  :agglevelsup 0   
                  :aggsplit 0   
                  :aggno 0   
                  :aggtransno 0   
                  :location 66  
                  }  
               :resno 1   
               :resname count   
               :ressortgroupref 1   
               :resorigtbl 0   
               :resorigcol 0   
               :resjunk false  
               }  
               {TARGETENTRY   
               :expr   
                  {VAR   
                  :varno 65001   
                  :varattno 17   
                  :vartype 18   
                  :vartypmod -1   
                  :varcollid 0   
                  :varlevelsup 0   
                  :varnosyn 0   
                  :varattnosyn 0   
                  :location -1  
                  }  
               :resno 2   
               :resname relkind   
               :ressortgroupref 2   
               :resorigtbl 1259   
               :resorigcol 17   
               :resjunk false  
               }  
            )  
            :qual <>   
            :lefttree   
               {SEQSCAN   
               :startup_cost 0.00   
               :total_cost 32.17   
               :plan_rows 417   
               :plan_width 1   
               :parallel_aware false   
               :parallel_safe false   
               :async_capable false   
               :plan_node_id 3   
               :targetlist (  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 1   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 1   
                     :location -1  
                     }  
                  :resno 1   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 2   
                     :vartype 19   
                     :vartypmod -1   
                     :varcollid 950   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 2   
                     :location -1  
                     }  
                  :resno 2   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 3   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 3   
                     :location -1  
                     }  
                  :resno 3   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 4   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 4   
                     :location -1  
                     }  
                  :resno 4   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 5   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 5   
                     :location -1  
                     }  
                  :resno 5   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 6   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 6   
                     :location -1  
                     }  
                  :resno 6   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 7   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 7   
                     :location -1  
                     }  
                  :resno 7   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 8   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 8   
                     :location -1  
                     }  
                  :resno 8   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 9   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 9   
                     :location -1  
                     }  
                  :resno 9   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 10   
                     :vartype 23   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 10   
                     :location -1  
                     }  
                  :resno 10   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 11   
                     :vartype 700   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 11   
                     :location -1  
                     }  
                  :resno 11   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 12   
                     :vartype 23   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 12   
                     :location -1  
                     }  
                  :resno 12   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 13   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 13   
                     :location -1  
                     }  
                  :resno 13   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 14   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 14   
                     :location -1  
                     }  
                  :resno 14   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 15   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 15   
                     :location -1  
                     }  
                  :resno 15   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 16   
                     :vartype 18   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 16   
                     :location -1  
                     }  
                  :resno 16   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 17   
                     :vartype 18   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 17   
                     :location -1  
                     }  
                  :resno 17   
                  :resname <>   
                  :ressortgroupref 2   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 18   
                     :vartype 21   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 18   
                     :location -1  
                     }  
                  :resno 18   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 19   
                     :vartype 21   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 19   
                     :location -1  
                     }  
                  :resno 19   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 20   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 20   
                     :location -1  
                     }  
                  :resno 20   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 21   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 21   
                     :location -1  
                     }  
                  :resno 21   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 22   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 22   
                     :location -1  
                     }  
                  :resno 22   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 23   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 23   
                     :location -1  
                     }  
                  :resno 23   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 24   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 24   
                     :location -1  
                     }  
                  :resno 24   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 25   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 25   
                     :location -1  
                     }  
                  :resno 25   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 26   
                     :vartype 18   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 26   
                     :location -1  
                     }  
                  :resno 26   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 27   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 27   
                     :location -1  
                     }  
                  :resno 27   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 28   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 28   
                     :location -1  
                     }  
                  :resno 28   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 29   
                     :vartype 28   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 29   
                     :location -1  
                     }  
                  :resno 29   
                  :resname <>   
          
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论