{"id":1025,"date":"2012-07-19T23:24:32","date_gmt":"2012-07-19T15:24:32","guid":{"rendered":"https:\/\/yangtingkun.net\/?p=1025"},"modified":"2012-07-21T10:28:34","modified_gmt":"2012-07-21T02:28:34","slug":"10g%e4%b8%addba_tab_statistics%e7%9a%84stattype_locked%e5%88%97%e5%af%b9%e5%88%86%e5%8c%ba%e9%94%81%e5%ae%9a%e6%98%be%e7%a4%ba%e4%b8%ba%e7%a9%ba%e7%9a%84%e8%a7%a3%e5%86%b3","status":"publish","type":"post","link":"https:\/\/yangtingkun.net\/?p=1025","title":{"rendered":"10g\u4e2dDBA_TAB_STATISTICS\u7684STATTYPE_LOCKED\u5217\u5bf9\u5206\u533a\u9501\u5b9a\u663e\u793a\u4e3a\u7a7a\u7684\u89e3\u51b3"},"content":{"rendered":"<p>Oracle10g\u7684DBA_TAB_STATISTICS\u89c6\u56fe\u7684STATTYPE_LOCKED\u5217\u6ca1\u6709\u6b63\u786e\u7684\u663e\u793a\u7ed3\u679c\u3002<br \/>\n10g\u4e2dDBA_TAB_STATISTICS\u7684STATTYPE_LOCKED\u5217\u5bf9\u5206\u533a\u9501\u5b9a\u663e\u793a\u4e3a\u7a7a\uff1a<a href=\"https:\/\/yangtingkun.net\/?p=1023\">https:\/\/yangtingkun.net\/?p=1023<\/a><br \/>\n\u4e0a\u6587\u63d0\u5230\u4e86DBA_TAB_STATISTICS\u4e2d\u7684STATTYPE_LOCKED\u5217\u572810g\u4e2d\u5bf9\u4e8e\u5206\u533a\u9501\u5b9a\u7edf\u8ba1\u4fe1\u606f\u663e\u793a\u4e3a\u7a7a\uff0c\u90a3\u4e48\u572810g\u4e2d\u6709\u6ca1\u6709\u529e\u6cd5\u83b7\u53d6\u5230\u6b63\u786e\u7684\u7ed3\u679c\u5462\uff1a<\/p>\n<pre lang='SQL'>SQL> select table_name, partition_name, last_analyzed, stattype_locked\r\n  2  from dba_tab_statistics\r\n  3  where owner = user\r\n  4  and table_name = 'T_PART';\r\nTABLE_NAME                     PARTITION_NAME                 LAST_ANAL STATT\r\n------------------------------ ------------------------------ --------- -----\r\nT_PART                                                        16-JUL-12\r\nT_PART                         P1\r\nT_PART                         P2                             16-JUL-12\r\nT_PART                         PMAX                           16-JUL-12\r\nSQL> exec dbms_stats.gather_table_stats(user, 'T_PART', partname => 'P1')\r\nBEGIN dbms_stats.gather_table_stats(user, 'T_PART', partname => 'P1'); END;\r\n*\r\nERROR at line 1:\r\nORA-20005: object statistics are locked (stattype = ALL)\r\nORA-06512: at \"SYS.DBMS_STATS\", line 15027\r\nORA-06512: at \"SYS.DBMS_STATS\", line 15049\r\nORA-06512: at line 1<\/pre>\n<p>\u663e\u7136\u867d\u7136Oracle\u5728DBA_TAB_STATISTICS\u89c6\u56fe\u4e2d\u6ca1\u6709\u6b63\u786e\u7684\u663e\u793a\u5206\u533a\u7684\u9501\u5b9a\u72b6\u6001\uff0c\u4f46\u662fOracle\u5728\u5185\u90e8\u786e\u5b9e\u8bb0\u5f55\u4e86\u5206\u533a\u7684\u9501\u5b9a\u72b6\u6001\uff0c\u65e2\u7136Oracle\u8bb0\u5f55\u4e86\u8fd9\u4e2a\u4fe1\u606f\uff0c\u5c31\u6709\u529e\u6cd5\u5c06\u8fd9\u4e2a\u4fe1\u606f\u663e\u793a\u51fa\u6765\u3002<br \/>\n\u65e2\u713611g\u80fd\u591f\u663e\u793a\u8be5\u5217\u7684\u503c\uff0c\u6700\u7b80\u5355\u7684\u65b9\u6cd5\u83ab\u8fc7\u4e8e\u5bf9\u6bd410g\u548c11g\u4e2dDBA_TAB_STATISTICS\u89c6\u56fe\u7684\u533a\u522b\uff0c10g\u89c6\u56fe\u7684\u7ed3\u679c\uff1a<\/p>\n<pre lang='SQL'>SQL> select text from dba_views where view_name = 'DBA_TAB_STATISTICS';\r\nTEXT\r\n--------------------------------------------------------------------------------\r\nSELECT \/* TABLES *\/\r\n    u.name, o.name, NULL, NULL, NULL, NULL, 'TABLE', t.rowcnt,\r\n.\r\n.\r\n.\r\n    decode(bitand(t.trigflag, 67108864) + bitand(t.trigflag, 134217728),\r\n           0, NULL, 67108864, 'DATA', 134217728, 'CACHE', 'ALL'),\r\n.\r\n.\r\n.\r\n  FROM\r\n    sys.user$ u, sys.obj$ o, sys.tab$ t, sys.tab_stats$ ts, sys.mon_mods_all$ m\r\n  WHERE\r\n.\r\n.\r\n.\r\n  UNION ALL\r\n  SELECT \/* PARTITIONS,  NOT IOT *\/\r\n    u.name, o.name, o.subname, tp.part#, NULL, NULL, 'PARTITION',\r\n.\r\n.\r\n.\r\n    decode(bitand(tab.trigflag, 67108864) + bitand(tab.trigflag, 134217728),\r\n           0, NULL, 67108864, 'DATA', 134217728, 'CACHE', 'ALL'),\r\n.\r\n.\r\n.\r\n  FROM\r\n    sys.user$ u, sys.obj$ o, sys.tabpartv$ tp, sys.tab_stats$ ts, sys.tab$ tab,\r\n    sys.mon_mods_all$ m\r\n  WHERE\r\n.\r\n.\r\n.\r\n  UNION ALL\r\n  SELECT \/* IOT Partitions *\/\r\n    u.name, o.name, o.subname, tp.part#, NULL, NULL, 'PARTITION',\r\n.\r\n.\r\n.\r\n    decode(bitand(tab.trigflag, 67108864) + bitand(tab.trigflag, 134217728),\r\n           0, NULL, 67108864, 'DATA', 134217728, 'CACHE', 'ALL'),\r\n.\r\n.\r\n.\r\n  FROM\r\n    sys.user$ u, sys.obj$ o, sys.tabpartv$ tp, sys.tab$ tab, sys.mon_mods_all$ m\r\n  WHERE\r\n.\r\n.\r\n.\r\n  UNION ALL\r\n  SELECT \/* COMPOSITE PARTITIONS *\/\r\n    u.name, o.name, o.subname, tcp.part#, NULL, NULL, 'PARTITION',\r\n.\r\n.\r\n.\r\n    decode(bitand(tab.trigflag, 67108864) + bitand(tab.trigflag, 134217728),\r\n           0, NULL, 67108864, 'DATA', 134217728, 'CACHE', 'ALL'),\r\n.\r\n.\r\n.\r\n  FROM\r\n    sys.user$ u, sys.obj$ o, sys.tabcompartv$ tcp,\r\n    sys.tab_stats$ ts, sys.tab$ tab, sys.mon_mods_all$ m\r\n  WHERE\r\n.\r\n.\r\n.\r\n  UNION ALL\r\n  SELECT \/* SUBPARTITIONS *\/\r\n    u.name, po.name, po.subname, tcp.part#,  so.subname, tsp.subpart#,\r\n.\r\n.\r\n.\r\n    decode(bitand(tab.trigflag, 67108864) + bitand(tab.trigflag, 134217728),\r\n           0, NULL, 67108864, 'DATA', 134217728, 'CACHE', 'ALL'),\r\n.\r\n.\r\n.\r\n  FROM\r\n    sys.user$ u, sys.obj$ po, sys.obj$ so, sys.tabcompartv$ tcp,\r\n    sys.tabsubpartv$ tsp,  sys.tab_stats$ ts, sys.tab$ tab, sys.mon_mods_all$ m\r\n  WHERE\r\n.\r\n.\r\n.\r\n  UNION ALL\r\n  SELECT \/* FIXED TABLES *\/\r\n    'SYS', t.kqftanam, NULL, NULL, NULL, NULL, 'FIXED TABLE',\r\n.\r\n.\r\n.<\/pre>\n<p>\u5bf9\u6bd4\u4e00\u4e0b11g\u7684\u67e5\u8be2\u7ed3\u679c\uff1a<\/p>\n<pre lang='SQL'>SQL> select text from dba_views where view_name = 'DBA_TAB_STATISTICS';\r\nTEXT\r\n--------------------------------------------------------------------------------\r\nSELECT \/* TABLES *\/\r\n    u.name, o.name, NULL, NULL, NULL, NULL, 'TABLE', t.rowcnt,\r\n.\r\n.\r\n.\r\n    decode(bitand(t.trigflag, 67108864) + bitand(t.trigflag, 134217728),\r\n           0, NULL, 67108864, 'DATA', 134217728, 'CACHE', 'ALL'),\r\n.\r\n.\r\n.\r\n  FROM\r\n    sys.user$ u, sys.obj$ o, sys.tab$ t, sys.tab_stats$ ts, sys.mon_mods_all$ m\r\n  WHERE\r\n.\r\n.\r\n.\r\n  UNION ALL\r\n  SELECT \/* PARTITIONS,  NOT IOT *\/\r\n    u.name, o.name, o.subname, tp.part#, NULL, NULL, 'PARTITION',\r\n.\r\n.\r\n.\r\n    decode(\r\n      \/*\r\n       * Following decode returns 1 if DATA stats locked for partition\r\n       * or at table level\r\n       *\/\r\n      decode(bitand(tab.trigflag, 67108864) + bitand(tp.flags, 32), 0, 0, 1) +\r\n      \/*\r\n       * Following decode returns 2 if CACHE stats locked for partition\r\n       * or at table level\r\n       *\/\r\n      decode(bitand(tab.trigflag, 134217728) + bitand(tp.flags, 64), 0, 0, 2),\r\n      \/* if 0 => not locked, 3 => data and cache stats locked *\/\r\n      0, NULL, 1, 'DATA', 2, 'CACHE', 'ALL'),\r\n.\r\n.\r\n.\r\n  FROM\r\n    sys.user$ u, sys.obj$ o, sys.tabpartv$ tp, sys.tab_stats$ ts, sys.tab$ tab,\r\n    sys.mon_mods_all$ m\r\n.\r\n.\r\n.\r\n  UNION ALL\r\n  SELECT \/* IOT Partitions *\/\r\n    u.name, o.name, o.subname, tp.part#, NULL, NULL, 'PARTITION',\r\n.\r\n.\r\n.\r\n    decode(\r\n      \/*\r\n       * Following decode returns 1 if DATA stats locked for partition\r\n       * or at table level\r\n       *\/\r\n      decode(bitand(tab.trigflag, 67108864) + bitand(tp.flags, 32), 0, 0, 1) +\r\n      \/*\r\n       * Following decode returns 2 if CACHE stats locked for partition\r\n       * or at table level\r\n       *\/\r\n      decode(bitand(tab.trigflag, 134217728) + bitand(tp.flags, 64), 0, 0, 2),\r\n      \/* if 0 => not locked, 3 => data and cache stats locked *\/\r\n      0, NULL, 1, 'DATA', 2, 'CACHE', 'ALL'),\r\n.\r\n.\r\n.\r\n  FROM\r\n    sys.user$ u, sys.obj$ o, sys.tabpartv$ tp, sys.tab$ tab, sys.mon_mods_all$ m\r\n  WHERE\r\n.\r\n.\r\n.\r\n  UNION ALL\r\n  SELECT \/* COMPOSITE PARTITIONS *\/\r\n    u.name, o.name, o.subname, tcp.part#, NULL, NULL, 'PARTITION',\r\n.\r\n.\r\n.\r\n    decode(\r\n      \/*\r\n       * Following decode returns 1 if DATA stats locked for partition\r\n       * or at table level\r\n       *\/\r\n      decode(bitand(tab.trigflag, 67108864) + bitand(tcp.flags, 32), 0, 0, 1) +\r\n      \/*\r\n       * Following decode returns 2 if CACHE stats locked for partition\r\n       * or at table level\r\n       *\/\r\n      decode(bitand(tab.trigflag, 134217728) + bitand(tcp.flags, 64), 0, 0, 2),\r\n      \/* if 0 => not locked, 3 => data and cache stats locked *\/\r\n      0, NULL, 1, 'DATA', 2, 'CACHE', 'ALL'),\r\n.\r\n.\r\n.\r\n  FROM\r\n    sys.user$ u, sys.obj$ o, sys.tabcompartv$ tcp,\r\n    sys.tab_stats$ ts, sys.tab$ tab, sys.mon_mods_all$ m\r\n  WHERE\r\n.\r\n.\r\n.\r\n  UNION ALL\r\n  SELECT \/* SUBPARTITIONS *\/\r\n    u.name, po.name, po.subname, tcp.part#,  so.subname, tsp.subpart#,\r\n.\r\n.\r\n.\r\n    decode(\r\n      \/*\r\n       * Following decode returns 1 if DATA stats locked for partition\r\n       * or at table level.\r\n       * Note that dbms_stats does n't allow locking subpartition stats.\r\n       * If the composite partition is locked, all subpartitions are\r\n       * considered locked. Hence decode checks for tcp entry.\r\n       *\/\r\n      decode(bitand(tab.trigflag, 67108864) + bitand(tcp.flags, 32), 0, 0, 1) +\r\n      \/*\r\n       * Following decode returns 2 if CACHE stats locked for partition\r\n       * or at table level\r\n       *\/\r\n      decode(bitand(tab.trigflag, 134217728) + bitand(tcp.flags, 64), 0, 0, 2),\r\n      \/* if 0 => not locked, 3 => data and cache stats locked *\/\r\n      0, NULL, 1, 'DATA', 2, 'CACHE', 'ALL'),\r\n.\r\n.\r\n.\r\n  FROM\r\n    sys.user$ u, sys.obj$ po, sys.obj$ so, sys.tabcompartv$ tcp,\r\n    sys.tabsubpartv$ tsp,  sys.tab_stats$ ts, sys.tab$ tab, sys.mon_mods_all$ m\r\n  WHERE\r\n.\r\n.\r\n.\r\n  UNION ALL\r\n  SELECT \/* FIXED TABLES *\/\r\n.\r\n.\r\n.<\/pre>\n<p>\u663e\u7136\u572811g\u4e2dOracle\u5bf9\u4e8e\u5206\u533a\u9501\u5b9a\u7684\u663e\u793a\u91c7\u7528\u4e86\u65b0\u7684\u7b97\u6cd5\uff0c\u90a3\u4e48\u53ef\u4ee5\u4eff\u716711g\u4e2d\u5efa\u7acb\u4e00\u4e2a\u89c6\u56fe\uff0c\u6765\u89e3\u51b310g\u4e2d\u5206\u533a\u663e\u793a\u5b58\u5728\u9519\u8bef\u7684\u95ee\u9898\uff1a<\/p>\n<pre lang='SQL'>SQL> CREATE OR REPLACE VIEW DBA_TAB_STATISTICS_LOCK\r\n  2  (OWNER, TABLE_NAME, PARTITION_NAME,\r\n  3  SUBPARTITION_NAME, OBJECT_TYPE, STATTYPE_LOCKED)\r\n  4  AS\r\n  5  SELECT u.name, o.name, NULL, NULL, 'TABLE',\r\n  6      decode(bitand(t.trigflag, 67108864) + bitand(t.trigflag, 134217728),\r\n  7             0, NULL, 67108864, 'DATA', 134217728, 'CACHE', 'ALL')\r\n  8    FROM sys.user$ u, sys.obj$ o, sys.tab$ t\r\n  9    WHERE o.owner# = u.user#\r\n 10      and o.obj# = t.obj#\r\n 11      and bitand(t.property, 1) = 0\r\n 12      and o.subname IS NULL\r\n 13      and o.namespace = 1 and o.remoteowner IS NULL and o.linkname IS NULL\r\n 14      and bitand(o.flags, 128) = 0\r\n 15  UNION ALL\r\n 16  SELECT u.name, o.name, o.subname, NULL, 'PARTITION',\r\n 17      decode(\r\n 18        decode(bitand(tab.trigflag, 67108864) + bitand(tp.flags, 32), 0, 0, 1) +\r\n 19        decode(bitand(tab.trigflag, 134217728) + bitand(tp.flags, 64), 0, 0, 2),\r\n 20        0, NULL, 1, 'DATA', 2, 'CACHE', 'ALL')\r\n 21    FROM sys.user$ u, sys.obj$ o, sys.tabpartv$ tp, sys.tab$ tab\r\n 22    WHERE o.owner# = u.user#\r\n 23      and o.obj# = tp.obj#\r\n 24      and tp.bo# = tab.obj#\r\n 25      and bitand(tab.property, 64) = 0\r\n 26      and o.namespace = 1 and o.remoteowner IS NULL and o.linkname IS NULL\r\n 27      and bitand(o.flags, 128) = 0\r\n 28  UNION ALL\r\n 29    SELECT u.name, o.name, o.subname, NULL, 'PARTITION',\r\n 30      decode(\r\n 31        decode(bitand(tab.trigflag, 67108864) + bitand(tp.flags, 32), 0, 0, 1) +\r\n 32        decode(bitand(tab.trigflag, 134217728) + bitand(tp.flags, 64), 0, 0, 2),\r\n 33        0, NULL, 1, 'DATA', 2, 'CACHE', 'ALL')\r\n 34    FROM sys.user$ u, sys.obj$ o, sys.tabpartv$ tp, sys.tab$ tab\r\n 35    WHERE o.owner# = u.user#\r\n 36      and o.obj# = tp.obj#\r\n 37      and tp.bo# = tab.obj#\r\n 38      and bitand(tab.property, 64) = 64\r\n 39      and o.namespace = 1 and o.remoteowner IS NULL and o.linkname IS NULL\r\n 40      and bitand(o.flags, 128) = 0\r\n 41  UNION ALL\r\n 42    SELECT u.name, o.name, o.subname, NULL, 'PARTITION',\r\n 43      decode(\r\n 44        decode(bitand(tab.trigflag, 67108864) + bitand(tcp.flags, 32), 0, 0, 1) +\r\n 45        decode(bitand(tab.trigflag, 134217728) + bitand(tcp.flags, 64), 0, 0, 2),\r\n 46        0, NULL, 1, 'DATA', 2, 'CACHE', 'ALL')\r\n 47    FROM sys.user$ u, sys.obj$ o, sys.tabcompartv$ tcp, sys.tab$ tab\r\n 48    WHERE o.owner# = u.user#\r\n 49      and o.obj# = tcp.obj#\r\n 50      and tcp.bo# = tab.obj#\r\n 51      and o.namespace = 1 and o.remoteowner IS NULL and o.linkname IS NULL\r\n 52      and bitand(o.flags, 128) = 0\r\n 53  UNION ALL\r\n 54    SELECT u.name, po.name, po.subname, so.subname, 'SUBPARTITION',\r\n 55      decode(\r\n 56        decode(bitand(tab.trigflag, 67108864) + bitand(tcp.flags, 32), 0, 0, 1) +\r\n 57        decode(bitand(tab.trigflag, 134217728) + bitand(tcp.flags, 64), 0, 0, 2),\r\n 58        0, NULL, 1, 'DATA', 2, 'CACHE', 'ALL')\r\n 59    FROM sys.user$ u, sys.obj$ po, sys.obj$ so, sys.tabcompartv$ tcp, sys.tabsubpartv$ tsp, sys.tab$ tab\r\n 60    WHERE so.obj# = tsp.obj#\r\n 61      and po.obj# = tcp.obj#\r\n 62      and tcp.obj# = tsp.pobj#\r\n 63      and tcp.bo# = tab.obj#\r\n 64      and u.user# = po.owner#\r\n 65      and bitand(tab.property, 64) = 0\r\n 66      and po.namespace = 1 and po.remoteowner IS NULL and po.linkname IS NULL\r\n 67      and bitand(po.flags, 128) = 0\r\n 68    ;\r\nView created.\r\nSQL> select table_name, partition_name, object_type, stattype_locked \r\n  2  from dba_tab_statistics_lock\r\n  3  where owner = 'TEST'\r\n  4  and table_name = 'T_PART';\r\nTABLE_NAME                     PARTITION_NAME                 OBJECT_TYPE  STATT\r\n------------------------------ ------------------------------ ------------ -----\r\nT_PART                                                        TABLE\r\nT_PART                         P1                             PARTITION    ALL\r\nT_PART                         P2                             PARTITION\r\nT_PART                         PMAX                           PARTITION<\/pre>\n<p>\u4f7f\u7528\u65b0\u521b\u5efa\u7684\u8fd9\u4e2a\u89c6\u56fe\uff0c\u5c31\u53ef\u4ee5\u89e3\u51b3\u9501\u5b9a\u5206\u533a\u7684\u7edf\u8ba1\u4fe1\u606f\u663e\u793a\u95ee\u9898\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oracle10g\u7684DBA_TAB_STATISTICS\u89c6\u56fe\u7684STATTYPE_LOCKED\u5217\u6ca1\u6709\u6b63\u786e\u7684\u663e\u793a\u7ed3\u679c\u3002 10g\u4e2dDBA_TAB_STATISTICS\u7684STATTYPE_LOCKED\u5217\u5bf9\u5206\u533a\u9501\u5b9a\u663e\u793a\u4e3a\u7a7a\uff1ahttps:\/\/yangtingkun.net\/?p=1023 \u4e0a\u6587\u63d0\u5230\u4e86DBA_TAB_STATISTICS\u4e2d\u7684STATTYPE_LOCKED\u5217\u572810g\u4e2d\u5bf9\u4e8e\u5206\u533a\u9501\u5b9a\u7edf\u8ba1\u4fe1\u606f\u663e\u793a\u4e3a\u7a7a\uff0c\u90a3\u4e48\u572810g\u4e2d\u6709\u6ca1\u6709\u529e\u6cd5\u83b7\u53d6\u5230\u6b63\u786e\u7684\u7ed3\u679c\u5462\uff1a SQL> select table_name, partition_name, last_analyzed, stattype_locked 2 from dba_tab_statistics 3 where owner = user 4 and table_name = &#8216;T_PART&#8217;; TABLE_NAME PARTITION_NAME LAST_ANAL STATT &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#8212;&#8211; T_PART 16-JUL-12 T_PART P1 T_PART P2 16-JUL-12 T_PART PMAX 16-JUL-12 &hellip; <a href=\"https:\/\/yangtingkun.net\/?p=1025\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3],"tags":[44,885,255,868,460,884],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2yiY3-gx","_links":{"self":[{"href":"https:\/\/yangtingkun.net\/index.php?rest_route=\/wp\/v2\/posts\/1025"}],"collection":[{"href":"https:\/\/yangtingkun.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yangtingkun.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yangtingkun.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yangtingkun.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1025"}],"version-history":[{"count":2,"href":"https:\/\/yangtingkun.net\/index.php?rest_route=\/wp\/v2\/posts\/1025\/revisions"}],"predecessor-version":[{"id":1027,"href":"https:\/\/yangtingkun.net\/index.php?rest_route=\/wp\/v2\/posts\/1025\/revisions\/1027"}],"wp:attachment":[{"href":"https:\/\/yangtingkun.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1025"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yangtingkun.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1025"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yangtingkun.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1025"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}