Heim > Datenbank > MySQL-Tutorial > Hauptteil

Oracle普通表 临时表 awr统计分析

WBOY
Freigeben: 2016-06-07 17:09:31
Original
1087 Leute haben es durchsucht

业务需要,我在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

    linux

  • Quelle:php.cn
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!