Maison base de données tutoriel mysql Heat Map and Automatic Data Optimization : part-2

Heat Map and Automatic Data Optimization : part-2

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

上一篇测试了ADO的压缩功能 Heat Map and Automatic Data Optimization : part-1 下面测下ADO的存储层功能 简单的说下就是使用ado move 表、分区操作,把不是热数据的数据移动到性能低下的存储上 下面是工作的示意图 准备环境 SQL conn travel/aaConnected.?

上一篇测试了ADO的压缩功能 Heat Map and Automatic Data Optimization : part-1
下面测下ADO的存储层功能
简单的说下就是使用ado move 表、分区操作,把不是热数据的数据移动到性能低下的存储上
下面是工作的示意图

ado2

准备环境

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 20140526 3209            7     2927            000000009F6CA108 000000009F9865B8
?
?
SQL> SELECT * FROM tab;
?
TNAME                                                                                                                                                                                                                                                            TABTYPE         CLUSTERID
----------------------------------- -------------- ----------
HEAT_TEST                           TABLE
?
SQL> 
SQL> conn / AS sysdba
Connected.
?
USERNAME             INST_NAME    HOST_NAME                 SID   SERIAL#  VERSION    STARTED  SPID            OPID  CPID            SADDR            PADDR
-------------------- ------------ ------------------------- ----- -------- ---------- -------- --------------- ----- --------------- ---------------- ----------------
SYS                  noncdb       localhost.localdomain     1     9        12.1.0.1.0 20140526 3234            7     2927            000000009F6CA108 000000009F9865B8
?
?
SQL> CREATE tablespace ado_t1 datafile '/oradata/noncdb/ado_t1.dbf' SIZE 200M;
?
Tablespace created.
?
?
SQL> CREATE tablespace ado_t2 datafile '/oradata/noncdb/ado_t2.dbf' SIZE 200M;
?
Tablespace created.
?
SQL> 
?
SQL> CREATE TABLE ado_move tablespace ado_t1 AS SELECT * FROM dba_objects;
?
TABLE created.
?
SQL> INSERT INTO ado_move SELECT * FROM ado_move;
?
90764 ROWS created.
?
SQL> commit;
?
Commit complete.
?
SQL> INSERT INTO ado_move SELECT * FROM ado_move;
?
181528 ROWS created.
?
SQL> commit;
?
Commit complete.
?
SQL> INSERT INTO ado_move SELECT * FROM ado_move;
?
363056 ROWS created.
?
SQL> INSERT INTO ado_move SELECT * FROM ado_move;
?
726112 ROWS created.
?
SQL> commit;
?
Commit complete.
?
SQL> @dba_tablespaces
?
+------------------------------------------------------------------------+
| Report   : Tablespaces                                                 |
| Instance : noncdb                                                      |
| USER     : TRAVEL                                                      |
+------------------------------------------------------------------------+
?
STATUS    Tablespace Name           TS TYPE         Ext. Mgt.  Seg. Mgt.     Tablespace SIZE    Used (IN bytes) Pct. Used
--------- ------------------------- --------------- ---------- ---------- ------------------ ------------------ ---------
ONLINE    ADO_T1                    PERMANENT       LOCAL      AUTO              209,715,200        202,375,168        97
ONLINE    ADO_T2                    PERMANENT       LOCAL      AUTO              209,715,200          1,048,576         1
ONLINE    SYSAUX                    PERMANENT       LOCAL      AUTO              765,460,480        760,086,528        99
ONLINE    SYSTEM                    PERMANENT       LOCAL      MANUAL            817,889,280        811,401,216        99
ONLINE    TEMP                      TEMPORARY       LOCAL      MANUAL             91,226,112         90,177,536        99
ONLINE    UNDOTBS1                  UNDO            LOCAL      MANUAL            152,043,520        151,257,088        99
ONLINE    USERS                     PERMANENT       LOCAL      AUTO               66,846,720         15,400,960        23
                                                                          ------------------ ------------------ ---------
avg                                                                                                                    74
SUM                                                                            2,312,896,512      2,031,747,072
?
7 ROWS selected.
Copier après la connexion

