데이터 베이스 MySQL 튜토리얼 Heat Map and Automatic Data Optimization : part-1

Heat Map and Automatic Data Optimization : part-1

Jun 07, 2016 pm 04:36 PM
and data map op

oracle 12c 提供了一个新特性叫 Heat Map,它跟踪和标记数据可以达到row和block level,此特性可以在system和session级别启用。如果要使用ADO(Automatic Data Optimization)必须要在system级别启用。但是此特性 only works in a non-CDB environment,not supp

oracle 12c 提供了一个新特性叫 Heat Map,它跟踪和标记数据可以达到row和block level,此特性可以在system和session级别启用。如果要使用ADO(Automatic Data Optimization)必须要在system级别启用。但是此特性only works in a non-CDB environment,not supported with a multitenant container database (CDB),并且提供了以下视图查看

  • V$HEAT_MAP_SEGMENT:显示实时访问信息,包好object_name,object_number及容器ID
  • DBA_HEAT_MAP_SEGMENT:Displays the latest segment access time for all segments visible to the specified user
  • DBA_HEAT_MAP_SEG_HISTOGRAM:Displays access information for all segments visible to the specific user.
  • DBA_HEATMAP_TOP_OBJECTS:Displays access information for the top 1,000 object
  • DBA_HEATMAP_TOP_TABLESPACES:Displays access information for the top 100 tablespaces

Heat_map和ADO 结合使用示意图

heat_map_and_ado

CDB和non-CDB 测试

non-CDB

SQL> SELECT cdb FROM v$database ;
?
CDB
------
NO
?
--数据库NON-CDB
?
SQL> GRANT dba TO travel IDENTIFIED BY aa;
?
GRANT succeeded.
?
SQL> conn travel/aa
Connected.
?
USERNAME             INST_NAME    HOST_NAME                 SID   SERIAL#  VERSION    STARTED  SPID            OPID  CPID            SADDR            PADDR
-------------------- ------------ ------------------------- ----- -------- ---------- -------- --------------- ----- --------------- ---------------- ----------------
TRAVEL               noncdb       localhost.localdomain     33    11       12.1.0.1.0 20140525 4286            7     4259            000000009F68A408 000000009F9865B8
?
?
SQL> ALTER system SET heat_map=ON;
?
System altered.
?
SQL> CREATE TABLE heat_test AS SELECT * FROM all_objects;
?
TABLE created.
?
SQL> INSERT /*+ append */ INTO  heat_test SELECT * FROM heat_test;
?
88955 ROWS created.
?
SQL> commit;
?
Commit complete.
?
SQL>  INSERT /*+ append */ INTO  heat_test SELECT * FROM heat_test;
?
177910 ROWS created.
?
SQL> commit;
?
Commit complete.
?
--创建一张测试表
?
SQL> ALTER SESSION SET nls_date_format='yyyy-mm-dd hh:mi:ss';
?
SESSION altered.
?
SQL> col OBJECT_NAME FOR a15
SQL> SELECT OBJECT_NAME,SEGMENT_WRITE_TIME , SEGMENT_READ_TIME, FULL_SCAN FROM dba_heat_map_segment WHERE owner='TRAVEL';
?
OBJECT_NAME     SEGMENT_WRITE_TIME  SEGMENT_READ_TIME   FULL_SCAN
--------------- ------------------- ------------------- -------------------
HEAT_TEST                                               2014-05-25 05:44:00
?
SQL> col "Segment write" format A14
SQL> col "Full Scan" format A12
SQL> col "Lookup Scan" format a12
SQL>  SELECT object_name, track_time "Tracking Time",
  2   segment_write "Segment write",
  3   full_scan "Full Scan",
  4   lookup_scan "Lookup Scan"
  5   FROM DBA_HEAT_MAP_SEG_HISTOGRAM
  6   WHERE object_name='HEAT_TEST';
?
OBJECT_NAME     Tracking TIME       Segment WRITE  FULL Scan    Lookup Scan
--------------- ------------------- -------------- ------------ ------------
HEAT_TEST       2014-05-25 05:45:03 NO             YES          NO
?
SQL> SELECT compression, compress_for FROM dba_tables WHERE TABLE_NAME = 'HEAT_TEST';
?
COMPRESSION      COMPRESS_FOR
---------------- ------------------------------------------------------------
DISABLED
?
SQL> SELECT SUM(bytes)/1048576 FROM user_segments WHERE 
  2      segment_name='HEAT_TEST';
?
SUM(BYTES)/1048576
------------------
?
?
SQL> SELECT SUM(bytes)/1048576 FROM  dba_segments WHERE segment_name='HEAT_TEST';
?
SUM(BYTES)/1048576
------------------
                48
