为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM Database Server 64 V8 DB
【操作系统】:Linux
【CPU】:
【问题描述】*:SELECT * FROM ALL_TABLES查询出来的AVG_ROW_LEN为空,使用DBMS_STATS.GATHER_TABLE_STATS()也看不到具体表的AVG_ROW_LEN
回答 0
暂无回答
Paige
收集完统计信息后,可通过系统表sysstats、 sysobjects、 syscolumns 关联查询查看某表某字段平均行长,参考sql如下:
SELECT
SCH.NAME AS SCHEMA_NAME,
OBJ.NAME AS TABLE_NAME,
STAT.COLID,
COL.NAME AS COLUMN_NAME,
STAT.T_FLAG,
STAT.col_avg_len,
STAT.LAST_GATHERED
FROM
SYSSTATS STAT JOIN SYSOBJECTS OBJ ON STAT.ID = OBJ.ID
JOIN SYSOBJECTS SCH ON OBJ.SCHID = SCH.ID
LEFT JOIN SYSCOLUMNS COL ON STAT.ID = COL.ID AND STAT.COLID = COL.COLID
WHERE SCH.NAME = 'SYSDBA' -- 替换为实际模式名
AND OBJ.NAME = 'EMPLOYEE_HIERARCHY'; -- 替换为实际表名
收集完统计信息后,可通过系统表sysstats、 sysobjects、 syscolumns 关联查询查看某表某字段平均行长,参考sql如下:
SELECT
SCH.NAME AS SCHEMA_NAME,
OBJ.NAME AS TABLE_NAME,
STAT.COLID,
COL.NAME AS COLUMN_NAME,
STAT.T_FLAG,
STAT.col_avg_len,
STAT.LAST_GATHERED
FROM
SYSSTATS STAT JOIN SYSOBJECTS OBJ ON STAT.ID = OBJ.ID
JOIN SYSOBJECTS SCH ON OBJ.SCHID = SCH.ID
LEFT JOIN SYSCOLUMNS COL ON STAT.ID = COL.ID AND STAT.COLID = COL.COLID
WHERE SCH.NAME = 'SYSDBA' -- 替换为实际模式名
AND OBJ.NAME = 'EMPLOYEE_HIERARCHY'; -- 替换为实际表名