精华内容
下载资源
问答
  • 空间管理 - 碎片化问题及解决思路

    千次阅读 2019-02-21 23:48:00
    空间碎片化:空间(硬盘物理空间、内存等)在长时间使用后,造成空间块不连续的现象,叫做空间碎片化。空间使用的时间越长,碎片化就越严重。

    空间管理 - 碎片化问题及解决思路


    如需转载请标明出处:http://blog.csdn.net/itas109
    QQ技术交流群:129518033


    相关:

    • 数据库表空间释放(Mysql、SQLite、PosgreSQL、Oracle)
    • 操作系统空间回收(Windows、Linux)
    • C++指针空间回收
    • Java等垃圾回收机制
    • 硬盘空间、内存空间

    1.什么是空间碎片化?

    空间碎片化:空间(硬盘物理空间、内存等)在长时间使用后,造成空间块不连续的现象,叫做空间碎片化。空间使用的时间越长,碎片化就越严重。

    2.为什么会产生碎片?

    2.1 空间使用的过程

    A.空间从来未被使用的阶段
    这个阶段,未使用的空间是连续的。这时,系统是没有碎片的。

    B.空间开始被使用
    这个阶段,由于空间很充足,所以空间分配也不是问题

    C.空间被删除
    由于空间的删除基本不可能使剩余的空间连续,所以这个阶段是产生碎片的阶段

    D.空间再次被使用
    请求新的空间使用时,系统会根据剩余的空间情况,分配合适的空间给新的请求。但是,由于总有空间不能满足新的请求,所以这个阶段总会加剧碎片化问题

    E.重复空间使用和删除的过程

    2.2 碎片化原因

    经过上述过程的描述,我们可以知道碎片化问题正是由于空间不断被使用和释放导致的。因此,我们得到一个很无奈的结论:

    只要空间一直在使用,空间的碎片化问题就不可避免。
    

    3.如何做碎片优化?

    碎片优化就是将无序的空间整理成有序的空间,尽可能的保持空间从未被使用过的状态。
    

    3.1 手动优化

    3.1.1 设置合理的空间管理机制

    设置合理的空间管理机制,如操作系统的分页机制

    3.1.2 尽可能使用连续空间

    使用的时候进行合理的空间请求,如字节对齐引起的变量的声明顺序不同导致占用的总内存不同问题

    3.1.3 手动整理空间法

    将占用的空间整理成连续

    3.1.4 暴力重置法

    将需要整理的空间进行备份,清空整个空间,将备份还原,删除备份

    3.2 自动优化

    3.2.1 定时优化

    在合适的时间对空间进行整理

    3.2.2 合理化重复使用

    当有新的空间请求时,合理的重复使用空间

    4.应用

    4.1 数据库

    数据删除后,空间依旧被占用问题

    4.1.1 手动整理空间法

    MySQL:OPTIMIZE TABLE
    PosgreSQL:vacuum
    SQLite:vacuum
    Oracle:Shrink Table

    4.1.2 暴力重置法

    数据备份,清空数据库,备份还原,清空备份

    4.2 操作系统

    苹果操作系统从文件系统底层和操作系统调度上就将文件碎片化的问题给屏蔽掉

    4.3 指针问题

    指针被释放后,表示这块内存可以被操作系统重新分配,但是指针还是指向这块儿内存的。虽然指针还是指向原来的位置,但是那一块内存随时都可能会被回收。

    关于C++中delete释放内存时效性问题

    4.4 Java等的内存回收机制

    相对于指针的释放问题,Java的做法与苹果操作系统类似,采用有系统处理

    5.为什么不实时整理碎片呢?

    如果实时整理碎片,就会导致读写效率更低。因此,一般来说,进行删除操作后,对空间进行标记,表明该空间可以再次被使用(空间的释放也不是实时处理),在必要或者周期内进行整理。

    6.处理碎片化的意义

    提高空间的读写效率
    

    Reference:
    NULL

    觉得文章对你有帮助,可以扫描二维码捐赠给博主,谢谢!
    在这里插入图片描述
    如需转载请标明出处:http://blog.csdn.net/itas109
    QQ技术交流群:129518033


    License

    License under CC BY-NC-ND 4.0: 署名-非商业使用-禁止演绎

    展开全文
  • 大部分时间都在刷微博、玩微信。你有没有这样的体会,你会时不时习惯性的掏出手机,不自觉的打开微博微信APP,尽管你在几分钟前刚刚打开过。据微信发布的用户使用报告说,平均每天打开微信10次以上的用户达到55.

    自从有了智能手机,我们的生活就发生了很大改变,身边多了很多“低头党”包括我自己。早晨坐公交低头刷手机、上厕所半天不出来低头刷手机、朋友聚餐也低头刷手机、晚上睡觉前继续低头刷手机……刷手机都在干嘛呢?大部分时间都在刷微博、玩微信。

    你有没有这样的体会,你会时不时习惯性的掏出手机,不自觉的打开微博微信APP,尽管你在几分钟前刚刚打开过。据微信发布的用户使用报告说,平均每天打开微信10次以上的用户达到55.2%,竟然有四分之一的用户每天打开微信30次以上。

    你会说你在利用碎片化时间啊,以此证明你多么重视时间的利用。孰不知,你以为你在利用碎片化时间,实际上你的时间却被碎片化了。

    不是说这些时间和场合不能拿出手机,而是你拿出手机用来干嘛。先看看什么是“碎片化”,这个词是“微博+智能手机上网”这个典型应用和用户习惯带火的一个词。通常碎片化时间就是指没有安排任何工作,未被计划的时间,这段时间零散、无规律。所以问题就来了,当我们整天低头刷手机,美其名曰“利用碎片化时间”的时候,我们首先要搞清楚你利用的是真的碎片化时间吗?

    1、判断真实的碎片化时间

    这个是我们是否在有效利用碎片化时间的最关键的地方:正确的判断什么才是碎片化时间。而我们不少时间其实并非碎片化时间,只是你没有计划好罢了。我们在阅读不少优秀的人时间管理方法的时候,会发现他们都非常重视两段时间,一是清晨起床,二是晚间临睡前。因为这两段你可以比较集中的获得至少一个小时以上的整段时间,时间应用效率高的人,会把此段时间计划的很好,而更多的人却用来把它们碎片化,早晨起床要么赖在床上、要么久蹲厕所,干嘛呢?刷微博、刷微信。而晚上呢,窝在被窝里,继续刷微博、刷微信直到午夜。

    要记住清晨和临睡前是有规律、可计划的非碎片化时间。以此可以类推,如果你每天是公交或者地铁上下班,路上时间也有半小时以上的话,它也算是有规律、可计划的是时间,你如果仍是把这段时间用于无目的的刷手机,自然也谈不上是利用碎片化时间,而是你把自己的时间碎片化。

    所以,好好的整理下你每天的时间,你会发现那些有规律、可计划的,并非碎片化的时间,你可以用来做很多有用的事情,而不仅仅只是刷刷微信、微博或者新闻客户端啥的。

    2、利用有规律、可计划的时间做点啥

    先说说那些被我们误当作碎片化的时间该做点啥吧,尤其是上文说到的早、晚时间段。一般意义上,早晨适合做计划、晚上适合做总结,归根结底都是为了自我的能力提升。自我提升实际上是个很“自我”的事情,每个人的定义都不同,这个没有好坏对错之分,只有特点的不同。大家结合自己的实际情况,分析一下工作和生活方面现存的问题,展望一下未来的发展方向,就能大致有一些眉目了。一般情况下,我建议从下面几个方向考虑。

    健康:身体是革命的本钱,把跑步或健身早日提升日程吧。

    当前岗位所需的技能:先把眼前的事情做好永远是最重要的。

    来发展所储备的技能:比如管理、人力、财务、沟通、办公软件、思维模式、逻辑、学习能力等等。早一天打算,便多一分轻松,为未来多做一些累积。

    个人兴趣技能:比如绘画、乐器等等能让自己开心、提升内涵的各种兴趣,也就是吴晓波说的把时间浪费在美好的事情上。

    家庭:这一点大家很容易就忽略。多花些时间,多用心有效的陪伴家人,多学习些和家人相处的技巧和能力。

    3、利用碎片化时间做点啥

    再说说那些上厕所、等人、出差途中等等没规律的真正碎片化时间怎么利用吧。合理的利用碎片化时间不单是技巧的结合,而是一种生活习惯,平时就准备好,这样才能在随时遇到碎片化时间的时候,自然而然的就利用上。下面罗列下我给你的十条可以安排在碎片化时间做的事情,希望能给你启发,以此来找到最适合你的。

    随身带本纸质书,如果嫌重不方便的话,可以带着平板或Kindle,哪怕是手机,下载你感兴趣的书、公开课等。

    你也可以准备个MP3,或者用手机里的蜻蜓FM等APP软件,听听有声书或者英语广播、财经广播等等。

    随身带笔记本和笔,要是嫌麻烦,那就下载有道笔记或者印象笔记等APP,有空的时候,记些想法,列一些待办事项清单。

    准备个电话清单,都是要打电话的人。比如公司客户、家人、朋友,空闲时打个电话交流下感情。

    利用几分钟的时间,做个扩展运动,锻炼下身体。

    平时上网看到的好文章,用稍后阅读功能(比如微信的收藏功能、印象笔记的收集功能等等),当时没时间认真阅读,这个时候可以好好的读一下。

    做个昨天或上周的总结,记到笔记上或印象笔记上。

    平时订阅一些博客、微信公共号,这个时间可以集中阅读一下。

    给家人或朋友准备个礼物清单,在空闲时用手机上网挑些有特色的创意礼物,买完放到办公室里。等有需要的时候立刻就可以用。

    给远在老家的父母打个电话,哪怕简单的问下他们在干嘛。或者给老婆或老公发条消息,让他/她知道你再想他/她。

    最后,再给大家推荐几本关于时间管理和个人管理的书籍:

    阿兰·拉金:《如何掌控自己的时间和生活》

    简·博克、莱诺拉·袁:《拖延心理学》

    洛塔尔·赛韦特:《把时间留给最重要的事》

    史蒂芬·柯维:《高效能人士的七个习惯》

    展开全文
  • oracle 数据库碎片化管理

    千次阅读 2015-02-27 15:03:01
    oracle数据库碎片化管理包括表空间碎片、表碎片以及索引碎片的查找和解决办法
    
    ********************************************************************************
    1.表空间碎片
    ********************************************************************************
    
    ----1.查看fsfi值
    
    select a.tablespace_name,
    trunc(sqrt(max(blocks)/sum(blocks))* (100/sqrt(sqrt(count(blocks)))),2) fsfi 
    from dba_free_space  a,dba_tablespaces b
    where a.tablespace_name=b.tablespace_name
    and b.contents not in('TEMPORARY','UNDO','SYSAUX')
    group by A.tablespace_name 
    order by fsfi; 
    
    如果FSFI小于<30%则表空间碎片太多.
    
    
    fsfi的最大可能值为100(一个理想的单文件表空间)。随着范围的增加,fsfi值缓慢下降,而随着最大范围尺寸的减少,
    fsfi值会迅速下降。
    
    
    
    ---2.查看dba_free_space
    
    dba_free_space 显示的是有free 空间的tablespace ,如果一个tablespace 的free 空间不连续,
    那每段free空间都会在dba_free_space中存在一条记录。如果一个tablespace 有好几条记录,
    说明表空间存在碎片,当采用字典管理的表空间碎片超过500就需要对表空间进行碎片整理。
    
    select a.tablespace_name ,count(1) 碎片量 from 
    dba_free_space a, dba_tablespaces b 
    where a.tablespace_name =b.tablespace_name
    and b.contents not in('TEMPORARY','UNDO','SYSAUX')
    group by a.tablespace_name
    having count(1) >20
    order by 2;
    
    
    
    
    -----3.按照表空间显示连续的空闲空间
    
    ========
    Script. tfstsfgm
    ========
    SET ECHO off 
    REM NAME:TFSTSFRM.SQL 
    REM USAGE:"@path/tfstsfgm" 
    REM ------------------------------------------------------------------------ 
    REM REQUIREMENTS: 
    REM    SELECT ON DBA_FREE_SPACE 
    REM ------------------------------------------------------------------------ 
    REM PURPOSE: 
    REM    The following is a script. that will determine how many extents 
    REM    of contiguous free space you have in Oracle as well as the  
    REM total amount of free space you have in each tablespace. From  
    REM    these results you can detect how fragmented your tablespace is.  
    REM   
    REM    The ideal situation is to have one large free extent in your  
    REM    tablespace. The more extents of free space there are in the  
    REM    tablespace, the more likely you  will run into fragmentation  
    REM    problems. The size of the free extents is also  very important.  
    REM    If you have a lot of small extents (too small for any next   
    REM    extent size) but the total bytes of free space is large, then  
    REM    you may want to consider defragmentation options.  
    REM ------------------------------------------------------------------------ 
    REM DISCLAIMER: 
    REM    This script. is provided for educational purposes only. It is NOT  
    REM    supported by Oracle World Wide Technical Support. 
    REM    The script. has been tested and appears to work as intended. 
    REM    You should always run new scripts on a test instance initially. 
    REM ------------------------------------------------------------------------ 
    REM Main text of script. follows: 
     
    create table SPACE_TEMP (   
     TABLESPACE_NAME        CHAR(30),   
     CONTIGUOUS_BYTES       NUMBER)   
    /   
       
    declare   
      cursor query is select *   
              from dba_free_space   
                      order by tablespace_name, block_id;   
      this_row        query%rowtype;   
      previous_row    query%rowtype;   
    total           number;   
       
    begin   
      open query;   
      fetch query into this_row;   
      previous_row := this_row;   
      total := previous_row.bytes;   
      loop   
     fetch query into this_row;   
         exit when query%notfound;   
         if this_row.block_id = previous_row.block_id + previous_row.blocks then   
            total := total + this_row.bytes;   
            insert into SPACE_TEMP (tablespace_name)   
                      values (previous_row.tablespace_name);   
         else   
            insert into SPACE_TEMP values (previous_row.tablespace_name,   
                   total);   
            total := this_row.bytes;   
         end if;   
    previous_row := this_row;   
      end loop;   
      insert into SPACE_TEMP values (previous_row.tablespace_name,   
                               total);   
    end;   
    .   
    /   
       
    set pagesize 60   
    set newpage 0   
    set echo off   
    ttitle center 'Contiguous Extents Report'  skip 3   
    break on "TABLESPACE NAME" skip page duplicate   
    spool contig_free_space.lis   
    rem   
    column "CONTIGUOUS BYTES"       format 999,999,999   
    column "COUNT"                  format 999   
    column "TOTAL BYTES"            format 999,999,999   
    column "TODAY"   noprint new_value new_today format a1   
    rem   
    select TABLESPACE_NAME  "TABLESPACE NAME",   
           CONTIGUOUS_BYTES "CONTIGUOUS BYTES"   
    from SPACE_TEMP   
    where CONTIGUOUS_BYTES is not null   
    order by TABLESPACE_NAME, CONTIGUOUS_BYTES desc;   
       
    select tablespace_name, count(*) "# OF EXTENTS",   
             sum(contiguous_bytes) "TOTAL BYTES"    
    from space_temp   
    group by tablespace_name;   
       
    spool off   
       
    drop table SPACE_TEMP   
    /  
    
    
    ********************************************************************************
    2.表碎片
    ********************************************************************************
    
    ----方法1:显示碎片率最高的200个表(基于统计信息是否准确)
    
    col frag format 999999.99
    col owner format a30;
    col table_name format a30;
    select * from (
    select a.owner,
    a.table_name,
    a.num_rows,
    a.avg_row_len * a.num_rows total_bytes,
    sum(b.bytes),
    trunc((a.avg_row_len*a.num_rows)/sum(b.bytes),2)*100||'%'  frag
    from dba_tables a,dba_segments b
    where a.table_name=b.segment_name
    and a.owner=b.owner
    and a.owner not in
          ('SYS','SYSTEM','OUTLN','DMSYS','TSMSYS','DBSNMP','WMSYS',
           'EXFSYS','CTXSYS','XDB','OLAPSYS','ORDSYS','MDSYS','SYSMAN')
        group by a.owner,a.table_name,a.avg_row_len,a.num_rows
        having a.avg_row_len*a.num_rows/sum(b.bytes)<0.7
        order by sum(b.bytes) desc)
      where rownum<=200;
    
    
    ---方法2:
    
    -- 收集表统计信息
    exec dbms_stats.gather_table_stats(ownname=>'SCOTT',tabname=> 'TBLORDERS');
    
    -- 确定碎片程度
    SELECT table_name, trunc(ROUND ((blocks * 8), 2)/1024,2) "High water levelM",
       trunc(ROUND ((num_rows * avg_row_len / 1024), 2)/1024,2) "Real  used spaceM",
       trunc(ROUND ((blocks * 10 / 100) * 8, 2)/1024,2) "Reserve space(pctfree) M",
      trunc( ROUND ((  blocks * 8
               - (num_rows * avg_row_len / 1024)
               - blocks * 8 * 10 / 100
              ),
              2
             ) /1024,2) "Waste spaceM"
      FROM dba_tables
      WHERE table_name = 'TBLORDERS';
    
    
    
    ********************************************************************************
    3.索引碎片
    ********************************************************************************
    
    ---1..查看索引高度为2并且索引大小超过20M的索引
    
    
    select id.tablespace_name,
      id.owner,
      id.index_name,
      id.blevel,
      sum(sg.bytes)/1024/1024,
      sg.blocks,
      sg.extents
    from dba_indexes id,dba_segments sg
    where id.owner=sg.owner
    and id.index_name=sg.segment_name
    and id.tablespace_name=sg.tablespace_name
    and id.owner not in
          ('SYS','SYSTEM','USER','DBSNMP','ORDSYS','OUTLN')
    and sg.extents>100
    and id.blevel>=2
    group by id.tablespace_name,
    id.owner,
    id.index_name,
    id.blevel,
    sg.blocks,
    sg.extents
    having sum(sg.bytes)/1024/1024>20;
    
    
    
    
    ---2.analyze index方法(会锁表)
    
    analyze index index_name validate structure;
    
    select del_lf_rows*100/decode(lf_rows,0,1,lf_rows) pct_deleted from index_stats;
    
    如果pct_deleted>20%说明索引碎片严重.
    
    
    
    
    
    
    ********************************************************************************
    4.automatic segment advisor 
    ********************************************************************************
    
    数据表上频繁的进行插入、更新和删除动作会产生表空间碎片。Oracle可在表或索引上执行Segment shrink。
    使得segment的空闲空间可用于表空间中的其它segment,可改善DML性能。
    
    调用Segment Advisor对指定segment执行增长趋势分析以确定哪些Segment受益于Segment shrink。
    执行shrink操作,Segment Advisor推荐启用表的ROW MOVEMENT
    
    SQL> alter table scott.tblorders enable row movement;
    
    
    variable id number;
    begin
      declare
      name varchar2(100);
      descr varchar2(500);
      obj_id number;
      begin
      name:='Manual_tblorders';
      descr:='Segment Advisor Example';
    
      dbms_advisor.create_task (
        advisor_name     => 'Segment Advisor',
        task_id          => :id,
        task_name        => name,
        task_desc        => descr);
    
      dbms_advisor.create_object (
        task_name        => name,
        object_type      => 'TABLE',
        attr1            => 'SCOTT',
        attr2            => 'TBLORDERS',
        attr3            => NULL,
        attr4            => NULL,
        attr5            => NULL,
        object_id        => obj_id);
    
      dbms_advisor.set_task_parameter(
        task_name        => name,
        parameter        => 'recommend_all',
        value            => 'TRUE');
    
      dbms_advisor.execute_task(name);
      end;
    end; 
    /
    
    
    
    ---删除执行计划
    declare name varchar2(100);
    begin
      name:='Manual_tblorders';
     DBMS_ADVISOR.DELETE_TASK (name);
     end;
     /
    
    ---手动执行计划
    
    declare name varchar2(100);
    begin
      name:='Manual_tblorders';
    dbms_advisor.execute_task(name);
     end;
     /
    
    NOTE:如果执行计划结果中已经有数据则不能直接手动执行需要删除再执行
    
    
    ---查看手动新建的计划是否已经执行完成
    
    select task_id, task_name, status,advisor_name,created from dba_advisor_tasks
    where owner = 'SYS'   and task_name='Manual_tblorders' and advisor_name = 'Segment Advisor' ;
    
    
    
    
    
    select af.task_name, ao.attr2 segname, ao.attr3 partition, ao.type, af.message 
      from dba_advisor_findings af, dba_advisor_objects ao
      where ao.task_id = af.task_id
      and ao.object_id = af.object_id
      and af.task_id=&task_id;
    
    
    ----只查询可以进行shrink操作的对象
    select  f.task_name, o.attr2 segname, o.attr3 partition, o.type, f.message 
    from dba_advisor_findings f, dba_advisor_objects o
    where o.object_id = f.object_id
    and o.task_name=f.task_name
    --and f.message like '%shrink%'
    and f.message like '%收缩%'
    and f.task_id=&task_id
    order by f.impact desc;
    
    
    
    ---查看automatic segment advisor的recommendations结果
    
    select tablespace_name, segment_name, segment_type, partition_name,
    recommendations, c1 from
    table(dbms_space.asa_recommendations('FALSE', 'FALSE', 'FALSE'));
    
    
    
    
    ********************************************************************************
    5. 碎片整理方法
    ********************************************************************************
    
    ------------------------------------------------*
    5.1表空间碎片整理
    ------------------------------------------------*
    
    alter tablespace users coalesce;
    
    
    
    
    ------------------------------------------------*
    5.2表碎片整理
    ------------------------------------------------*
    
    ---方法1:exo/imp或data pump数据泵技术
    
    
    
    ---方法2:CTAS
    
    create table newtable as select * from oldtable;
    
    drop table oldtable;
    
    rename table newtable to oldtable;
    
    
    
    ----方法3:move tablespace技术
    
    alter table <table_name> move tablespace <newtablespace_name>;
    
    
    ----方法4:shrink
    
    alter table <table_name> enable row movement;  
    
    alter table <table_name> shrink space cascade;  --压缩表以及相关数据段并下调HWM
    
    alter table <table_name> shrink space compact;  --只压缩数据不下调HWM,不影响DML操作
    
    alter table <table_name> shrink   space;  --下调HWM,影响DML操作
    
    
    
    
    ----方法5:online redefinition
    
    --online redefinition具有的应用场景:
    
    1).Online table redefinition enables you to:
    
    2).Modify the storage parameters of a table or cluster
    
    3).Move a table or cluster to a different tablespace
    
    4).Add or drop partitioning support (non-clustered tables only)
    
    5).Change partition structure
    
    6).Change physical properties of a single table partition, including moving it to a different tablespace in the same schema
    
    7).Change physical properties of a materialized view log or an Oracle Streams Advanced Queueing queue table
    
    8).Add support for parallel queries
    
    9).Re-create a table or cluster to reduce fragmentation
    
    10).Convert a relational table into a table with object columns, or do the reverse.
    
    11).Convert an object table into a relational table or a table with object columns, or do the reverse.
    
    
    ---整理步骤
    
    --步骤1:检测表是否具有按主键进行ONLINE REDIFINITION能力
    
    BEGIN
    DBMS_REDEFINITION.CAN_REDEF_TABLE('scott','t1',
          DBMS_REDEFINITION.CONS_USE_PK);
    END;
    /
    
    
    --步骤2:新建一张同结构的临时表
    
    create table scott.tp1 tablespace ocpyang
    as
    select * from scott.t1 where 1=2;
    
    
    
    --步骤3:启动ONLINE REDIFINITION
    
    BEGIN
    DBMS_REDEFINITION.START_REDEF_TABLE('scott', 't1','tp1',
           '',
           dbms_redefinition.cons_use_pk);
    END;
    /
    
    
    --步骤4:Copy dependent objects. (Automatically create any triggers, indexes, materialized view logs, 
    grants, and constraints on scott.tblorders.)
    
    DECLARE
    num_errors PLS_INTEGER;
    BEGIN
    DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS('scott', 't1','tp1',
       DBMS_REDEFINITION.CONS_ORIG_PARAMS, TRUE, TRUE, TRUE, TRUE, num_errors);
    END;
    /
    
    
    --步骤5:检查是否除primary、constraint之外的错误
    
    select object_name, base_table_name, ddl_txt from
    DBA_REDEFINITION_ERRORS;
    
    
    --步骤6:Optionally, synchronize the interim table hr.int_admin_emp.
    
    BEGIN 
    DBMS_REDEFINITION.SYNC_INTERIM_TABLE('scott', 't1', 'tp1');
    END;
    /
    
    
    --步骤7:Complete the redefinition.
    
    BEGIN
    DBMS_REDEFINITION.FINISH_REDEF_TABLE('scott', 't1', 'tp1');
    END;
    /
    
    NOTE:
    The table scott.tblorders is locked in the exclusive mode only for a small window toward the end of this step.
    After this call the table scott.tblorders is redefined such that it has all the attributes of the scott.tptblorders table.
    
    
    ------------------------------------------------*
    5.3 索引碎片整理
    ------------------------------------------------*
    
    alter index <index_name> rebuild online parallel 4 nologging;
    
    
    alter table <index_name> coalesce;
    
    
    由于rebuild index可以在线、并行、不产生日志方式进行.推荐使用rebuild index.
    
    
    
    
    
    ********************************************************************************
    6.最佳实践
    ********************************************************************************
    
    1.针对表的碎片化优先考虑shrink技术;针对索引的碎片优先考虑rebuild index技术;
    
    2.如果shrink不理想则采用online redefinition技术
    
    3.如果空间不够导致rebuild index无法实施则考虑coalesce技术
    
    
    4.虽然shrink和rebuild index都不影响在线应用但保险起见尽量避免在业务高峰执行
    
    5.shrink技术考虑先压缩数据不下调HWM,然后找业务低谷时间再下调HWM并释放空间
    
    6.建议rebuild index以非ONLINE方式执行虽然支持online.

    展开全文
  • 碎片化时间系统学习

    2018-01-08 10:38:48
    碎片化时间系统学习 原标题:碎片化学习:系统化学习是不可能的,这辈子都不可能系统化学习了 https://www.toutiao.com/a6508299729992942093/ 秀百家 2018-01-07 21:26:55  碎片化学习刚...

    碎片化时间系统学习

    原标题:碎片化学习:系统化学习是不可能的,这辈子都不可能系统化学习了

    https://www.toutiao.com/a6508299729992942093/

    秀百家  2018-01-07 21:26:55

        碎片化学习刚流行那些年,大家很是摩拳擦掌:原来碎片时间可以这样玩,原来这样学习也能掌握一门技能,甚至能成就一番事业。于是,出于对知识膨胀速度的焦虑,大家终于有个方法应对了,就是充分利用碎片时间学习。

    碎片化学习:系统化学习是不可能的,这辈子都不可能系统化学习了

        何为碎片化学习

        想必你的手机上,无论是微信,还是微博等社交工具,早已经关注诸多微信公众号或者某些大V,其内容涵盖你的饮食、学习、娱乐、工作等,每天从早到晚刷公众号等消息,今天从一篇文章中获知健身技巧,明天从另外一篇文章中得知健身饮食的注意事项。为什么会这样,因为我们觉得他们懂的好多,很牛,说的好有道理,我的好好学习以保证自己也朝着大牛的方向发展。于是你觉得收获了很多,在这个方面也是有小小的发言权。每天吸收碎片化的知识,名曰碎片化学习。

        什么是系统化学习

        传统的学习方式,就是系统的学习方式。通过大片的时间,让人能从浅入深接受整个知识的概念。并且在大脑里形成知识网络。这就有点像一个图书馆,如果乱糟糟的一堆书堆在里面,找起来肯定麻烦。但是,当它们分门别类归类清楚,你就能很方便的按照线索找到每一本书。脑海里的知识也是一样的。人脑不是电脑,我们需要把知识简化,通过线索来找到知识点。这样,知识才能充分调用。

        碎片化学习的弊端,针对于系统化学习来说,就是知识掌握得多,但是会很乱,由于没有及时整理,没几天就会忘记。我们平时刷微博、看朋友圈就有这个特点。如果觉得内容好的东西,我们会把它收藏起来。但是,因为知识没经过消化归类,没几天就会把它忘记。常常就有一种感觉,好像学了很多,但是,又好像什么都没学到。

        很多人为什么看一小时课本会感到很难受,精神涣散;而玩一小时游戏却精神抖擞,兴奋异常。最大的区别就在于,看书不是一个可以让你马上产生收获和反馈的行为。而游戏则可以,因为游戏设计者就是通过让游戏更好玩,让你不停的接受信息和处理信息,让你大脑处于兴奋状态。例如,酷炫华丽的招式,热血的背景音乐,以及你打怪升级过程中获得的金钱、经验、装备等收获,综合下来,就会让你乐于不停的游戏。

        我们完全可以借鉴游戏的机制,运用在我们的学习中。每学完一段时间,或一段内容,就给自己一个奖赏激励反馈,以及信息记录。奖赏激励可以让你马上产生反馈和收获感、愉悦感、甚至多巴胺,借此来『欺骗』大脑,认为学习其实是件很开心的事情,人的本性是唯乐原则,开心就会激励你不断重复这件事。而信息记录的好处,就是当你每次都做出的学习形成一个进度表格,每隔一段时间回顾总结。

        例如一个月为测量单位,你就会发现,原来自己一个月下来竟然读了10本书,写了20篇文章,做过20份报告等等。这样的记录,就类似与每次游戏过关的分数总结,也会容易让你形成,成就感,激励你不断做下去。

        时间管理

        顾名思义,就是每个人的每天24小时都是一样的,但效率却有差别,如何做到比别人更高效率?人在精力最充足旺盛的时候,注意力和专注度是最高的。大脑反应速度也最快的,这时做任何事情效率都很高。有些人是早晨,有些是下午,也有很多人是深夜,不过熬夜多了,副作用也很明显,白天会萎靡不振,影响白天的工作效率,周而复始,最终工作都放到了深夜,直到身体垮了。

        碎片化学习一定要基于搜索,就是需要我们带着困惑和问题去执行碎片化学习。要相信它作为我们成年人学习的补充手段,还是有很大力量的。而且在一段时间内,围绕一个课题,有目的地去拾获瓷器碎片而不是乱捡。就算碎片化知识是树叶,也得现有树根、树干和树枝,最终执行化的效果就是要把这些碎片链接起来,最终达到枝繁叶茂。

        还要补充一点是“收藏”是一种假的碎片化学习。看似能缓解蚂蚁们的焦虑,其实只是一种幻觉。因为如果你收藏完这些“瓷器碎片”不看的话,它并不是你的,还不如不捡。

        嗯,看完这些之后,关于碎片化学习Get到了吗?

        碎片化时间学习最大的特点:碎片化时间是被我利用和掌控,我不会被碎片化时间所利用和控制,我是碎片化时间的主人;一个时间段,我只学习一个重点,在我学习这个重点时,其他的领域我可以完全放下,做到充耳不闻;我知道我自己需要学习什么,我只为我的需要而学习。

        碎片化学习的知识是碎片化的,思想也是碎片化的,甚至人格和灵魂都会是碎片化和分割的。碎片化时间学习的知识是系统化的,思想也是系统化的,人格和灵魂也是完整的。

        互联网时代,请向碎片化学习拜拜,而去主动拥抱碎片化时间学习。碎片化时间学习,即利用碎片化时间系统学习你所需要知识的学习。

        不管这个世界多大,不管这个世界变坏多块,我只取我自己需要的,让我学习,让我成长,让我更好的找到我自己人生的定位,做我最好的自己。我不需要的,哪怕它再正确、再重要,我也还给这个世界,让需要的人去拿走、去使用。

        也许你没有别人聪明,如果能科学有效的努力,你最坏的结果也就是大器晚成。



    展开全文
  • 碎片化学习三款必备APP

    千次阅读 2020-07-30 07:11:42
    追究根本原因,就是没有有效利用时间提升自己。 结合自己入职这几年来的感受,越发体会到狠狠地提高自己有多么的重要。专业上的,情商上的,管理上的,身体上的…… 这篇文章整理三款自己常用的APP,作为职场人提高...
  • 推荐|如何利用碎片化时间学习?

    千次阅读 2017-12-09 20:20:43
    工作、生活节奏超快的今天,想要不断提升自我,碎片化阅读学习是你最佳选择,如果你有一颗学习的心,那这些学习型的公众号,绝对会让你受益匪浅。 小编为你精选了技术领域几个精品微信订阅号,涵盖了时下最热门的...
  • 碎片化的时代,如何学习

    万次阅读 多人点赞 2019-11-20 08:43:29
    在如今这个社会,我们的时间被各类 APP 撕的粉碎。 刷知乎、刷微博、刷朋友圈; 看论坛、看博客、看公号; 等等形形色色的信息和知识获取方式一个都不错过。 貌似学了很多,但是却感觉没什么用。 要解决上面这些问题...
  • Windows进行磁盘碎片化整理

    千次阅读 2019-03-28 09:42:57
    我们的计算机在长时间的使用之后,由于对磁盘进行了大量的读写操作,就会产生许多碎片文件。什么是碎片文件呢?他到底是怎么来的呢?下面我举一个计算机读写一个文件的例子 在计算机工作时,产生了一个文件,但是...
  • 避免物理内存碎片化

    万次阅读 2013-07-01 13:55:26
    物理内存碎片化,是指系统空闲物理内存被使用过的物理内存分割开,导致buddy系统无法满足page分配申请,尤其是申请的连续空间较大的情况下。 一般情况下,出错信息如下: [ 3308.564000] lowmem_reserve[]: 0 ...
  • oracle 表的碎片化整理

    千次阅读 2017-11-18 11:30:58
    数据库在日常的使用过程中,不断的insert,delete,update,导致表和索引出现碎片。这会导致HWM之前有很多的空闲空间,而oracle在做全表扫描的时候会读取HWM一下的所有块,这样会产生更多的IO,影响性能。 oracle...
  • 探索内存碎片化 - 第288篇

    万次阅读 2019-12-02 15:21:44
    色谈Java序列:女孩子慎入 - 第280篇 烦不烦,别再问我时间复杂度了:这次不色,女孩子进来吧 - 第281篇 双向链表,比西天还远?- 第282篇 面试不再怕,让LRU无处可逃 - 第283篇 爱我,就要懂我 – Memcached-...
  • 经常刷手机不知道你有没有这个感受,无论是公众号、B站、知乎等平台,都有关注的人,但刷的时候往往会陷入时间黑洞。 刷一个内容,就会不停看平台智能推荐的内容,浪费很多时间。 但不刷,又会失去很多自己需要的...
  • 避免物理内存碎片化 - 内存紧缩

    千次阅读 2013-07-03 19:10:57
    长期存在的内存碎片问题,已经有多篇文章提及了。简单的说:当系统运行一段时间后,空闲页面趋向于散落在不连续的空间,很难再有足够长的连续...但是仍然存在对大块连续物理内存的需要,在内存碎片化系统上的内存分
  • 在牛客网上刷题: 外部碎片( External Fragmentation )最严重的存储管理方式是() A、固定分区; B、可变分区; C、分页; D、分段。答案为B,并不明白,就整理了一下大牛的总结~ 感谢博主: ...
  • 日期 内核版本 架构 作者 GitHub ...1 前景提要1.1 碎片化问题分页与分段页是信息的物理单位, 分页是为了实现非连续分配, 以便解决内存碎片问题, 或者说分页是由于系统管理的需要. 段是信息的逻辑单位
  • 安卓手机如何进行系统碎片整理

    千次阅读 2021-05-27 03:15:50
    安卓手机要整理系统碎片可以借助第三方软件来进行。下面由小编为你整理了的相关方法,希望对你有帮助!安卓手机进行碎片整理的方法如下百度搜索"磁盘碎片整理.apk",点击下载以获得"磁盘碎片整理.apk"文件***可能需要...
  • 打造属于自己的碎片化时间管理方法 。 1)实现原理   经过了多少反复才知道,自我管理是一个复杂的过程,是多种变量不断交叉变化的组合,我们的任务在于找到这些组合的元素,理清它们的关系,并把握...
  • Linux是如何避免内存碎片

    万次阅读 多人点赞 2018-03-23 19:37:01
    伙伴算法,用于管理物理内存,避免内存碎片; 高速缓存Slab层用于管理内核分配内存,避免碎片。 故继而去深入了解了一波,做了一个粗略的整理: 内存碎片问题 频繁地请求和释放不同大小的内存,必然导致内存...
  • android内存碎片问题优化梳理

    千次阅读 2021-04-20 10:19:44
    0)分配需求时,会受阻,会长时间陷入到direct reclaim中。 相机场景下,ion和gpu内存分配, 创建子线程分配内核栈操作等都有这种连续物理内存分配需求。 2: kswapd和kcompactd会异常活跃,会时常跑
  • 脱不花:关于时间管理的几个想法

    千次阅读 2017-05-20 14:22:17
    脱不花:关于时间管理的几个想法
  • 操作系统内存管理之 内部碎片vs外部碎片

    万次阅读 多人点赞 2012-05-03 10:04:19
    碎片的内存”描述一个系统中所有不可用的空闲内存。这些资源之所以仍然未被使用,是因为负责分配内存的分配器使这些内存无法使用。这一问题通常都会发生,原因在于空闲内存以小而不连续方式出现在不同的位置。由于...
  • 日期 内核版本 架构 作者 GitHub CSDN 2016-06-14 ...在内存管理的上下文中, 初始(initialization)可以有多种含义. 在许多CPU上, 必须显式设置适用于Linux内核的内存模型. 例如在x86_32上需要切换
  • 移动时代的经济学——碎片化应用

    千次阅读 2011-06-02 09:35:00
    无孔不入的网络、移动...这使得人们在任何的时间、空间碎片里,其兴趣碎片均能被“系统”聚焦,被引导(或者说诱惑)产生相应的能给“移动产业链的某个环节”带来利润的行为——这就是移动时代特有的碎片化经济。
  • 关于Cube碎片管理,你需要知道这些!

    万次阅读 多人点赞 2020-05-16 21:01:24
    本篇博客,为大家带来的就是如何对Cube进行碎片化管理         码字不易,先赞后看 文章目录Cube碎片管理增量构建的问题管理Cube碎片手动触发合并Segment删除Segment
  • 纪元老师的时间管理学习笔记

    千次阅读 2018-11-13 07:13:35
    拿来就用的管理方案 5.要事管理:教你用两种清单,巧妙记录琐事,事情再多也不怕 随手记 重要的事、紧急的事、大事、小事、近期的事、长远的事、想做的事、不想做的事,无论什么事,只要你意识到你可能要处理一下这...
  • 库克:Android定位垃圾级 碎片化问题致命
  • 电脑使用一段时间后,由于文件的存贮和删除操作,磁盘上文件和可用空间会变得比较零散,这儿一片,那儿一片,我们称它为"碎片"。如果这种情况不加整理,磁盘的存取效率会下降。那磁盘碎片整理有什么作用?下面,小编...
  • 作者:小傅哥 ... 沉淀、分享、成长,让自己和他人都能有所收获!???? ...灵魂拷问你今天...... 就我个人而言也没有一个明确的时间管理,只是一股脑的把空闲时间全部投入到我喜欢的事情上。比如:我会早上6:30
  • “前几天有居民反映小区井盖没有了,通过网格化管理系统进行联动,马上就把井盖补上了,这在以前是难以做到的。” “社区网格群里,有几个居民反映噪音扰民的问题,网格员根据大家提供的信息,对多家小门店进行了...
  • 时间规划 想要摆脱拖延症,还是得给自己一个时间规划,不然每次你都会想,我就看几分钟,我就玩最后一局,这样的几分钟会漫漫吞噬你的碎片时间时间规划不需要特别细致,精确到天,或者周就够了,就比如我自己某...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 82,871
精华内容 33,148
关键字:

如何管理碎片化时间