?
--查看了数据的heat_map情况和大小
?
添加ADO策略30天内没有修改进行压缩
SQL> ALTER TABLE  travel.HEAT_TEST  ILM ADD POLICY ROW STORE 
  2  COMPRESS ADVANCED SEGMENT AFTER 30 DAYS OF NO MODIFICATION;
?
TABLE altered.
?
查看policy
SQL> 
SQL> SELECT policy_name, action_type, scope, compression_level,
  2   condition_type, condition_days
  3   FROM   dba_ilmdatamovementpolicies
  4  ORDER BY policy_name;
?
POLICY_NAME                                                                                                                                                                                                                                                      ACTION_TYPE            SCOPE          COMPRESSION_LEVEL                                            CONDITION_TYPE                               CONDITION_DAYS
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------- -------------- ------------------------------------------------------------ -------------------------------------------- --------------
P1                                                                                                                                                                                                                                                               COMPRESSION            SEGMENT        ADVANCED                                                     LAST MODIFICATION TIME                                   30
?
SQL> col policy_name FOR a10
SQL> /
?
POLICY_NAM ACTION_TYPE            SCOPE          COMPRESSION_LEVEL                                            CONDITION_TYPE                               CONDITION_DAYS
---------- ---------------------- -------------- ------------------------------------------------------------ -------------------------------------------- --------------
P1         COMPRESSION            SEGMENT        ADVANCED                                                     LAST MODIFICATION TIME                                   30
?
SQL> col COMPRESSION_LEVEL FOR a20
SQL> /
?
POLICY_NAM ACTION_TYPE            SCOPE          COMPRESSION_LEVEL    CONDITION_TYPE                               CONDITION_DAYS
---------- ---------------------- -------------- -------------------- -------------------------------------------- --------------
P1         COMPRESSION            SEGMENT        ADVANCED             LAST MODIFICATION TIME                                   30
?
SQL> SELECT policy_name, object_name, inherited_from, enabled FROM dba_ilmobjects;
?
POLICY_NAM OBJECT_NAME     INHERITED_FROM                           ENABLED
---------- --------------- ---------------------------------------- --------------
P1         HEAT_TEST       POLICY NOT INHERITED                       YES
?
?
?
这里由于需要30天,所以通过修改低成表数据实现30天
?
SQL> CREATE OR REPLACE PROCEDURE set_stat (object_id      NUMBER,
  2   data_object_id NUMBER,
  3   n_days         NUMBER,
  4   p_ts#            NUMBER,
  5   p_segment_access NUMBER)
  6   AS
  7   BEGIN
  8   INSERT INTO sys.heat_map_stat$
  9   (obj#,
 10   dataobj#,
 11   track_time,
 12   segment_access,
 13   ts#)
 14   VALUES
 15   (object_id,
 16   data_object_id,
 17   sysdate - n_days,
 18   p_segment_access,
 19   p_ts# );
 20   commit;
 21   END;
 22   /
?
PROCEDURE created.
?
SQL> DECLARE
  2   v_obj# NUMBER;
  3   v_dataobj# NUMBER;
  4   v_ts#      NUMBER;
  5   BEGIN
  6   SELECT object_id, data_object_id INTO v_obj#, v_dataobj#
  7   FROM dba_objects
  8   WHERE object_name = 'HEAT_TEST'
  9   AND owner = 'TRAVEL';
 10   SELECT ts# INTO v_ts#
 11   FROM sys.ts$ a,
 12   dba_segments b
 13   WHERE  a.name = b.tablespace_name
 14   AND  b.segment_name = 'HEAT_TEST';
 15   commit;
 16   sys.set_stat
 17   (object_id         => v_obj#,
 18   data_object_id    => v_dataobj#,
 19   n_days            => 30,
 20   p_ts#             => v_ts#,
 21   p_segment_access  => 1);
 22   END;
 23   /
?
PL/SQL PROCEDURE successfully completed.
?
SQL> conn travel/aa
Connected.
?
USERNAME             INST_NAME    HOST_NAME                 SID   SERIAL#  VERSION    STARTED  SPID            OPID  CPID            SADDR            PADDR
-------------------- ------------ ------------------------- ----- -------- ---------- -------- --------------- ----- --------------- ---------------- ----------------
TRAVEL               noncdb       localhost.localdomain     1     7        12.1.0.1.0 20140525 4916            20    4553            000000009F6CA108 000000009F994798
?
?
SQL> 
手工执行
SQL> DECLARE
  2  v_executionid NUMBER;
  3  BEGIN
  4  dbms_ilm.execute_ILM (ILM_SCOPE      => dbms_ilm.SCOPE_SCHEMA,
  5                        execution_mode => dbms_ilm.ilm_execution_offline,
  6                        task_id        => v_executionid);
  7  END;
  8  /
?
PL/SQL PROCEDURE successfully completed.
?
?
查看任务执行
SQL> SELECT task_id, start_time AS start_time FROM user_ilmtasks;
?
   TASK_ID START_TIME
---------- -----------------------------
         2 25-MAY-14 05.52.39.737942 PM
?
?
查看任务详细洗洗
SQL> SELECT task_id, policy_name, object_name, selected_for_execution, job_name
  2  FROM user_ilmevaluationdetails
  3  WHERE task_id=2;
?
   TASK_ID POLICY_NAM OBJECT_NAME     SELECTED_FOR_EXECUTION   JOB_NAME
---------- ---------- --------------- ------------------------ ---------------------------------
         2 P1         HEAT_TEST       SELECTED FOR EXECUTION   ILMJOB42
查看结果
?
SQL> SELECT task_id, job_name, job_state, completion_time completion FROM user_ilmresults;
?
   TASK_ID JOB_NAME                JOB_STATE                  COMPLETION
---------- ----------------------- -------------------------- ---------------------------------------
         2 ILMJOB42                COMPLETED SUCCESSFULLY     25-MAY-14 05.52.43.834452 PM
?
SQL> col JOB_NAME FOR a20
SQL> SELECT task_id, job_name, job_state, completion_time completion FROM user_ilmresults;
?
   TASK_ID JOB_NAME             JOB_STATE                     COMPLETION
---------- -------------------- ----------------------------- ---------------------------------------------------------------------------
         2 ILMJOB42             COMPLETED SUCCESSFULLY        25-MAY-14 05.52.43.834452 PM
?
查看表大小
SQL> SELECT SUM(bytes)/1048576 FROM user_segments WHERE segment_name='HEAT_TEST';
?
SUM(BYTES)/1048576
------------------
                13
数据压缩了35M
로그인 후 복사

测试下CDB情况下的使用

SQL> SELECT cdb FROM v$database;
?
CDB
---
YES
?
SQL> ALTER system SET heat_map=ON;
?
System altered.
?
SQL> conn c##travel/aa
ERROR:
ORA-28001: the password has expired
?
?
Changing password FOR c##travel
NEW password: 
Retype NEW password: 
Password changed
Connected.
?
USERNAME             INST_NAME    HOST_NAME                 SID   SERIAL#  VERSION    STARTED  SPID            OPID  CPID            SADDR            PADDR
-------------------- ------------ ------------------------- ----- -------- ---------- -------- --------------- ----- --------------- ---------------- ----------------
C##TRAVEL            orcl         localhost.localdomain     57    11       12.1.0.1.0 20140525 5370            7     5067            000000009F711DA8 000000009FA3EB88
?
?
SQL>  CREATE TABLE heat_test AS SELECT * FROM all_objects;
?
TABLE created.
?
SQL> INSERT /*+ append */ INTO  heat_test SELECT * FROM heat_test;
?
89347 ROWS created.
?
SQL> commit;
?
Commit complete.
?
SQL> ALTER TABLE  HEAT_TEST  ILM ADD POLICY ROW STORE 
  2  COMPRESS ADVANCED SEGMENT AFTER 30 DAYS OF NO MODIFICATION;
ALTER TABLE  HEAT_TEST  ILM ADD POLICY ROW STORE
*
ERROR at line 1:
ORA-38343: ADO online mode NOT supported WITH supplemental logging enabled
?
?
SQL> !oerr ora 38343
38343, 00000, "ADO online mode not supported with supplemental logging enabled"
// *Cause: An attempt was made TO perform an automatic DATA optimization (ADO)
//         operation WITH supplemental logging enabled.
// *Action: Disable supplemental logging OR switch TO ADO offline mode AND retry.
?
SQL> conn  / AS sysdba
Connected.
?
USERNAME             INST_NAME    HOST_NAME                 SID   SERIAL#  VERSION    STARTED  SPID            OPID  CPID            SADDR            PADDR
-------------------- ------------ ------------------------- ----- -------- ---------- -------- --------------- ----- --------------- ---------------- ----------------
SYS                  orcl         localhost.localdomain     57    13       12.1.0.1.0 20140525 5455            7     5067            000000009F711DA8 000000009FA3EB88
?
?
SQL> ALTER DATABASE DROP supplemental log ;
ALTER DATABASE DROP supplemental log
                                    *
ERROR at line 1:
ORA-00905: missing keyword
?
?
SQL> ALTER DATABASE DROP supplemental log DATA;
?
DATABASE altered.
?
SQL> conn c##travel/aa
Connected.
?
USERNAME             INST_NAME    HOST_NAME                 SID   SERIAL#  VERSION    STARTED  SPID            OPID  CPID            SADDR            PADDR
-------------------- ------------ ------------------------- ----- -------- ---------- -------- --------------- ----- --------------- ---------------- ----------------
C##TRAVEL            orcl         localhost.localdomain     57    15       12.1.0.1.0 20140525 5467            7     5067            000000009F711DA8 000000009FA3EB88
?
?
SQL> ALTER TABLE  HEAT_TEST  ILM ADD POLICY ROW STORE 
  2  COMPRESS ADVANCED SEGMENT AFTER 30 DAYS OF NO MODIFICATION;
ALTER TABLE  HEAT_TEST  ILM ADD POLICY ROW STORE
*
ERROR at line 1:
ORA-38342: heat map NOT enabled
?
?
SQL> SHOW parameter heat_map
?
NAME                                 TYPE        VALUE
------------------------------------ ----------- ----------------------------------------------------------------------------------------------------
heat_map                             string      ON
SQL>
로그인 후 복사

证明了only works in a non-CDB environment,not supported with a multitenant container database (CDB)

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

springboot는 yml 파일의 목록, 배열, 지도 컬렉션 및 개체를 어떻게 읽나요? springboot는 yml 파일의 목록, 배열, 지도 컬렉션 및 개체를 어떻게 읽나요? May 11, 2023 am 10:46 AM

application.yml은 목록 컬렉션을 정의합니다. 첫 번째 방법은 @ConfigurationProperties 주석을 사용하여 목록 컬렉션 유형:code:status:-200-300-400-500의 모든 값을 얻는 것입니다. 여기서 주목해야 할 점은 목록 Collection을 정의하고 먼저 구성 클래스 Bean을 정의한 다음 @ConfigurationProperties 주석을 사용하여 목록 컬렉션 값을 얻는다는 것입니다. @Component는 엔티티 클래스를 Spring 관리 @ConfigurationPropertie에 넘겨줍니다.

Java에서 만료 시간 맵을 설정하는 방법 Java에서 만료 시간 맵을 설정하는 방법 May 04, 2023 am 10:13 AM

1. 기술적 배경 실제 프로젝트 개발에서는 시스템의 가용성과 견고성을 향상시키기 위해 캐싱 미들웨어(예: redis, MemCache 등)를 자주 사용합니다. 하지만 프로젝트가 상대적으로 단순하다면 캐싱을 사용하기 위해 시스템의 복잡성을 높이기 위해 Redis와 같은 미들웨어를 특별히 도입할 필요가 없는 경우가 많습니다. 그렇다면 Java 자체에는 유용한 경량 캐싱 구성 요소가 있습니까? 물론 대답은 '그렇다'이며, 방법은 여러 가지가 있습니다. 일반적인 솔루션에는 ExpiringMap, LoadingCache 및 HashMap 기반 패키징이 포함됩니다. 2. 오래된 삭제 전략, 핫스팟 데이터 워밍업 등 캐시의 공통 기능을 구현하기 위한 기술적 효과 3. ExpiringMap3.

Java에서 Map에 대한 스레드 안전성을 구현하는 방법은 무엇입니까? Java에서 Map에 대한 스레드 안전성을 구현하는 방법은 무엇입니까? Apr 19, 2023 pm 07:52 PM

방법 1. HashtableMapashtable=newHashtable();을 사용하세요. 이것이 모두가 가장 먼저 생각하는 것인데, 왜 스레드로부터 안전할까요? 그런 다음 소스 코드를 살펴보면 put, get 및 containKey와 같이 일반적으로 사용되는 메서드가 모두 동기식이므로 스레드로부터 안전한 publicsynchronizedbooleancontainsKey(Objectkey){Entrytab[]=table;inthash=key임을 알 수 있습니다. hashCode( );intindex=(hash&0x7FFFFFFF)%tab.leng

Java에서 객체를 맵으로 변환하는 방법 - BeanMap을 사용하여 Java에서 객체를 맵으로 변환하는 방법 - BeanMap을 사용하여 May 08, 2023 pm 03:49 PM

javabeans와 map을 변환하는 방법에는 여러 가지가 있습니다. 1. ObjectMapper를 통해 Bean을 json으로 변환한 다음 json을 map으로 변환합니다. 그러나 이 방법은 테스트 후에 10,000개의 Bean이 루프로 변환되었습니다. 12초 걸립니다! ! ! 2. Java Reflection을 통해 Bean 클래스의 속성과 값을 얻은 다음 이를 맵에 해당하는 키-값 쌍으로 변환하는 방법이 두 번째로 좋지만 조금 더 번거롭습니다. 3. 클래스의 net.sf.cglib.beans.BeanMap 메소드를 통해 이 메소드는 매우 효율적입니다. 두 번째 메소드와 차이점은 캐시를 사용하기 때문에 첫 번째 Bean을 생성할 때 초기화해야 한다는 것입니다. 시간.

Nginx 서버에서 맵 모듈을 구성하고 사용하는 방법 Nginx 서버에서 맵 모듈을 구성하고 사용하는 방법 May 21, 2023 pm 05:14 PM

맵 명령은 ngx_http_map_module 모듈에서 제공됩니다. 기본적으로 nginx는 인위적으로 --without-http_map_module을 사용하지 않는 한 이 모듈을 로드합니다. ngx_http_map_module 모듈은 값이 다른 변수의 값과 연관된 변수를 생성할 수 있습니다. 여러 값을 여러 다른 값으로 분류하거나 동시에 매핑하고 변수에 저장하는 것을 허용합니다. 맵 지시어는 변수를 생성하는 데 사용되지만 변수가 허용되는 경우에만 뷰 매핑 작업을 수행합니다. 변수를 참조하지 않는 요청을 처리하는 경우 이 모듈에는 성능 단점이 없습니다. 1.ngx_http_map_module 모듈 명령어 설명 맵 구문

OP 스택의 구조적 측면과 기능에 대한 심층 탐구 OP 스택의 구조적 측면과 기능에 대한 심층 탐구 Jan 18, 2024 pm 05:45 PM

OPStack은 Optimism Network의 개발 그룹인 Optimism Collective에서 출시한 오픈 소스 블록체인 프레임워크입니다. 이는 Ethereum과 Optimism 커뮤니티 모두에게 중요한 도구입니다. OPStack의 주요 목표는 Optimism Mainnet과 다가오는 Optimism Superchain 및 거버넌스 모델에 주요 소프트웨어 도구를 제공하여 Optimism Network를 강화하는 것입니다. 개발자 중심의 환경을 제공함으로써 OPStack의 핵심 아이디어는 Ethereum 공간에서 성장과 혁신을 촉진하는 것입니다. 이는 최첨단 개발을 위한 길을 열어주고 블록체인 생성을 더욱 단순하게 만듭니다. OPStac

Go 언어 맵의 성능 최적화 Go 언어 맵의 성능 최적화 Mar 23, 2024 pm 12:06 PM

Go 언어 맵의 성능 최적화 Go 언어에서 맵은 키-값 쌍 모음을 저장하는 데 사용되는 매우 일반적으로 사용되는 데이터 구조입니다. 그러나 대량의 데이터를 처리하는 경우 지도 성능이 저하될 수 있습니다. 지도의 성능을 향상시키기 위해 몇 가지 최적화 조치를 취하여 지도 작업의 시간 복잡성을 줄여 프로그램의 실행 효율성을 향상시킬 수 있습니다. 1. 맵 용량을 사전 할당합니다. 맵 생성 시 용량을 사전 할당하여 맵 확장 횟수를 줄이고 프로그램 성능을 향상시킬 수 있습니다. 일반적으로 우리는

OP 메인넷 네트워크에 대한 심층적인 이해: OP 메인넷은 어떤 체인인가요? OP 메인넷 네트워크에 대한 심층적인 이해: OP 메인넷은 어떤 체인인가요? Jan 24, 2024 am 11:30 AM

이전에 Optimism은 Optimism 체인의 이름이 OPMainnet으로 변경되었음을 공식적으로 발표했습니다. 어떤 사람들은 OPMainnet이 무엇인지 묻습니다. 현재 정보에 따르면 OPMainnet은 지속 가능한 방식으로 공공재에 자금을 조달하는 데 전념하는 오픈 소스 슈퍼 체인이며 Base, ZoraNetwork, PGN, Redstone 및 기타 체인과 원활하게 통신할 수 있는 많은 L2 체인 중 하나입니다. 이는 단일 블록체인이 아니라 20개의 전체 슈퍼 체인 네트워크를 나타냅니다. 아래 편집자는 OPMainnet 네트워크에 대한 이해를 돕기 위해 이번 OPMainnet에 대해 자세히 설명합니다. OPMainnet은 어떤 체인인가요? OPMainnet은 이더넷이다

See all articles