<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        如何估算表In-Memory需要內存大小

        來源:懂視網 責編:小采 時間:2020-11-09 13:01:44
        文檔

        如何估算表In-Memory需要內存大小

        如何估算表In-Memory需要內存大小:對于12.1.0.2的In-Memory特性很多朋友都已經知曉,現在可能有這個困惑我一張表啟用In-Memory大概需要多少內存呢?該如何估算這個值呢?這里我告訴你通過dbms_compression可以完成你想做的事情 啟用In-Memory功能 [oracle@www.xifenfei
        推薦度:
        導讀如何估算表In-Memory需要內存大小:對于12.1.0.2的In-Memory特性很多朋友都已經知曉,現在可能有這個困惑我一張表啟用In-Memory大概需要多少內存呢?該如何估算這個值呢?這里我告訴你通過dbms_compression可以完成你想做的事情 啟用In-Memory功能 [oracle@www.xifenfei

        對于12.1.0.2的In-Memory特性很多朋友都已經知曉,現在可能有這個困惑我一張表啟用In-Memory大概需要多少內存呢?該如何估算這個值呢?這里我告訴你通過dbms_compression可以完成你想做的事情 啟用In-Memory功能 [oracle@www.xifenfei.com u02]$ sqlplus / as

        對于12.1.0.2的In-Memory特性很多朋友都已經知曉,現在可能有這個困惑我一張表啟用In-Memory大概需要多少內存呢?該如何估算這個值呢?這里我告訴你通過dbms_compression可以完成你想做的事情
        啟用In-Memory功能

        [oracle@www.xifenfei.com u02]$ sqlplus / as sysdba
        SQL*Plus: Release 12.1.0.2.0 Production on Thu Aug 7 17:50:47 2014
        Copyright (c) 1982, 2014, Oracle. All rights reserved.
        Connected to:
        Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
        With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
        SQL> show parameter inmemory;
        NAME TYPE VALUE
        ------------------------------------ ----------- ------------------------------
        inmemory_clause_default string
        inmemory_force string DEFAULT
        inmemory_max_populate_servers integer 0
        inmemory_query string ENABLE
        inmemory_size big integer 0
        inmemory_trickle_repopulate_servers_ integer 1
        optimizer_inmemory_aware boolean TRUE
        SQL> alter system set inmemory_size=400M;
        alter system set inmemory_size=400M
        *
        ERROR at line 1:
        ORA-02097: parameter cannot be modified because specified value is invalid
        ORA-02095: specified initialization parameter cannot be modified
        SQL> alter system set inmemory_size=400M scope=spfile;
        System altered.
        SQL> show pdbs;
         CON_ID CON_NAME OPEN MODE RESTRICTED
        ---------- ------------------------------ ---------- ----------
         2 PDB$SEED READ ONLY NO
         3 PDB1 READ WRITE NO
         4 PDB2 READ WRITE NO
        SQL> alter session set container=pdb1;
        Session altered.
        SQL> show parameter inmemory;
        NAME TYPE VALUE
        ------------------------------------ ----------- ------------------------------
        inmemory_clause_default string
        inmemory_force string DEFAULT
        inmemory_max_populate_servers integer 0
        inmemory_query string ENABLE
        inmemory_size big integer 0
        inmemory_trickle_repopulate_servers_ integer 1
        optimizer_inmemory_aware boolean TRUE
        SQL> alter system set inmemory_size=200M;
        alter system set inmemory_size=200M
        *
        ERROR at line 1:
        ORA-02097: parameter cannot be modified because specified value is invalid
        ORA-02095: specified initialization parameter cannot be modified
        SQL> alter system set inmemory_size=200M scope=spfile;
        alter system set inmemory_size=200M scope=spfile
         *
        ERROR at line 1:
        ORA-02096: specified initialization parameter is not modifiable with this
        option
        SQL> !oerr ora 2096
        02096, 00000, "specified initialization parameter is not modifiable with this option"
        // *Cause: Though the initialization parameter is modifiable, it cannot be
        // modified using the specified command.
        // *Action: Check the DBA guide for information about under what scope
        // the parameter may be modified
        SQL> select 200*1024*1024 from dual;
        200*1024*1024
        -------------
         209715200
        SQL> alter system set inmemory_size=209715200;
         alter system set inmemory_size=209715200
        *
        ERROR at line 1:
        ORA-02097: parameter cannot be modified because specified value is invalid
        ORA-02095: specified initialization parameter cannot be modified
        SQL> shutdown immediate;
        Pluggable Database closed.
        SQL> conn / as sysdba
        Connected.
        SQL> shutdown immediate
        Database closed.
        Database dismounted.
        ORACLE instance shut down.
        SQL> startup
        ORACLE instance started.
        Total System Global Area 838860800 bytes
        Fixed Size 2929936 bytes
        Variable Size 360712944 bytes
        Database Buffers 50331648 bytes
        Redo Buffers 5455872 bytes
        In-Memory Area 419430400 bytes
        Database mounted.
        Database opened.
        SQL> show parameter inmemory;
        NAME TYPE VALUE
        ------------------------------------ ----------- ------------------------------
        inmemory_clause_default string
        inmemory_force string DEFAULT
        inmemory_max_populate_servers integer 1
        inmemory_query string ENABLE
        inmemory_size big integer 400M
        inmemory_trickle_repopulate_servers_ integer 1
        optimizer_inmemory_aware boolean TRUE
        SQL> alter session set container=pdb1;
        Session altered.
        SQL> alter database open;
        Database altered.
        SQL> show parameter inmemory;
        NAME TYPE VALUE
        ------------------------------------ ----------- ------------------------------
        inmemory_clause_default string
        inmemory_force string DEFAULT
        inmemory_max_populate_servers integer 1
        inmemory_query string ENABLE
        inmemory_size big integer 400M
        inmemory_trickle_repopulate_servers_ integer 1
        optimizer_inmemory_aware boolean TRUE
        SQL> alter system set inmemory_size=100M;
        System altered.
        SQL> show parameter inmemory;
        NAME TYPE VALUE
        ------------------------------------ ----------- ------------------------------
        inmemory_clause_default string
        inmemory_force string DEFAULT
        inmemory_max_populate_servers integer 1
        inmemory_query string ENABLE
        inmemory_size big integer 100M
        inmemory_trickle_repopulate_servers_ integer 1
        optimizer_inmemory_aware boolean TRUE
        

        這里可以發現inmemory_query默認為true,但是inmemory_size默認為0,也就是說In-Memory Option默認是關閉的,如果啟用直接設置inmemory_size值即可(該值最小值為100M),但是需要注意在cdb中需要重啟后生效,pdb需要待cdb生效后才能夠設置

        估算表設置In-Memory默認需要內存空間

        SQL> create user chf identified by xifenfei;
        User created.
        SQL> grant dba to chf;
        Grant succeeded.
        SQL> create table chf.t_xifenfei as select * from dba_objects;
        Table created.
        SQL> select sum(bytes), sum(blocks) from DBA_segments where segment_name = 'T_XIFENFEI';
        SUM(BYTES) SUM(BLOCKS)
        ---------- -----------
         13631488 1664
        SQL> set serveroutput on
        DECLARE
        l_blkcnt_cmp binary_integer;
        l_blkcnt_uncmp binary_integer;
        l_row_cmp binary_integer;
        l_row_uncmp binary_integer;
        l_cmp_ratio number;
        SQL> 2 3 4 5 6 7 l_comptype_str varchar2(100);
         8 BEGIN
         9 dbms_compression.get_compression_ratio(
         10 scratchtbsname => upper('&ScratchTBS'),
         11 ownname => upper('&ownername'), 
         12 objname => upper('&TableName'), 
         13 subobjname => NULL, 
         14 comptype => DBMS_COMPRESSION.COMP_INMEMORY_QUERY_LOW, 
         15 blkcnt_cmp => l_blkcnt_cmp,
         16 blkcnt_uncmp => l_blkcnt_uncmp, 
         17 row_cmp => l_row_cmp,
         18 row_uncmp => l_row_uncmp,
         19 cmp_ratio => l_cmp_ratio, 
         20 comptype_str => l_comptype_str 
         21 );
         22 dbms_output.put_line('.');
         23 dbms_output.put_line('OUTPUT: ');
         24 dbms_output.put_line('LINEORDER '||l_comptype_str||' ratio: '||to_char(l_cmp_ratio,'99.999'));
         25 end;
         26 /
        Enter value for scratchtbs: USERS
        old 10: scratchtbsname => upper('&ScratchTBS'),
        new 10: scratchtbsname => upper('USERS'),
        Enter value for ownername: CHF
        old 11: ownname => upper('&ownername'),
        new 11: ownname => upper('CHF'),
        Enter value for tablename: T_XIFENFEI
        old 12: objname => upper('&TableName'),
        new 12: objname => upper('T_XIFENFEI'),
        .
        OUTPUT:
        LINEORDER "In-memory Memcompress Query Low" ratio: 2.800
        PL/SQL procedure successfully completed.
        SQL> SELECT 13631488/2.800 FROM DUAL;
        13631488/2.800
        --------------
         4868388.57
        SQL> alter table CHF.T_XIFENFEI inmemory;
        Table altered.
        SQL> select COUNT(*) FROM CHF.T_XIFENFEI;
         COUNT(*)
        ----------
         90923
        SQL> select inmemory_size from v$im_segments where segment_name = 'T_XIFENFEI';
        INMEMORY_SIZE
        -------------
         4325376
        SQL> select (4868388.57-4325376)/4325376 from dual;
        (4868388.57-4325376)/4325376
        ----------------------------
         .125541125
        

        這里使用大家在ehcc中熟悉的dbms_compression.get_compression_ratio來估算In-memory需要的大概空間,例如本測試中,創建T_XIFENFEI表占用磁盤空間為13631488byte,使用dbms_compression估算在In-memory默認的壓縮比例(Query Low)情況下,大概壓縮比例為2.8,也就是通過合理估算,表啟用In-memory cache之后,大概需要空間為13631488/2.800=4868388.57byte,最終通過實際測試需要空間為4325376byte,整體誤差為(4868388.57-4325376)/4325376=12.5%左右
        因此我們在使用In-memory cache一個表之時,如果不確定其需要內存大小,可以通過dbms_compression包來估算.另外In-memory還可以配置不同的壓縮級別實現不同的壓縮比例,其他壓縮比例請見下圖
        compress-in_memory-1
        compress-in_memory-2
        詳細link請見:https://docs.oracle.com/database/121/ARPLS/d_compress.htm#ARPLS65599

      1. ORACLE 12C In-Memory組件初試
      2. 對于IN Memory Option 部分細節測試—主要當inmemory_size不足之時
      3. ORACLE 12C In-Memory功能性能測試
      4. In-Memory整體匯總
      5. 查找V$PARAMETER 基表
      6. ORACLE 12C varchar2支持32k長度字符串
      7. 設置_smu_debug_mode實現指定session級別使用特定回滾段
      8. 關于9I中sga_max_size參數描述
      9. 聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        如何估算表In-Memory需要內存大小

        如何估算表In-Memory需要內存大小:對于12.1.0.2的In-Memory特性很多朋友都已經知曉,現在可能有這個困惑我一張表啟用In-Memory大概需要多少內存呢?該如何估算這個值呢?這里我告訴你通過dbms_compression可以完成你想做的事情 啟用In-Memory功能 [oracle@www.xifenfei
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲人色婷婷成人网站在线观看 | 亚洲GV天堂无码男同在线观看| 亚洲成人免费在线| 亚洲国产一区二区a毛片| 中文毛片无遮挡高清免费| 亚洲色精品vr一区二区三区| 三年在线观看免费观看完整版中文 | 国产亚洲美女精品久久久久狼 | 亚欧免费视频一区二区三区| 久久久久久久亚洲Av无码| 免费专区丝袜脚调教视频| 亚洲三级电影网站| 国产91免费视频| 亚洲爆乳无码专区www| 国产大片线上免费看| av午夜福利一片免费看久久| 国产亚洲欧洲精品| 国产在线jyzzjyzz免费麻豆 | 亚洲精品成人久久| 午夜神器成在线人成在线人免费| 亚洲日韩精品无码专区| 亚洲国产成人五月综合网| 在线观看黄片免费入口不卡| 亚洲高清中文字幕| 国产美女无遮挡免费网站| 中文字幕无码毛片免费看| 91在线亚洲精品专区| 国产高清免费在线| 全黄大全大色全免费大片| 又硬又粗又长又爽免费看| 亚洲午夜未满十八勿入网站2| 91福利免费体验区观看区| 免费视频专区一国产盗摄| 亚洲欧美成人一区二区三区| 国产精品亚洲美女久久久 | 久久久无码精品亚洲日韩蜜臀浪潮 | 亚洲av产在线精品亚洲第一站| 日本黄页网站免费| 免费人成黄页在线观看日本| 亚洲AV无码无限在线观看不卡| 亚洲国产精品无码久久九九|