上面创建了2个表空间,并在表空间ADO_T1上创建了一个张表,插入大量数据,是空间使用率得到97%

下面查看下表的Heat map情况

SQL> ALTER system SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
  2  
SQL> col owner FOR a20
SQL> col object_name FOR a20
SQL> col "Tracking Time" FOR a40
SQL> col "Seg write" FOR a20
SQL> 
SQL> pro DBA_HEAT_MAP_SEG_HISTOGRAM
DBA_HEAT_MAP_SEG_HISTOGRAM
SQL> SELECT object_name, to_char(track_time,'YYYY-MM-DD HH:MI:SS') "Tracking Time", 
  2  segment_write "Seg write", 
  3  FULL_SCAN "Full Scan", 
  4  lookup_scan "Lookup Scan"
  5  FROM DBA_HEAT_MAP_SEG_HISTOGRAM
  6  WHERE object_name=UPPER('ado_move');
?
OBJECT_NAME          Tracking TIME                            Seg WRITE            FULL S Lookup
-------------------- ---------------------------------------- -------------------- ------ ------
ADO_MOVE             2014-05-26 11:26:52                      YES                  YES    NO
?
SQL> 
SQL> 
SQL> pro DBA_HEAT_MAP_SEGMENT
DBA_HEAT_MAP_SEGMENT
SQL> 
SQL> SELECT owner,object_name,SEGMENT_WRITE_TIME,SEGMENT_READ_TIME,FULL_SCAN,LOOKUP_SCAN  
  2  FROM DBA_HEAT_MAP_SEGMENT
  3  WHERE object_name=UPPER('ado_move');
?
OWNER                OBJECT_NAME          SEGMENT_WRITE_TIM SEGMENT_READ_TIME FULL_SCAN         LOOKUP_SCAN
-------------------- -------------------- ----------------- ----------------- ----------------- -----------------
TRAVEL               ADO_MOVE             20140526 11:26:53                   20140526 11:26:53
?
SQL> 
?
SQL> 
SQL> SELECT OBJECT_NAME, TRACK_TIME, SEGMENT_WRITE "Seg_write", SEGMENT_READ "Seg_read", FULL_SCAN, LOOKUP_SCAN
  2       FROM v$heat_map_segment
  3       WHERE object_name=UPPER('ado_move');
?
OBJECT_NAME          TRACK_TIME        Seg_wr Seg_read             FULL_S LOOKUP
-------------------- ----------------- ------ -------------------- ------ ------
ADO_MOVE             20140526 11:28:49 YES    NO                   YES    NO
Copier après la connexion
创建策略
SQL> ALTER TABLE ADO_MOVE ILM ADD POLICY TIER TO ADO_T2;
?
TABLE altered.
查看策略
SQL> COL policy_name format A12
SQL> COL TIER_TBS format A20
SQL> SELECT policy_name, action_type, scope,
  2               tier_tablespace "TIER_TBS"
  3       FROM  user_ilmdatamovementpolicies
  4       ORDER BY policy_name;
