{"id":2556,"date":"2018-01-31T13:20:11","date_gmt":"2018-01-31T04:20:11","guid":{"rendered":"http:\/\/haisins.epac.to\/wordpress\/?p=2556"},"modified":"2018-01-31T13:30:17","modified_gmt":"2018-01-31T04:30:17","slug":"%ed%86%b5%ea%b3%84%ec%a0%95%eb%b3%b4%ea%b0%b1%ec%8b%a0-%ed%85%8c%ec%9d%b4%eb%b8%94-dml-%eb%b3%80%ea%b2%bd%eb%9f%89-%ed%99%95%ec%9d%b8dba_tab_modifications","status":"publish","type":"post","link":"http:\/\/haisins.synology.me\/wordpress\/?p=2556","title":{"rendered":"\ud1b5\uacc4\uc815\ubcf4 \uac31\uc2e0 , \uae30\ud0c0 \ud14c\uc774\ube14\ubcc4 I\/O \ud655\uc778\ud558\ub294 \ubc29\ubc95  \ud14c\uc774\ube14 DML \ubcc0\uacbd\ub7c9 \ud655\uc778 \ucffc\ub9ac"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p>\ud1b5\uacc4\uc815\ubcf4 \uac31\uc2e0 \uc2dd\ubcc4<\/p>\n<p>&nbsp;<\/p>\n<p>alter table emp monitoring;<\/p>\n<p>&nbsp;<\/p>\n<p>statistics_level\uc774 typical \uc774\uc0c1 \uc124\uc815\uc2dc \uc624\ub77c\ud074\uc744 \ud14c\uc774\ube14\uc5d0 \ubc1c\uc0dd\ud558\ub294 dml\uc744 \ubaa8\ub2c8\ud130\ub9c1\ud55c\ub2e4. \uc218\uc9d1\ub41c \ud14c\uc774\ube14\ubcc4 DML\uc740 *_tab_modifications\ubdf0<\/p>\n<p>\ub97c \ud1b5\ud574 \uc870\ud68c\ud560\uc218 \uc788\uc73c\uba70, insert,update,delete\ub294 \ub9c8\uc9c0\ub9c9 \ud1b5\uacc4\uc815\ubcf4\uac00 \uc218\uc9d1\ub41c \uc774\ud6c4\uc758 dml \ubc1c\uc0dd\ub7c9\uc774\ub2e4.<\/p>\n<p>\uc624\ub77c\ud074\uc740 \ubaa8\ub2c8\ud130\ub9c1 \ub300\uc0c1 \ud14c\uc774\ube14\uc5d0 10%\uc774\uc0c1 \ubcc0\uacbd\uc774 \ubc1c\uc0dd\ud588\uc744\ub54c \ud574\ub2f9 \ud14c\uc774\ube14\uc744 stale \uc0c1\ud0dc(*_tab_statistics \ubdf0\uc5d0\uc11c stale_stats=yes)\ub85c \ubcc0\uacbd<\/p>\n<p>\ud558\uace0, gather_database_stats \ub610\ub294 gather_schema_stats \ud504\ub85c\uc2dc\uc800\ub97c \ud638\ucd9c\ud558\uba74\uc11c option \uc778\uc790\uc5d0 &#8216;gather stale&#8217; \ub610\ub294 &#8216;gather auto&#8217;\ub97c<\/p>\n<p>\uc9c0\uc815\ud558\uba74 stale \uc0c1\ud0dc\uc778 \ud14c\uc774\ube14\uc5d0 \ub300\ud574 \ud1b5\uacc4\uc815\ubcf4\ub97c \uc218\uc9d1\ud55c\ub2e4.<\/p>\n<p>10g\ubd80\ud130 \uc870\ud68c \uac00\ub2a5 \ud558\uace0 11g\uc5d0\uc11c\ub294 object\ubcc4 \uc784\uacc4\uce58 \uc124\uc815\uc774 \uac00\ub2a5<\/p>\n<p>\uc2e4\uc81c 10%\uc774\uc0c1 \ubcc0\uacbd\uc774 \ub418\uc5b4\uc11c *_tab_modifications *_tab_statistics\ubdf0\uc758 stale_stats \uceec\ub7fc\uc5d0 \ubcc0\ud654\uac00 \uc0dd\uae30\uc9c0 \uc54a\ub294\uac83\uc740 \ubcc0\uacbd\ub41c \uacb0\uacfc\ub97c shared_pool\uc5d0 \ubaa8\uc558\ub2e4\uac00 smon\uc774 3\uc2dc\uac04\u00a0 \uc8fc\uae30\ub85c \ub515\uc154\ub108\ub9ac\uc5d0 \ubc18\uc601\ud558\uae30 \ub54c\ubb38\uc774\ub2e4. \uc989\uc2dc \ubc18\uc601\uc744 \ud558\ub824\uba74 dbms_stats.flush_database_monitoring_info \ud504\ub85c\uc2dc\uc800\ub97c \ud638\ucd9c\ud558\uba74 \ub41c\ub2e4.<\/p>\n<p>\ud14c\uc774\ube14\uc5d0 \ub300\ud55c dml \ubcc0\uacbd\ub7c9\uc744 \ud655\uc778\ud558\ub294 \ubdf0\ub85c \ucd5c\uadfc ANALYZE \uc774\ud6c4 10% \uc774\uc0c1 \ubcc0\uacbd\ubd84\uc5d0 \ub300\ud55c \uae30\ub85d\uc744<\/p>\n<p>\ub0a8\uae34\ub2e4.\u00a0 v$segment_statistics view \ubcd1\ud589\ud558\uc5ec \ud14c\uc774\ube14\uc5d0 \ub300\ud55c \ubcc0\uacbd\ub7c9\uc744 \ucd94\uc815\uc744 \ud560\uc218 \uc788\uc74c.<\/p>\n<p>10%\uc758 \uc624\ucc28\uc640 \ud1b5\uacc4\uc815\ubcf4 \uc218\uc9d1\uc2dc\uae30\uc5d0 \ub530\ub978 \uc624\ucc28\uac00 \ubc1c\uc0dd\ud560\uc218 \uc788\uc73c\uba70, \ub300\ub7b5\uc801\uc778 \ubcc0\ub3d9\uc744 \ucd94\uc815\ud558\ub294 \uc790\ub8cc\ub85c<\/p>\n<p>\ud65c\uc6a9\uac00\ub2a5\ud568.<\/p>\n<p>I am having the same exact problem, tables are getting modified and TIMESTAMP column in *_TAB_MODIFICATIONS is not getting updated, however, UPDATES\/DELETES\/INSERTS columns are.<br \/>\nThis is 10gR2. STATISTICS_LEVEL is TYPICAL. I have ran many times dbms_stats.FLUSH_DATABASE_MONITORING_INFO but, only UPDATES\/DELETES\/INSERTS change, TIMESTAMP remains the same. Also, I have one table that is &gt;= 10% modified, but GATHER_STATS_JOB is not choosing it for collecting statistics.<\/p>\n<p>&lt;blockquote&gt;&lt;\/blockquote&gt;<\/p>\n<p>DBA_TAB_MODIFICATIONS View Source<\/p>\n<p>Oracle 11g&#8217;s data dictionary defines the DBA_TAB_MODIFICATIONS view using the following source query:<\/p>\n<p>select u.name, o.name, null, null,<br \/>\nm.inserts, m.updates, m.deletes, m.timestamp,<br \/>\ndecode(bitand(m.flags,1),1,&#8217;YES&#8217;,&#8217;NO&#8217;),<br \/>\nm.drop_segments<br \/>\nfrom sys.mon_mods_all$ m, sys.obj$ o, sys.tab$ t, sys.user$ u<br \/>\nwhere o.obj# = m.obj# and o.obj# = t.obj# and o.owner# = u.user#<br \/>\nunion all<br \/>\nselect u.name, o.name, o.subname, null,<br \/>\nm.inserts, m.updates, m.deletes, m.timestamp,<br \/>\ndecode(bitand(m.flags,1),1,&#8217;YES&#8217;,&#8217;NO&#8217;),<br \/>\nm.drop_segments<br \/>\nfrom sys.mon_mods_all$ m, sys.obj$ o, sys.user$ u<br \/>\nwhere o.owner# = u.user# and o.obj# = m.obj# and o.type#=19<br \/>\nunion all<br \/>\nselect u.name, o.name, o2.subname, o.subname,<br \/>\nm.inserts, m.updates, m.deletes, m.timestamp,<br \/>\ndecode(bitand(m.flags,1),1,&#8217;YES&#8217;,&#8217;NO&#8217;),<br \/>\nm.drop_segments<br \/>\nfrom sys.mon_mods_all$ m, sys.obj$ o, sys.tabsubpart$ tsp, sys.obj$ o2,<br \/>\nsys.user$ u<br \/>\nwhere o.obj# = m.obj# and o.owner# = u.user# and<br \/>\no.obj# = tsp.obj# and o2.obj# = tsp.pobj#<\/p>\n<p>;<\/p>\n<p>*\uc608\uc81c 2<\/p>\n<p><b>Automatic stats(default 10g, manual 9i). Examine status<\/b> begin dbms_stats.FLUSH_DATABASE_MONITORING_INFO(); end; select num_rows, last_analyzed, tot_updates, table_owner, table_name, partition_name, subpartition_name, inserts, updates, deletes, timestamp, truncated , to_char(perc_updates, &#8216;FM999,999,999,990.00&#8217;) perc_updates from ( select a.* , nvl(decode(num_rows, 0, &#8216;-1&#8217;, 100 * tot_updates \/ num_rows), -1) perc_updates from ( select (select num_rows from dba_tables where dba_tables.table_name = DBA_TAB_MODIFICATIONS.table_name and DBA_TAB_MODIFICATIONS.table_owner = dba_tables.owner) num_rows , (select last_analyzed from dba_tables where dba_tables.table_name = DBA_TAB_MODIFICATIONS.table_name and DBA_TAB_MODIFICATIONS.table_owner = dba_tables.owner) last_analyzed , (inserts + updates + deletes) tot_updates , DBA_TAB_MODIFICATIONS.* from sys.DBA_TAB_MODIFICATIONS ) a ) b where perc_updates &gt; 10; Column description of the DBA_TAB_MODIFICATIONS view:<\/p>\n<p><strong>TABLE_OWNER<\/strong><\/p>\n<p>Description of DBA_TAB_MODIFICATIONS.TABLE_OWNER: &#8220;Owner of modified table&#8221;<\/p>\n<p><strong>TABLE_NAME<\/strong><\/p>\n<p>Description of DBA_TAB_MODIFICATIONS.TABLE_NAME: &#8220;Modified table&#8221;<\/p>\n<p><strong>PARTITION_NAME<\/strong><\/p>\n<p>Description of DBA_TAB_MODIFICATIONS.PARTITION_NAME: &#8220;Modified partition&#8221;<\/p>\n<p><strong>SUBPARTITION_NAME<\/strong><\/p>\n<p>Description of DBA_TAB_MODIFICATIONS.SUBPARTITION_NAME: &#8220;Modified subpartition&#8221;<\/p>\n<p><strong>INSERTS<\/strong><\/p>\n<p>Description of DBA_TAB_MODIFICATIONS.INSERTS: &#8220;Approximate number of rows inserted since last analyze&#8221;<\/p>\n<p><strong>UPDATES<\/strong><\/p>\n<p>Description of DBA_TAB_MODIFICATIONS.UPDATES: &#8220;Approximate number of rows updated since last analyze&#8221;<\/p>\n<p><strong>DELETES<\/strong><\/p>\n<p>Description of DBA_TAB_MODIFICATIONS.DELETES: &#8220;Approximate number of rows deleted since last analyze&#8221;<\/p>\n<p><strong>TIMESTAMP<\/strong><\/p>\n<p>Description of DBA_TAB_MODIFICATIONS.TIMESTAMP: &#8220;Timestamp of last time this row was modified&#8221;<\/p>\n<p><strong>TRUNCATED<\/strong><\/p>\n<p>Description of DBA_TAB_MODIFICATIONS.TRUNCATED: &#8220;Was this object truncated since the last analyze?&#8221;<\/p>\n<p><strong>DROP_SEGMENTS<\/strong><\/p>\n<p>Description of DBA_TAB_MODIFICATIONS.DROP_SEGMENTS: &#8220;Number of (sub)partition segment dropped since the last analyze?&#8221;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&lt;\uae30\ubcf8\ud3b8&gt; 10% \uc774\uc0c1 \ubcc0\uacbd \ub41c \ud14c\uc774\ube14\ub9cc \ud655\uc778\ud558\ub294 \ucffc\ub9ac<\/p>\n<p>select *<br \/>\nfrom\u00a0\u00a0 (select a.owner,<br \/>\na.table_name<br \/>\nfrom\u00a0\u00a0 dba_tables a,<br \/>\nsys.dba_tab_modifications b<br \/>\nwhere\u00a0 a.owner\u00a0 not in (&#8216;SYS&#8217;,&#8217;SYSTEM&#8217;,&#8217;SCOTT&#8217;,&#8217;OUTLN&#8217;,&#8217;MGMT_VIEW&#8217;,&#8217;FLOWS_FILES&#8217;,&#8217;MDSYS&#8217;,&#8217;WMSYS&#8217;,&#8217;APPQOSSYS&#8217;,&#8217;APEX_030200&#8242;,&#8217;OWBSYS_AUDIT&#8217;,&#8217;DBSNMP&#8217;,&#8217;OWBSYS&#8217;,&#8217;ORDDATA&#8217;,&#8217;ANONYMOUS&#8217;,&#8217;EXFSYS&#8217;,&#8217;XDB&#8217;,&#8217;ORDSYS&#8217;,&#8217;CTXSYS&#8217;,&#8217;ORDPLUGINS&#8217;,&#8217;SYSMAN&#8217;,&#8217;OLAPSYS&#8217;,&#8217;SI_INFORMTN_SCHEMA&#8217;,&#8217;SH&#8217;,&#8217;HR&#8217;,&#8217;BI&#8217;,&#8217;XS$NULL&#8217;,&#8217;IX&#8217;,&#8217;MDDATA&#8217;,&#8217;ORACLE_OCM&#8217;,&#8217;DIP&#8217;,&#8217;PM&#8217;,&#8217;APEX_PUBLIC_USER&#8217;,&#8217;SPATIAL_CSW_ADMIN_USR&#8217;,&#8217;SPATIAL_WFS_ADMIN_USR&#8217;,&#8217;OE&#8217;)<br \/>\nand\u00a0\u00a0\u00a0 b.table_owner\u00a0 not in (&#8216;SYS&#8217;,&#8217;SYSTEM&#8217;,&#8217;SCOTT&#8217;,&#8217;OUTLN&#8217;,&#8217;MGMT_VIEW&#8217;,&#8217;FLOWS_FILES&#8217;,&#8217;MDSYS&#8217;,&#8217;WMSYS&#8217;,&#8217;APPQOSSYS&#8217;,&#8217;APEX_030200&#8242;,&#8217;OWBSYS_AUDIT&#8217;,&#8217;DBSNMP&#8217;,&#8217;OWBSYS&#8217;,&#8217;ORDDATA&#8217;,&#8217;ANONYMOUS&#8217;,&#8217;EXFSYS&#8217;,&#8217;XDB&#8217;,&#8217;ORDSYS&#8217;,&#8217;CTXSYS&#8217;,&#8217;ORDPLUGINS&#8217;,&#8217;SYSMAN&#8217;,&#8217;OLAPSYS&#8217;,&#8217;SI_INFORMTN_SCHEMA&#8217;,&#8217;SH&#8217;,&#8217;HR&#8217;,&#8217;BI&#8217;,&#8217;XS$NULL&#8217;,&#8217;IX&#8217;,&#8217;MDDATA&#8217;,&#8217;ORACLE_OCM&#8217;,&#8217;DIP&#8217;,&#8217;PM&#8217;,&#8217;APEX_PUBLIC_USER&#8217;,&#8217;SPATIAL_CSW_ADMIN_USR&#8217;,&#8217;SPATIAL_WFS_ADMIN_USR&#8217;,&#8217;OE&#8217;)<br \/>\nand\u00a0\u00a0\u00a0 a.table_name=b.table_name<br \/>\nand\u00a0\u00a0\u00a0 TRUNCATED = &#8216;NO&#8217;<br \/>\nand\u00a0\u00a0\u00a0 b.partition_name is null<br \/>\nand\u00a0\u00a0\u00a0 ( TRUNC((INSERTS-DELETES+UPDATES)\/DECODE(a.num_rows, 0, 1, NULL, 1, a.num_rows)*100, 2) &gt; 10<br \/>\nor\u00a0\u00a0\u00a0\u00a0 TRUNC((INSERTS-DELETES)\/DECODE(a.num_rows, 0, 1, NULL, 1, a.num_rows)*100, 2) &gt; 10<br \/>\nor\u00a0\u00a0\u00a0\u00a0 num_rows is null)<br \/>\ngroup by a.OWNER, a.TABLE_NAME<br \/>\nunion<br \/>\nselect a.table_owner owner,<br \/>\na.table_name<br \/>\nfrom\u00a0\u00a0 dba_tab_partitions a,<br \/>\nsys.dba_tab_modifications b<br \/>\nwhere\u00a0 a.table_owner\u00a0 not in (&#8216;SYS&#8217;,&#8217;SYSTEM&#8217;,&#8217;SCOTT&#8217;,&#8217;OUTLN&#8217;,&#8217;MGMT_VIEW&#8217;,&#8217;FLOWS_FILES&#8217;,&#8217;MDSYS&#8217;,&#8217;WMSYS&#8217;,&#8217;APPQOSSYS&#8217;,&#8217;APEX_030200&#8242;,&#8217;OWBSYS_AUDIT&#8217;,&#8217;DBSNMP&#8217;,&#8217;OWBSYS&#8217;,&#8217;ORDDATA&#8217;,&#8217;ANONYMOUS&#8217;,&#8217;EXFSYS&#8217;,&#8217;XDB&#8217;,&#8217;ORDSYS&#8217;,&#8217;CTXSYS&#8217;,&#8217;ORDPLUGINS&#8217;,&#8217;SYSMAN&#8217;,&#8217;OLAPSYS&#8217;,&#8217;SI_INFORMTN_SCHEMA&#8217;,&#8217;SH&#8217;,&#8217;HR&#8217;,&#8217;BI&#8217;,&#8217;XS$NULL&#8217;,&#8217;IX&#8217;,&#8217;MDDATA&#8217;,&#8217;ORACLE_OCM&#8217;,&#8217;DIP&#8217;,&#8217;PM&#8217;,&#8217;APEX_PUBLIC_USER&#8217;,&#8217;SPATIAL_CSW_ADMIN_USR&#8217;,&#8217;SPATIAL_WFS_ADMIN_USR&#8217;,&#8217;OE&#8217;)<br \/>\nand\u00a0\u00a0\u00a0 b.table_owner\u00a0 not in (&#8216;SYS&#8217;,&#8217;SYSTEM&#8217;,&#8217;SCOTT&#8217;,&#8217;OUTLN&#8217;,&#8217;MGMT_VIEW&#8217;,&#8217;FLOWS_FILES&#8217;,&#8217;MDSYS&#8217;,&#8217;WMSYS&#8217;,&#8217;APPQOSSYS&#8217;,&#8217;APEX_030200&#8242;,&#8217;OWBSYS_AUDIT&#8217;,&#8217;DBSNMP&#8217;,&#8217;OWBSYS&#8217;,&#8217;ORDDATA&#8217;,&#8217;ANONYMOUS&#8217;,&#8217;EXFSYS&#8217;,&#8217;XDB&#8217;,&#8217;ORDSYS&#8217;,&#8217;CTXSYS&#8217;,&#8217;ORDPLUGINS&#8217;,&#8217;SYSMAN&#8217;,&#8217;OLAPSYS&#8217;,&#8217;SI_INFORMTN_SCHEMA&#8217;,&#8217;SH&#8217;,&#8217;HR&#8217;,&#8217;BI&#8217;,&#8217;XS$NULL&#8217;,&#8217;IX&#8217;,&#8217;MDDATA&#8217;,&#8217;ORACLE_OCM&#8217;,&#8217;DIP&#8217;,&#8217;PM&#8217;,&#8217;APEX_PUBLIC_USER&#8217;,&#8217;SPATIAL_CSW_ADMIN_USR&#8217;,&#8217;SPATIAL_WFS_ADMIN_USR&#8217;,&#8217;OE&#8217;)<br \/>\nand\u00a0\u00a0\u00a0 a.table_name=b.table_name<br \/>\nand\u00a0\u00a0\u00a0 TRUNCATED = &#8216;NO&#8217;<br \/>\nand\u00a0\u00a0\u00a0 b.partition_name = a.partition_name<br \/>\nand\u00a0\u00a0\u00a0 ( TRUNC((INSERTS-DELETES)\/DECODE(a.num_rows, 0, 1, NULL, 1, a.num_rows)*100, 2) &gt; 10<br \/>\nor\u00a0\u00a0\u00a0\u00a0 TRUNC((INSERTS-DELETES+UPDATES)\/DECODE(a.num_rows, 0, 1, NULL, 1, a.num_rows)*100, 2) &gt; 10<br \/>\nor\u00a0\u00a0\u00a0\u00a0 num_rows is null )<br \/>\ngroup by a.TABLE_OWNER, a.TABLE_NAME )<br \/>\ngroup by owner, table_name<br \/>\norder by owner desc , table_name;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&lt;\uc751\uc6a9\ud3b8&gt; 10% \uc774\uc0c1 \ubcc0\uacbd\ub41c \ud14c\uc774\ube14 \ub9cc \ud1b5\uacc4\uc815\ubcf4 \ub728\uace0 \uc2f6\uc744 \ub54c<\/p>\n<p>select &#8216;exec DBMS_STATS.GATHER_TABLE_STATS (ownname =&gt; &#8221;&#8217;||owner||&#8221;&#8217; , tabname =&gt; &#8221;&#8217;||table_name||&#8221;&#8217;, estimate_percent=&gt; 100 , method_opt =&gt; &#8221; FOR ALL COLUMNS SIZE &#8216;||<br \/>\ncase<br \/>\nwhen owner not in (&#8216;SYS&#8217;,&#8217;SYSTEM&#8217;,&#8217;SCOTT&#8217;,&#8217;OUTLN&#8217;,&#8217;MGMT_VIEW&#8217;,&#8217;FLOWS_FILES&#8217;,&#8217;MDSYS&#8217;,&#8217;WMSYS&#8217;,&#8217;APPQOSSYS&#8217;,&#8217;APEX_030200&#8242;,&#8217;OWBSYS_AUDIT&#8217;,&#8217;DBSNMP&#8217;,&#8217;OWBSYS&#8217;,&#8217;ORDDATA&#8217;,&#8217;ANONYMOUS&#8217;,&#8217;EXFSYS&#8217;,&#8217;XDB&#8217;,&#8217;ORDSYS&#8217;,&#8217;CTXSYS&#8217;,&#8217;ORDPLUGINS&#8217;,&#8217;SYSMAN&#8217;,&#8217;OLAPSYS&#8217;,&#8217;SI_INFORMTN_SCHEMA&#8217;,&#8217;SH&#8217;,&#8217;HR&#8217;,&#8217;BI&#8217;,&#8217;XS$NULL&#8217;,&#8217;IX&#8217;,&#8217;MDDATA&#8217;,&#8217;ORACLE_OCM&#8217;,&#8217;DIP&#8217;,&#8217;PM&#8217;,&#8217;APEX_PUBLIC_USER&#8217;,&#8217;SPATIAL_CSW_ADMIN_USR&#8217;,&#8217;SPATIAL_WFS_ADMIN_USR&#8217;,&#8217;OE&#8217;) then &#8216; 1&#8217;<br \/>\nelse &#8216; 1&#8242;<br \/>\nend ||&#8221;&#8217;\u00a0\u00a0 , granularity =&gt; &#8221;GLOBAL&#8221;, cascade =&gt; true , degree =&gt; 3 ) ; &#8216; scripts<br \/>\nfrom\u00a0\u00a0 (select a.owner,<br \/>\na.table_name<br \/>\nfrom\u00a0\u00a0 dba_tables a,<br \/>\nsys.dba_tab_modifications b<br \/>\nwhere\u00a0 a.owner\u00a0 not in (&#8216;SYS&#8217;,&#8217;SYSTEM&#8217;,&#8217;SCOTT&#8217;,&#8217;OUTLN&#8217;,&#8217;MGMT_VIEW&#8217;,&#8217;FLOWS_FILES&#8217;,&#8217;MDSYS&#8217;,&#8217;WMSYS&#8217;,&#8217;APPQOSSYS&#8217;,&#8217;APEX_030200&#8242;,&#8217;OWBSYS_AUDIT&#8217;,&#8217;DBSNMP&#8217;,&#8217;OWBSYS&#8217;,&#8217;ORDDATA&#8217;,&#8217;ANONYMOUS&#8217;,&#8217;EXFSYS&#8217;,&#8217;XDB&#8217;,&#8217;ORDSYS&#8217;,&#8217;CTXSYS&#8217;,&#8217;ORDPLUGINS&#8217;,&#8217;SYSMAN&#8217;,&#8217;OLAPSYS&#8217;,&#8217;SI_INFORMTN_SCHEMA&#8217;,&#8217;SH&#8217;,&#8217;HR&#8217;,&#8217;BI&#8217;,&#8217;XS$NULL&#8217;,&#8217;IX&#8217;,&#8217;MDDATA&#8217;,&#8217;ORACLE_OCM&#8217;,&#8217;DIP&#8217;,&#8217;PM&#8217;,&#8217;APEX_PUBLIC_USER&#8217;,&#8217;SPATIAL_CSW_ADMIN_USR&#8217;,&#8217;SPATIAL_WFS_ADMIN_USR&#8217;,&#8217;OE&#8217;)<br \/>\nand\u00a0\u00a0\u00a0 b.table_owner\u00a0 not in (&#8216;SYS&#8217;,&#8217;SYSTEM&#8217;,&#8217;SCOTT&#8217;,&#8217;OUTLN&#8217;,&#8217;MGMT_VIEW&#8217;,&#8217;FLOWS_FILES&#8217;,&#8217;MDSYS&#8217;,&#8217;WMSYS&#8217;,&#8217;APPQOSSYS&#8217;,&#8217;APEX_030200&#8242;,&#8217;OWBSYS_AUDIT&#8217;,&#8217;DBSNMP&#8217;,&#8217;OWBSYS&#8217;,&#8217;ORDDATA&#8217;,&#8217;ANONYMOUS&#8217;,&#8217;EXFSYS&#8217;,&#8217;XDB&#8217;,&#8217;ORDSYS&#8217;,&#8217;CTXSYS&#8217;,&#8217;ORDPLUGINS&#8217;,&#8217;SYSMAN&#8217;,&#8217;OLAPSYS&#8217;,&#8217;SI_INFORMTN_SCHEMA&#8217;,&#8217;SH&#8217;,&#8217;HR&#8217;,&#8217;BI&#8217;,&#8217;XS$NULL&#8217;,&#8217;IX&#8217;,&#8217;MDDATA&#8217;,&#8217;ORACLE_OCM&#8217;,&#8217;DIP&#8217;,&#8217;PM&#8217;,&#8217;APEX_PUBLIC_USER&#8217;,&#8217;SPATIAL_CSW_ADMIN_USR&#8217;,&#8217;SPATIAL_WFS_ADMIN_USR&#8217;,&#8217;OE&#8217;)<br \/>\nand\u00a0\u00a0\u00a0 a.table_name=b.table_name<br \/>\nand\u00a0\u00a0\u00a0 TRUNCATED = &#8216;NO&#8217;<br \/>\nand\u00a0\u00a0\u00a0 b.partition_name is null<br \/>\nand\u00a0\u00a0\u00a0 ( TRUNC((INSERTS-DELETES+UPDATES)\/DECODE(a.num_rows, 0, 1, NULL, 1, a.num_rows)*100, 2) &gt; 10<br \/>\nor\u00a0\u00a0\u00a0\u00a0 TRUNC((INSERTS-DELETES)\/DECODE(a.num_rows, 0, 1, NULL, 1, a.num_rows)*100, 2) &gt; 10<br \/>\nor\u00a0\u00a0\u00a0\u00a0 num_rows is null)<br \/>\ngroup by a.OWNER, a.TABLE_NAME<br \/>\nunion<br \/>\nselect a.table_owner owner,<br \/>\na.table_name<br \/>\nfrom\u00a0\u00a0 dba_tab_partitions a,<br \/>\nsys.dba_tab_modifications b<br \/>\nwhere\u00a0 a.table_owner\u00a0 not in (&#8216;SYS&#8217;,&#8217;SYSTEM&#8217;,&#8217;SCOTT&#8217;,&#8217;OUTLN&#8217;,&#8217;MGMT_VIEW&#8217;,&#8217;FLOWS_FILES&#8217;,&#8217;MDSYS&#8217;,&#8217;WMSYS&#8217;,&#8217;APPQOSSYS&#8217;,&#8217;APEX_030200&#8242;,&#8217;OWBSYS_AUDIT&#8217;,&#8217;DBSNMP&#8217;,&#8217;OWBSYS&#8217;,&#8217;ORDDATA&#8217;,&#8217;ANONYMOUS&#8217;,&#8217;EXFSYS&#8217;,&#8217;XDB&#8217;,&#8217;ORDSYS&#8217;,&#8217;CTXSYS&#8217;,&#8217;ORDPLUGINS&#8217;,&#8217;SYSMAN&#8217;,&#8217;OLAPSYS&#8217;,&#8217;SI_INFORMTN_SCHEMA&#8217;,&#8217;SH&#8217;,&#8217;HR&#8217;,&#8217;BI&#8217;,&#8217;XS$NULL&#8217;,&#8217;IX&#8217;,&#8217;MDDATA&#8217;,&#8217;ORACLE_OCM&#8217;,&#8217;DIP&#8217;,&#8217;PM&#8217;,&#8217;APEX_PUBLIC_USER&#8217;,&#8217;SPATIAL_CSW_ADMIN_USR&#8217;,&#8217;SPATIAL_WFS_ADMIN_USR&#8217;,&#8217;OE&#8217;)<br \/>\nand\u00a0\u00a0\u00a0 b.table_owner\u00a0 not in (&#8216;SYS&#8217;,&#8217;SYSTEM&#8217;,&#8217;SCOTT&#8217;,&#8217;OUTLN&#8217;,&#8217;MGMT_VIEW&#8217;,&#8217;FLOWS_FILES&#8217;,&#8217;MDSYS&#8217;,&#8217;WMSYS&#8217;,&#8217;APPQOSSYS&#8217;,&#8217;APEX_030200&#8242;,&#8217;OWBSYS_AUDIT&#8217;,&#8217;DBSNMP&#8217;,&#8217;OWBSYS&#8217;,&#8217;ORDDATA&#8217;,&#8217;ANONYMOUS&#8217;,&#8217;EXFSYS&#8217;,&#8217;XDB&#8217;,&#8217;ORDSYS&#8217;,&#8217;CTXSYS&#8217;,&#8217;ORDPLUGINS&#8217;,&#8217;SYSMAN&#8217;,&#8217;OLAPSYS&#8217;,&#8217;SI_INFORMTN_SCHEMA&#8217;,&#8217;SH&#8217;,&#8217;HR&#8217;,&#8217;BI&#8217;,&#8217;XS$NULL&#8217;,&#8217;IX&#8217;,&#8217;MDDATA&#8217;,&#8217;ORACLE_OCM&#8217;,&#8217;DIP&#8217;,&#8217;PM&#8217;,&#8217;APEX_PUBLIC_USER&#8217;,&#8217;SPATIAL_CSW_ADMIN_USR&#8217;,&#8217;SPATIAL_WFS_ADMIN_USR&#8217;,&#8217;OE&#8217;)<br \/>\nand\u00a0\u00a0\u00a0 a.table_name=b.table_name<br \/>\nand\u00a0\u00a0\u00a0 TRUNCATED = &#8216;NO&#8217;<br \/>\nand\u00a0\u00a0\u00a0 b.partition_name = a.partition_name<br \/>\nand\u00a0\u00a0\u00a0 ( TRUNC((INSERTS-DELETES)\/DECODE(a.num_rows, 0, 1, NULL, 1, a.num_rows)*100, 2) &gt; 10<br \/>\nor\u00a0\u00a0\u00a0\u00a0 TRUNC((INSERTS-DELETES+UPDATES)\/DECODE(a.num_rows, 0, 1, NULL, 1, a.num_rows)*100, 2) &gt; 10<br \/>\nor\u00a0\u00a0\u00a0\u00a0 num_rows is null )<br \/>\ngroup by a.TABLE_OWNER, a.TABLE_NAME )<br \/>\ngroup by owner, table_name<br \/>\norder by owner desc , table_name;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #ff0000;\"><strong>\ub610\ub2e4\ub978\u00a0\u00a0\ud14c\uc774\ube14 I\/O \ud655\uc778\ud558\ub294 \ucffc\ub9ac \ub85c\u00a0v$segment_statistics view\ub85c \uc870\ud68c\ud558\ub294 \ucffc\ub9ac\uc785\ub2c8\ub2e4.<\/strong><\/span><\/p>\n<p align=\"left\">\uc774 \ucffc\ub9ac\ub294 dba_tab_modifications\u00a0\ud14c\uc774\ube14\uc5d0\uc11c\u00a0DML\uc5d0 \uc758\ud574 \ubcc0\uacbd\ub41c \uac74\uc218\uc640<br \/>\ndba_tables\uc758\u00a0num_rows\ub97c \ube44\uad50\ud574\u00a010%\u00a0\uc774\uc0c1 \ubcc0\uacbd\ub41c \ud14c\uc774\ube14 \uc870\ud68c \ucffc\ub9ac\ub85c \ud655\uc815\uce58\ub77c\uace0 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"txc-textbox\">\n<p align=\"left\"><strong>select table_owner, m.table_name, num_rows,<\/strong><\/p>\n<p align=\"left\"><strong>round(num_rows\/10,0) &#8220;NUM_ROWS\/10&#8221;,<\/strong><\/p>\n<p align=\"left\"><strong>inserts+updates+deletes &#8220;to_changed&#8221;,<\/strong><\/p>\n<p align=\"left\"><strong>INSERTS,UPDATES,DELETES,TIMESTAMP,LAST_ANALYZED,<\/strong><\/p>\n<p align=\"left\"><strong>round(LAST_ANALYZED-TIMESTAMP,0) GAP<\/strong><\/p>\n<p align=\"left\"><strong>from dba_tab_modifications m, dba_tables t<\/strong><\/p>\n<p align=\"left\"><strong>where table_owner not in (&#8216;SYS&#8217;)<\/strong><\/p>\n<p align=\"left\"><strong>and t.table_name=m.table_name<\/strong><\/p>\n<p align=\"left\"><strong>and t.owner=m.table_owner<\/strong><\/p>\n<p align=\"left\"><strong>and round(num_rows\/10,0)-(inserts+updates+deletes)&lt;0<\/strong><\/p>\n<p align=\"left\"><strong>order by LAST_ANALYZED-TIMESTAMP;<\/strong><\/p>\n<\/div>\n<p>V$\ubdf0\ub294 \uc778\uc2a4\ud134\uc2a4 \uae30\ub3d9\ud6c4 \ubd80\ud130 \ub370\uc774\ud130\uac00 \ucd95\uc801\ub418\ub294 \uac12\uc774\uae30 \ub54c\ubb38\uc5d0,\u00a0\uc815\ud655\ud55c \uac12\uc774\ub77c\uae30 \ubcf4\ub2e4\ub294 \ub300\ub7b5\uc801\uc778 \ucc38\uc870\uc6a9 \uc785\ub2c8\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; \ud1b5\uacc4\uc815\ubcf4 \uac31\uc2e0 \uc2dd\ubcc4 &nbsp; alter table emp monitoring; &nbsp; statistics_level\uc774 typical \uc774\uc0c1 \uc124\uc815\uc2dc \uc624\ub77c\ud074\uc744 \ud14c\uc774\ube14\uc5d0 \ubc1c\uc0dd\ud558\ub294 dml\uc744 \ubaa8\ub2c8\ud130\ub9c1\ud55c\ub2e4. \uc218\uc9d1\ub41c \ud14c\uc774\ube14\ubcc4 DML\uc740 *_tab_modifications\ubdf0 \ub97c \ud1b5\ud574 \uc870\ud68c\ud560\uc218 \uc788\uc73c\uba70, insert,update,delete\ub294 \ub9c8\uc9c0\ub9c9 \ud1b5\uacc4\uc815\ubcf4\uac00 \uc218\uc9d1\ub41c \uc774\ud6c4\uc758 dml \ubc1c\uc0dd\ub7c9\uc774\ub2e4. \uc624\ub77c\ud074\uc740 \ubaa8\ub2c8\ud130\ub9c1 \ub300\uc0c1 \ud14c\uc774\ube14\uc5d0 10%\uc774\uc0c1 \ubcc0\uacbd\uc774 \ubc1c\uc0dd\ud588\uc744\ub54c \ud574\ub2f9 \ud14c\uc774\ube14\uc744 stale \uc0c1\ud0dc(*_tab_statistics \ubdf0\uc5d0\uc11c stale_stats=yes)\ub85c \ubcc0\uacbd \ud558\uace0, gather_database_stats \ub610\ub294 gather_schema_stats \ud504\ub85c\uc2dc\uc800\ub97c \ud638\ucd9c\ud558\uba74\uc11c option [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2499,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"spay_email":""},"categories":[9],"tags":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/haisins.synology.me\/wordpress\/wp-content\/uploads\/2018\/01\/digital4-300x241.jpg?fit=300%2C241","amp_enabled":true,"_links":{"self":[{"href":"http:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2556"}],"collection":[{"href":"http:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2556"}],"version-history":[{"count":5,"href":"http:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2556\/revisions"}],"predecessor-version":[{"id":2561,"href":"http:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2556\/revisions\/2561"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=\/wp\/v2\/media\/2499"}],"wp:attachment":[{"href":"http:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2556"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2556"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2556"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}