• Oracle一个奇怪的问题


    Oracle一个奇怪的问题

    用如下方式删除重复数据,将要删除的数据的rowid暂存至表zkm.rid_tmp,根据rowid再去删除数据。

    没10000条commit一次。

    declare
        cursor date_query_cur is
            select rid from zkm.rid_tmp;
        TYPE rowid_table_type is table of rowid index by pls_integer;
        v_rowid rowid_table_type;
    begin
        open date_query_cur;
        loop
        fetch date_query_cur bulk collect into v_rowid limit 10000;
        exit when v_rowid.count=0;
        forall j in v_rowid.first .. v_rowid.last
            DELETE FROM zkm.t WHERE rowid = v_rowid(j);
        commit;
        end loop;
        close date_query_cur;
        end;
    /

    需要注意几点:

    1.如下表所示,每半个小时执行次数在30-60次之间,证明通过dba_hist_sqlstat.executions_delt所统计的delete并不是执行一次delete这里就算一次,而是10000算一次(因为commit的原因?还是通过游标10000次删除的原因?)。

    从"Rows Pers"=10000侧面可以看出来。因为正常通过rowid去delete只会删除1条数据,这里都10000了。

        SnapId Date time                      PLAN_HASH_VALUE MODULE                         ETime(s) Pers CTime(s) Pers Executions  Rows Pers Buffer Gets Pers Physical Reads Pers IO Wait Pers cc_wait Pers ap_wait Pers cl_wait Pers
    ---------- ------------------------------ --------------- ------------------------------ ------------- ------------- ---------- ---------- ---------------- ------------------- ------------ ------------ ------------ ------------
         54175 2022-05-26 09:30:33-10:00:36        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        46.1386836    3.29830769         39      10000       259332.231          7000.25641   43.0752281   .000001641            0   .145492154
         54176 2022-05-26 10:00:36-10:30:40        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        54.8434407    3.43648485         33      10000           257631          8705.06061    51.719808            0            0    .15965203
         54177 2022-05-26 10:30:40-11:00:43        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        46.0453049    3.18607692         39      10000       259661.179          7254.46154   43.1752654            0            0   .064074949
         54178 2022-05-26 11:00:43-11:30:01        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        51.6431527    3.37805882         34      10000       264151.735          8074.17647   48.5969076            0            0   .103723912
         54179 2022-05-26 11:30:01-12:00:07        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        45.2379832         3.175         40      10000        261219.35            7062.475   42.3765546   .000000675            0   .058194375
         54180 2022-05-26 12:00:07-12:30:12        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        37.3985019      2.948125         48      10000       260330.333             5669.25    34.673717   9.3750E-07            0   .049348208
         54181 2022-05-26 12:30:12-13:00:18        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        52.9956311    3.32997059         34      10000       260698.794          8656.64706   49.9966299            0            0   .105279559
         54182 2022-05-26 13:00:18-13:30:01        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        43.3067134    3.04934146         41      10000       260111.317          6958.87805   40.5663086   2.0732E-06            0   .047719585
         54183 2022-05-26 13:30:01-14:00:04        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        40.0942986    2.98077778         45      10000         262733.2          6318.22222   37.3756915            0            0   .046632067
         54184 2022-05-26 14:00:04-14:30:07        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        47.3907737    3.28244737         38      10000       263101.974          7473.23684   44.4342167            0            0   .075710421
         54185 2022-05-26 14:30:07-15:00:11        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        47.3892795    3.19971053         38      10000       256644.605          7308.52632    44.507671            0            0   .071251632
         54186 2022-05-26 15:00:11-15:30:14        1357163612 sqlplus@xxxxx1 (TNS V1-V3)         62.108705    3.67093103         29      10000       259787.241          10156.8276   58.8473315   1.1034E-06            0   .144354448
         54187 2022-05-26 15:30:14-16:00:18        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        54.5762394    3.44309091         33      10000       258143.606          8593.39394   51.5013165   .000321545            0   .085701818
         54188 2022-05-26 16:00:18-16:30:21        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        46.0659272    3.16574359         39      10000       261624.923          7087.41026   43.1582399            0            0   .072834667
         54189 2022-05-26 16:30:21-17:00:05        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        63.7958419    3.86064286         28      10000           268707          10254.4286   60.3881478   1.6071E-06            0   .128788929
         54190 2022-05-26 17:00:05-17:30:10        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        54.6321264    3.44857576         33      10000       256531.273          8575.51515   51.5924517   1.1515E-06            0   .062090879
         54191 2022-05-26 17:30:10-18:00:16        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        43.0344876    3.15516667         42      10000       263830.786          6626.02381    40.198422   1.1905E-06            0   .040858024
         54192 2022-05-26 18:00:16-18:30:22        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        52.9356955    3.44823529         34      10000       263235.941          8301.14706   49.8703773            0            0   .059861765
         54193 2022-05-26 18:30:22-19:00:28        1357163612 sqlplus@xxxxx1 (TNS V1-V3)          43.05601    3.07019048         42      10000       257652.095          6667.28571   40.2641769   1.2143E-06            0   .067352214
         54194 2022-05-26 19:00:28-19:30:34        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        44.9886602       3.03285         40      10000         261991.3             7057.15   42.2368728            0            0   .071019375
         54195 2022-05-26 19:30:34-20:00:40        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        58.1630376    3.36377419         31      10000       246484.581          9419.09677   55.0887976   1.1613E-06            0   .183723806
         54196 2022-05-26 20:00:40-20:30:46        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        40.0961685    2.77666667         45      10000       244056.556          6202.97778   37.5336216   1.3778E-06            0   .087194444
         54197 2022-05-26 20:30:46-21:00:51        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        45.0960939       2.88625         40      10000       243245.325            7343.175   42.4550479            0            0   .086240975
         54198 2022-05-26 21:00:51-21:30:55        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        43.8887256    2.91770732         41      10000       251922.317                6735   41.2121246            0            0      .078502
         54199 2022-05-26 21:30:55-22:00:04        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        49.9309978    3.19651429         35      10000       257119.457          7886.02857   47.0285205            0            0   .090307257
         54200 2022-05-26 22:00:04-22:30:02        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        48.4763627    3.52978378         37      10000       261523.892          7308.18919   45.0127491   .026104568            0   .365836892
         54201 2022-05-26 22:30:02-23:00:05        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        45.0044974       3.91405         40      10000        264870.35            6375.675   40.2427313    .17831425            0    1.2574678
         54202 2022-05-26 23:00:05-23:30:09        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        40.9839712    3.50954545         44      10000       242537.932          5910.34091   37.0182268   1.4318E-06            0   1.04184252
         54203 2022-05-26 23:30:09-00:00:12        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        32.1418003    2.92241071         56      10000       234981.625          4582.57143   28.9603985   .000129304            0    .65265275
         54204 2022-05-27 00:00:12-00:30:15        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        28.0874542    2.78832813         64      10000       235763.344          3952.96875    24.995487   5.3125E-07            0   .652394938
         54205 2022-05-27 00:30:15-01:00:19        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        30.0844776    2.45908333         60      10000       219708.067          4164.26667   27.5920389            0            0   .292613483
         54206 2022-05-27 01:00:19-01:30:22        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        30.9982297    2.69839655         58      10000       230677.569          4228.37931   28.1704383   1.3448E-06            0   .446379155
         54207 2022-05-27 01:30:22-02:00:26        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        33.9273797    2.69313208         53      10000       220863.151          4988.16981   31.2512629   2.4528E-07            0   .314962189
         54208 2022-05-27 02:00:26-02:30:29        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        27.2377911    2.50465152         66      10000       225453.985          3948.62121   24.5766937   6.0606E-07            0   .401365197
         54209 2022-05-27 02:30:29-03:00:03        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        32.9091917    2.86587037         54      10000       246900.519           4475.2963   29.8255186   3.1481E-07            0   .527375444
         54210 2022-05-27 03:00:03-03:30:09        1357163612 sqlplus@xxxxx1 (TNS V1-V3)         29.522846    2.89713115         61      10000        254165.23          4077.29508   26.3008325   1.8689E-06            0   .596785951
         54211 2022-05-27 03:30:09-04:00:15        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        17.8178953    2.08526733        101      10000       208781.366          2312.61386   15.5784641   .000012297            0    .31921401
         54212 2022-05-27 04:00:15-04:30:21        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        24.3832962    2.64893243         74      10000       254837.703          3074.86486   21.5759746   3.3378E-06            0   .409791257
         54213 2022-05-27 04:30:21-05:00:27        1357163612 sqlplus@xxxxx1 (TNS V1-V3)        9.25794415    1.55796933        163 9950.52761       180128.276          1057.78528   7.61990873   1.6503E-06            0   .167205896

    另外,awrsqlrpt也可以看出(单次消耗都挺高,一次delete不可能那么高消耗),

    Stat NameStatement TotalPer Execution% Snap Total
    Elapsed Time (ms) 517,447,646 34,723.37 79.42
    CPU Time (ms) 44,606,830 2,993.35 47.61
    Executions 14,902    
    Buffer Gets 3,865,615,424 259,402.46 76.92
    Disk Reads 77,431,174 5,196.03 42.44
    Parse Calls 0 0.00 0.00
    Rows 149,020,000 10,000.00  
    User I/O Wait Time (ms) 473,901,091    
    Cluster Wait Time (ms) 3,551,692    
    Application Wait Time (ms) 0    
    Concurrency Wait Time (ms) 33,916    
    Invalidations 0    
    Version Count 7,824    
    Sharable Mem(KB) 226,666    

     2.version count特别高,目前通过

    select * from v$sql_shared_cursor where sql_id='c9u088gzpgtxx';

    暂时确定是统计信息更新导致的。

    v$sql_shared_cursor.roll_invalid_mismatch几乎等于'Y',并且v$sql_shared_cursor.reason为:

    <ChildNode><ChildNumber>7</ChildNumber><ID>34</ID><reason>Rolling Invalidate Window Exceeded(2)</reason><size>0x0</size><details>already_processed</details></ChildNode> 
  • 相关阅读:
    文档管理项目
    根据商品名称、价格区间检索商品的SQL语句
    ASP.NET MVC进阶三
    ASP.NET MVC进阶二
    vscode编写html,常用快捷方式与插件
    bpexpdate – 更改映像目录库中备份的截止日期以及介质目录库中介质的截止日期nbu
    Netbackup用于技术支持的问题报告(报障模版)
    netbackup 8.1安装注意事项
    金融的本质是什么?终于有人讲清楚了!(源于网络)
    nbu集群Alwayson相关问题
  • 原文地址:https://www.cnblogs.com/PiscesCanon/p/16318483.html
Copyright © 2020-2023  润新知