oracle优化用到的sql

19c、>50w 行、统计过期 > 3 个月

bash 复制代码
SET LINESIZE 500
SET PAGESIZE 200
COLUMN CON_ID         FORMAT 999
COLUMN CON_NAME       FORMAT A25
COLUMN OWNER          FORMAT A25
COLUMN TABLE_NAME     FORMAT A40
COLUMN NUM_ROWS       FORMAT 999,999,999,999
COLUMN SIZE_MB        FORMAT 999,999.9
COLUMN LAST_ANALYZED  FORMAT A14
COLUMN STATUS         FORMAT A20

SELECT
    t.con_id,
    c.name AS con_name,  <<<--- 这就是 PDB 名称
    t.owner,
    t.table_name,
    t.num_rows,
    ROUND(s.bytes / 1024 / 1024, 1) AS size_mb,
    TO_CHAR(t.last_analyzed, 'yyyy-mm-dd') AS last_analyzed,
    CASE
        WHEN t.last_analyzed IS NULL THEN '⚠️ 从未统计'
        WHEN SYSDATE - t.last_analyzed > 90 THEN '❌ 过期>3个月'
        ELSE '✅ 正常'
    END AS status
FROM
    CDB_TABLES t
INNER JOIN
    v$containers c ON t.con_id = c.con_id
LEFT JOIN
    CDB_SEGMENTS s
    ON t.con_id = s.con_id
    AND t.owner = s.owner
    AND t.table_name = s.segment_name
WHERE
    t.owner NOT IN (
        'SYS','SYSTEM','OUTLN','DBSNMP','WMSYS','CTXSYS','XDB',
        'APEX_040200','APEX_190200','MDSYS','ORDSYS','OLAPSYS',
        'EXFSYS','LBACSYS','APPQOSSYS','DIP','TSMSYS','SYSMAN',
        'SYSBACKUP','SYSDG','SYSKM','SYSRAC','SYS$UMF','ANONYMOUS',
        'GSMADMIN_INTERNAL','DVSYS','DVF','ORDDATA','OWBSYS','OWBSYS_AUDIT'
    )
    AND t.num_rows > 500000
    AND (t.last_analyzed IS NULL OR SYSDATE - t.last_analyzed > 90)
    AND t.table_name NOT LIKE 'BIN$%'
    AND c.open_mode = 'READ WRITE'
ORDER BY
    t.con_id, t.num_rows DESC;


SET LINESIZE 500
SET PAGESIZE 200
COLUMN CON_ID         FORMAT 999
COLUMN CON_NAME       FORMAT A25
COLUMN OWNER          FORMAT A25
COLUMN TABLE_NAME     FORMAT A40
COLUMN NUM_ROWS       FORMAT 999,999,999,999
COLUMN SIZE_MB        FORMAT 999,999.9
COLUMN LAST_ANALYZED  FORMAT A14

SELECT
    t.con_id,
    c.name AS con_name,
    t.owner,
    t.table_name,
    t.num_rows,
    ROUND(s.bytes / 1024 / 1024, 1) AS size_mb,
    TO_CHAR(t.last_analyzed, 'yyyy-mm-dd') AS last_analyzed
FROM
    CDB_TABLES t
INNER JOIN
    v$containers c ON t.con_id = c.con_id
LEFT JOIN
    CDB_SEGMENTS s
    ON t.con_id = s.con_id
    AND t.owner = s.owner
    AND t.table_name = s.segment_name
WHERE
    t.owner NOT IN (
        'SYS','SYSTEM','OUTLN','DBSNMP','WMSYS','CTXSYS','XDB',
        'APEX_040200','APEX_190200','MDSYS','ORDSYS','OLAPSYS',
        'EXFSYS','LBACSYS','APPQOSSYS','DIP','TSMSYS','SYSMAN',
        'SYSBACKUP','SYSDG','SYSKM','SYSRAC','SYS$UMF','ANONYMOUS',
        'GSMADMIN_INTERNAL','DVSYS','DVF','ORDDATA','OWBSYS','OWBSYS_AUDIT'
    )
    AND t.num_rows > 500000
    AND t.table_name NOT LIKE 'BIN$%'
    AND c.open_mode = 'READ WRITE'
ORDER BY
    t.con_id, t.num_rows DESC;
相关推荐
IvorySQL20 小时前
IvorySQL Agent 探索与实践
数据库·人工智能·postgresql·oracle·ivorysql
灯澜忆梦1 天前
【MySQL2】| DML数据操作语言
数据库·sql
麦聪聊数据1 天前
业务自助取数(下):安全可控前提下,实现取数效率百倍提升
数据库·sql
ShiXZ2131 天前
指令集-SQL 常用指令速查手册
数据库·sql·mysql·oracle
阿拉斯攀登1 天前
售货柜实战:IPC 拉流 → 抽帧 → YOLO 识别完整流水线
yolo·ffmpeg·音视频·webrtc·视频编解码
许彰午1 天前
从Oracle看MySQL聚簇索引的架构性缺陷与缓解之道
mysql·oracle·架构
AllData公司负责人1 天前
数据集成管理|AIIData数据中台实现MySQL、Hive、Oracle一键接入Doris
大数据·数据库·人工智能·hive·mysql·oracle·数据分析
Databend1 天前
小 Bitmap,大优化:Databend 如何加速大规模集合聚合
大数据·数据库·sql
阿拉斯攀登1 天前
RTSP 拉流与录制:IPC 摄像头本地录像完整方案
ffmpeg·音视频·webrtc·实时音视频·视频编解码
婉然从物1 天前
Flink SQL 元数据持久化实战:从“每次重启表消失”到“Hive Metastore 永久存储”
hive·sql·flink