?
POLICY_NAME  ACTION_TYPE            SCOPE          TIER_TBS
------------ ---------------------- -------------- --------------------
P1           COMPRESSION            SEGMENT
P21          STORAGE                SEGMENT        ADO_T2
?
SQL> SELECT policy_name, object_name, inherited_from, enabled FROM user_ilmobjects;
?
POLICY_NAME  OBJECT_NAME          INHERITED_FROM                           ENABLE
------------ -------------------- ---------------------------------------- ------
P1           HEAT_TEST            POLICY NOT INHERITED                     NO
P21          ADO_MOVE             POLICY NOT INHERITED                     YES
?
SQL> SELECT * FROM dba_ilmparameters;
?
Tablespace Name                VALUE
------------------------- ----------
ENABLED                            1
JOB LIMIT                         10
EXECUTION MODE                     3
EXECUTION INTERVAL                15
TBS PERCENT USED                  85
TBS PERCENT FREE                  25
?
6 ROWS selected.
?
执行操作
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> @dba_tablespaces
?
+------------------------------------------------------------------------+
| Report   : Tablespaces                                                 |
| Instance : noncdb                                                      |
| USER     : TRAVEL                                                      |
+------------------------------------------------------------------------+
?
STATUS    Tablespace Name           TS TYPE         Ext. Mgt.  Seg. Mgt.     Tablespace SIZE    Used (IN bytes) Pct. Used
--------- ------------------------- --------------- ---------- ---------- ------------------ ------------------ ---------
ONLINE    ADO_T1                    PERMANENT       LOCAL      AUTO              209,715,200        202,375,168        97
ONLINE    ADO_T2                    PERMANENT       LOCAL      AUTO              209,715,200          1,048,576         1
ONLINE    SYSAUX                    PERMANENT       LOCAL      AUTO              807,403,520        763,428,864        95
ONLINE    SYSTEM                    PERMANENT       LOCAL      MANUAL            817,889,280        811,401,216        99
ONLINE    TEMP                      TEMPORARY       LOCAL      MANUAL             91,226,112         90,177,536        99
ONLINE    UNDOTBS1                  UNDO            LOCAL      MANUAL            152,043,520        151,846,912       100
ONLINE    USERS                     PERMANENT       LOCAL      AUTO               66,846,720         15,400,960        23
                                                                          ------------------ ------------------ ---------
avg                                                                                                                    73
SUM                                                                            2,354,839,552      2,035,679,232
?
7 ROWS selected.
?
?
?
SQL>  COL job_name format A20
SQL>  COL object_name format A8
SQL>  COL task_id format 99999
SQL> 
SQL> SELECT task_id, state FROM user_ilmtasks;
?
TASK_ID STATE
------- ------------------
      2 COMPLETED
     62 COMPLETED
?
SQL> 
SQL> 
SQL>  COL object_name format A20
SQL>  col POLICY_NAME  FOR a10
SQL>  col SELECTED_FOR_EXECUTION FOR a80
SQL>  SELECT TASK_ID, POLICY_NAME, OBJECT_NAME,
  2  SELECTED_FOR_EXECUTION, JOB_NAME
  3   FROM user_ilmevaluationdetails;
?
TASK_ID POLICY_NAM OBJECT_NAME          SELECTED_FOR_EXECUTION                                                           JOB_NAME
------- ---------- -------------------- -------------------------------------------------------------------------------- --------------------
     62 P21        ADO_MOVE             SELECTED FOR EXECUTION                                                           ILMJOB122
     62 P1         HEAT_TEST            POLICY DISABLED
      2 P1         HEAT_TEST            SELECTED FOR EXECUTION                                                           ILMJOB42
?
SQL> 
SQL>  COL job_name format A20
SQL>  COL object_name format A8
SQL>  COL task_id format 99999
SQL> 
SQL> 
SQL> SELECT task_id, job_name, job_state FROM user_ilmresults;
?
TASK_ID JOB_NAME             JOB_STATE
------- -------------------- ----------------------------------------------------------------------
      2 ILMJOB42             COMPLETED SUCCESSFULLY
     62 ILMJOB122            FAILED
--发现任务失败,查看失败原因
?
?
?
SQL> col COMMENTS FOR a80
SQL> SELECT task_id, job_name, job_state,COMMENTS FROM user_ilmresults;
?
TASK_ID JOB_NAME             JOB_STATE                                                              COMMENTS
------- -------------------- ---------------------------------------------------------------------- --------------------------------------------------------------------------------
      2 ILMJOB42             COMPLETED SUCCESSFULLY
     62 ILMJOB122            FAILED                                                                 ORA-01652: unable TO extend temp segment BY 1024 IN tablespace ADO_T2
                                                                                                    ORA-06512: at line 1
?
     82 ILMJOB162            FAILED                                                                 ORA-01652: unable TO extend temp segment BY 1024 IN tablespace ADO_T2
                                                                                                    ORA-06512: at line 1
