Consultor de segmentos de Oracle, cómo lidiar con la migración de filas de enlaces de filas, marca de agua más baja

Oracle tiene 3 programas en segundo plano que se ejecutan con regularidad, asesoramiento de segmento, diagnóstico de sentencias SQL y recopilación de información estadística, entre los cuales se utiliza el asesoramiento de segmento para analizar si la distribución de datos de tabla en bloques de datos es razonable, por ejemplo, si los enlaces de fila, fila migración, ¿Está justificada la situación de marea alta?

Comprobar si las sugerencias del asesor de segmento están habilitadas

SELECT client_name ,status ,consumer_group
FROM dba_autotask_client
ORDER BY client_name;

Ver el estado de la línea del asesor de espacio automático

Habilitar sugerencias del asesor de segmento

--启用
BEGIN
  DBMS_AUTO_TASK_ADMIN.ENABLE(
  client_name => 'sql tuning advisor',
  operation => NULL,
  window_name => NULL);
END;
/
--查看
SELECT window_name,TO_CHAR(window_next_time,'YYYY-MM-DD HH24:MI:SS')
,sql_tune_advisor
FROM dba_autotask_window_clients;

Ver el contenido sugerido de los consultores del segmento

SELECT
'Segment Advice --------------------------'|| chr(10) ||
'TABLESPACE_NAME : ' || tablespace_name || chr(10) ||
'SEGMENT_OWNER : ' || segment_owner || chr(10) ||
'SEGMENT_NAME : ' || segment_name || chr(10) ||
'ALLOCATED_SPACE : ' || allocated_space || chr(10) ||
'RECLAIMABLE_SPACE: ' || reclaimable_space || chr(10) ||
'RECOMMENDATIONS : ' || recommendations || chr(10) ||
'SOLUTION 1 : ' || c1 || chr(10) ||
'SOLUTION 2 : ' || c2 || chr(10) ||
'SOLUTION 3 : ' || c3 Advice
FROM
TABLE(dbms_space.asa_recommendations('FALSE', 'FALSE', 'FALSE'));

select
'Task Name : ' || f.task_name || chr(10) ||
'Start Run Time : ' || TO_CHAR(execution_start, 'dd-mon-yy hh24:mi') || chr (10) ||
'Segment Name : ' || o.attr2 || chr(10) ||
'Segment Type : ' || o.type || chr(10) ||
'Partition Name : ' || o.attr3 || chr(10) ||
'Message : ' || f.message || chr(10) ||
'More Info : ' || f.more_info || chr(10) ||
'------------------------------------------------------' Advice
FROM dba_advisor_findings f
,dba_advisor_objects o
,dba_advisor_executions e
WHERE o.task_id = f.task_id
AND o.object_id = f.object_id
AND f.task_id = e.task_id
AND e. execution_start > sysdate - 1
AND e.advisor_name = 'Segment Advisor'
ORDER BY f.task_name;

¿Qué es el enlace de fila?

La vinculación de filas se debe a la gran cantidad de datos (inicial o actualizado posteriormente), lo que da como resultado una fila de datos que necesita abarcar varios bloques de datos, que es la vinculación de filas.

¿Qué es la migración de filas?

Un bloque de datos de fila es relativamente pequeño inicialmente o después de actualizarse, por lo que se coloca en otro bloque de datos con espacio, y solo se mantiene un puntero en el bloque de datos original para apuntar al bloque de datos que almacena los datos. Esta es la migración de fila.

¿Qué tiene de malo el encadenamiento de filas y la migración de filas?

Se generará una E/S excesiva al leer datos.

Cómo manejar el encadenamiento de filas y la migración de filas

1. mover

  1. Alterar mesa xxx mover;
  2. reconstruir todos los índices en la tabla

Cabe señalar que no se pueden producir transacciones en esta tabla durante este período.

2. Migración de datos

  1. Ejecute un script de análisis para analizar los datos vinculados
  2. Inserte los datos generados por la vinculación de filas y la migración de filas en la tabla temporal
  3. Elimine la tabla original para generar enlaces de fila y datos de migración de fila
  4. Reinsertar los datos de la tabla temporal en la tabla original

3. Use la bomba de datos para importar y exportar la tabla de reconstrucción

¿Qué es la marca de agua alta?

La marca de límite superior es la línea divisoria entre los bloques de datos no utilizados y los bloques de datos utilizados. Al consultar datos, comience desde el límite superior y mire hacia abajo.

Cómo bajar el nivel alto del agua

Hay 4 métodos:

1. Tabla retráctil

  1. habilitar la migración de filas alterar tabla emp habilitar el movimiento de filas
  2. Ejecutar encoger alterar tabla emp encoger espacio;
  3. índice de reconstrucción

2. tabla truncada

3. Mueva la tabla (necesita reconstruir el índice)

4. Use la bomba de datos para exportar la tabla, eliminar la tabla y volver a importar

Supongo que te gusta

Origin blog.csdn.net/x6_9x/article/details/119760477
Recomendado
Clasificación