视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Oracle普通表临时表awr统计分析
2020-11-09 11:45:10 责编:小采
文档


业务需要,我在oracle中建了一个名为 t_0_mtbuf 的表,用建普通表的语句建的,其实这个表的作用是临时表的作用,即:java中每次s

业务需要,我在Oracle中建了一个名为 t_0_mtbuf 的表,用建普通表的语句建的,其实这个表的作用是临时表的作用,即:

java中每次select 1500条出来,再在循环中逐个insert 进sqlserver数据库,然后在oracle中将这条记录删掉。

但是这样运行了一段时间,今天,表里缓存了6W多条数据,之前是几十甚至100的走的,现在是2条,1条的走,数据走不动了,问题很严重。

于是,高手让我执行了一句:

[sql]

  • 执行这句话,花了一段时间,执行完后,速度神奇的起来了!

    --这条语句重新分析表的统计信息,

    举个例子,

    你的表有 10 条记录,已经删除 5 条了,可是数据库并不知道你删除 5 条,他记录还10条

    这样就发生冲突了,这样数据库就容易停在那里

    这条语句是告诉 oracle,给我重新统计一下 表的信息,两边都一致了,问题也就解决了

    --问:那有没有比较好的删除记录的语句,直接删掉之后,两边都同步的

    --答:使用 truncate 删除表,,但是将表清空了, 不能像 delete 可以加 where 条件保留部分记录

    --问:记录要一条条删除

    --答:那就加 commit ,删除一定要提交。或者做一下控制,累积删除 200 条 commit 一次

    --问:我想不通,我那个表的数据,不多,才6W条。没有commit,最多的也只1500条,怎么会就走不动了

    --答:这个是把 普遍数据表 作为临时表 经常遇到的问题,频繁的增加删除 经常容易造成访问非常慢的情况。

    查看某表物理大小,分区:

    [sql]

  • 把emp 换成你的表名,单引号中表名要大写。一般情况下300w 数据是300m左右。一天300m,一个月约10g 左右。可以采用按月进行分区,一年12 张表每个月一张表,每个分区表一天是一个子分区。

    awr统计分析

    另外,没有找到这个原因之前,要分析到底什么引起了数据走不动的问题:使用awr统计,看是什么导致wait

    [sql]

  • 看看有没有directories,没有的话 要建一个

    [sql]

    [sql]

  • 建一个,后面是路径,保证要有这个文件夹

    [sql]

    [sql]

  • 然后在d:\dump路径 找到awr.dmp

    下载本文
    显示全文
    专题