原因为表空间存储空间不够。。。。
?
SQL> 
?
?
增大数据文件
SQL> ALTER DATABASE datafile '/oradata/noncdb/ado_t2.dbf' resize 400m;
?
DATABASE altered.
?
?
在此执行
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> 
SQL> SELECT task_id, job_name, job_state,COMMENTS FROM user_ilmresults;
?
TASK_ID JOB_NAME             JOB_STATE                                                              COMMENTS
------- -------------------- ---------------------------------------------------------------------- --------------------------------------------------------------------------------
      2 ILMJOB42             COMPLETED SUCCESSFULLY
     62 ILMJOB122            FAILED                                                                 ORA-01652: unable TO extend temp segment BY 1024 IN tablespace ADO_T2
                                                                                                    ORA-06512: at line 1
?
     82 ILMJOB162            FAILED                                                                 ORA-01652: unable TO extend temp segment BY 1024 IN tablespace ADO_T2
                                                                                                    ORA-06512: at line 1
?
    103 ILMJOB242            COMPLETED SUCCESSFULLY
?
成功完成
SQL> col TABLE_NAME FOR a20
SQL> /
?
TABLE_NAME           TABLESPACE_NAME
-------------------- ------------------------------------------------------------
ADO_MOVE             ADO_T2
HEAT_TEST            USERS
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment Springboot lit-il les listes, les tableaux, les collections de cartes et les objets dans les fichiers YML ? Comment Springboot lit-il les listes, les tableaux, les collections de cartes et les objets dans les fichiers YML ? May 11, 2023 am 10:46 AM

application.yml définit la collection de listes. La première façon consiste à utiliser l'annotation @ConfigurationProperties pour obtenir toutes les valeurs de la collection de listes type:code:status:-200-300-400-500. le fichier de configuration. Ce qu'il faut noter ici, c'est que lors de la définition de la liste Collection, définissez d'abord un Bean de classe de configuration, puis utilisez l'annotation @ConfigurationProperties pour obtenir la valeur de la collection de liste. Nous expliquerons ici le rôle des annotations pertinentes. @Component remet la classe d'entité à la direction Spring @ConfigurationPropertie

Comment définir la carte du délai d'expiration en Java Comment définir la carte du délai d'expiration en Java May 04, 2023 am 10:13 AM

1. Contexte technique Dans le développement de projets réels, nous utilisons souvent des middlewares de mise en cache (tels que Redis, MemCache, etc.) pour nous aider à améliorer la disponibilité et la robustesse du système. Mais dans de nombreux cas, si le projet est relativement simple, il n’est pas nécessaire d’introduire spécifiquement un middleware tel que Redis pour augmenter la complexité du système afin d’utiliser la mise en cache. Java lui-même dispose-t-il donc de composants de mise en cache légers et utiles ? La réponse est bien sûr oui, et il existe plusieurs solutions. Les solutions courantes incluent : ExpiringMap, LoadingCache et un packaging basé sur HashMap. 2. Effets techniques pour réaliser les fonctions courantes du cache, telles qu'une stratégie de suppression obsolète, l'échauffement des données de hotspot 3. ExpiringMap3.

Quels sont les moyens d'implémenter la sécurité des threads pour Map en Java ? Quels sont les moyens d'implémenter la sécurité des threads pour Map en Java ? Apr 19, 2023 pm 07:52 PM

Méthode 1. Utilisez HashtableMapashtable=newHashtable(); C'est la première chose à laquelle tout le monde pense, alors pourquoi est-il thread-safe ? Jetez ensuite un œil à son code source. Nous pouvons voir que nos méthodes couramment utilisées telles que put, get et containKey sont toutes synchrones, elles sont donc thread-safe publicsynchronizedbooleancontainsKey(Objectkey){Entrytab[]=table;inthash=key. hashCode( );intindex=(hash&0x7FFFFFFF)%tab.leng

Comment convertir des objets en cartes en Java – en utilisant BeanMap Comment convertir des objets en cartes en Java – en utilisant BeanMap May 08, 2023 pm 03:49 PM

Il existe de nombreuses façons de convertir des javabeans et des cartes, telles que : 1. Convertir des beans en json via ObjectMapper, puis convertir json en map. Cependant, cette méthode est compliquée et inefficace. Après les tests, 10 000 beans ont été convertis en boucle. ça prend 12 secondes ! ! ! Non recommandé.2. Obtenez les attributs et les valeurs de la classe du bean via la réflexion Java, puis convertissez-les en paires clé-valeur correspondant à la carte. Cette méthode est la deuxième meilleure, mais elle est un peu plus gênante. 3. Grâce à la méthode net.sf.cglib.beans.BeanMap dans la classe, cette méthode est extrêmement efficace. La différence entre elle et la deuxième méthode est qu'en raison de l'utilisation du cache, le bean doit être initialisé lorsqu'il est utilisé pour la première fois. créé.

Comment configurer et utiliser le module map sur le serveur Nginx Comment configurer et utiliser le module map sur le serveur Nginx May 21, 2023 pm 05:14 PM

L'instruction map est fournie par le module ngx_http_map_module. Par défaut, nginx charge ce module sauf si artificiellement --without-http_map_module. Le module ngx_http_map_module peut créer des variables dont les valeurs sont associées aux valeurs d'autres variables. Permet la classification ou le mappage simultané de plusieurs valeurs​​à plusieurs valeurs différentes​​et le stockage dans une variable. La directive map est utilisée pour créer une variable, mais n'effectue l'opération de mappage de vue que lorsque la variable est acceptée. En traitant des requêtes qui ne font pas référence à des variables, il n'y a aucune pénalité de performances pour le module. 1.ngx_http_map_module syntaxe de la carte de description des instructions du module

Une exploration approfondie des aspects structurels et des fonctions d'OP Stack Une exploration approfondie des aspects structurels et des fonctions d'OP Stack Jan 18, 2024 pm 05:45 PM

OPStack est un framework blockchain open source publié par Optimism Collective, le groupe de développement derrière Optimism Network. Il s’agit d’un outil important pour les communautés Ethereum et Optimism. L'objectif principal d'OPStack est de renforcer le réseau Optimism, en fournissant des outils logiciels clés au réseau principal Optimism, ainsi qu'à la prochaine superchaîne Optimism et à son modèle de gouvernance. En fournissant un environnement orienté développeur, l'idée principale d'OPStack est de promouvoir la croissance et l'innovation dans l'espace Ethereum. Il ouvre la voie à des développements de pointe et simplifie la création de blockchain. OPStac

Optimiser les performances de la carte linguistique Go Optimiser les performances de la carte linguistique Go Mar 23, 2024 pm 12:06 PM

Optimisation des performances du langage Go map Dans le langage Go, map est une structure de données très couramment utilisée, utilisée pour stocker une collection de paires clé-valeur. Toutefois, les performances de la carte peuvent être affectées lors du traitement de grandes quantités de données. Afin d'améliorer les performances de la carte, nous pouvons prendre certaines mesures d'optimisation pour réduire la complexité temporelle des opérations cartographiques, améliorant ainsi l'efficacité d'exécution du programme. 1. Pré-allouer la capacité de la carte. Lors de la création d'une carte, nous pouvons réduire le nombre d'extensions de carte et améliorer les performances du programme en pré-attribuant la capacité. Généralement, nous

Compréhension approfondie du réseau OP Mainnet : quel type de chaîne est OP Mainnet ? Compréhension approfondie du réseau OP Mainnet : quel type de chaîne est OP Mainnet ? Jan 24, 2024 am 11:30 AM

Auparavant, Optimism a officiellement annoncé que la chaîne Optimism avait été renommée OPMainnet. Certaines personnes peuvent se demander ce qu'est la chaîne OPMainnet ? Selon les informations actuelles, OPMainnet est une super chaîne open source dédiée au financement durable des biens publics. C'est l'une des nombreuses chaînes L2 qui peuvent communiquer de manière transparente avec Base, ZoraNetwork, PGN, Redstone et d'autres chaînes, mais ce n'est pas le cas. n’est pas une seule blockchain, elle représente vingt réseaux entiers de super-chaînes. L'éditeur ci-dessous parlera de cet OPMainnet en détail pour vous aider à comprendre le réseau OPMainnet. Quelle chaîne est OPMainnet ? OPMainnet est Ethernet

See all articles