[20211129]完善tpt tablist.sql脚本.txt --//1.我加入几个字段 c.histogram , c.sample_size。 --//2.最后的order by,加入了column_id字段,这样基本表定义顺序输出。 ORDER BY h.owner , h.table_name -- , h.column_name , c.column_id , h.endpoint_number / --//3.查询使用表dba_tab_cols代替dba_tab_columns,这样可以查询隐含列的信息。 -- dba_tab_columns c dba_tab_cols c --//4.加入了PARTITION BY. -- h.endpoint_number - lag(endpoint_number, 1) over ( h.endpoint_number - lag(endpoint_number, 1,0) over ( PARTITION BY h.owner , h.table_name , h.column_name $ cat tabhist.sql -- Copyright 2018 Tanel Poder. All rights reserved. More info at http://tanelpoder.com -- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms & conditions. -- CREATE OR REPLACE FUNCTION HEXSTR ( p_number in number ) return varchar2 -- as -- l_str varchar2(4000) := to_char(p_number,'fm'||rpad('x',50,'x')); -- l_return varchar2(4000); -- begin -- while ( l_str is not null ) -- loop -- l_return := l_return || chr(to_number(substr(l_str,1,2),'xx')); -- l_str := substr( l_str, 3 ); -- end loop; -- return l_return; -- end; -- / -- -- GRANT EXECUTE ON HEXSTR TO PUBLIC; -- CREATE OR REPLACE PUBLIC SYNONYM HEXSTR FOR HEXSTR; col tabhist_ep_actual_value head ENDPOINT_ACTUAL_VALUE for a40 col tabhist_ep_value head ENDPOINT_VALUE for a30 just right col tabhist_ep_value2 for a80 col tabhist_col_name head COLUMN_NAME for a30 col tabhist_data_type head DATA_TYPE for a20 word_wrap break on tabhist_col_name on tabhist_data_type skip 1 select h.column_name tabhist_col_name , c.data_type tabhist_data_type , c.histogram , c.sample_size , h.endpoint_number , CASE WHEN c.data_type = 'NUMBER' THEN LPAD(TO_CHAR(h.endpoint_value), 30, ' ') WHEN c.data_type IN ('CHAR', 'VARCHAR2', 'NCHAR', 'NVARCHAR2') THEN --to_char(to_number((substr(trim(to_char(h.endpoint_value,lpad('x',63,'x'))),1,12)),'XXXXXXXXXXXXXXXX')) to_char(to_number((substr(trim(to_char(h.endpoint_value,lpad('x',63,'x'))),1,12)),'XXXXXXXXXXXXXXXX'),'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX') --hexstr(to_number((substr(trim(to_char(h.endpoint_value,lpad('x',63,'x'))),1,12)),'XXXXXXXXXXXXXXXX')) --hexstr(substr(to_char(h.endpoint_value,'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'),1,12)) ELSE trim(substr(trim(to_char(h.endpoint_value,lpad('x',63,'x'))),1,12)) END tabhist_ep_value , CASE WHEN c.histogram = 'FREQUENCY' THEN h.endpoint_number - lag(endpoint_number, 1,0) over ( PARTITION BY h.owner , h.table_name , h.column_name order by h.owner , h.table_name , h.column_name , h.endpoint_number ) ELSE h.endpoint_number --NULL END frequency ,CASE WHEN c.histogram = 'HEIGHT BALANCED' THEN CASE WHEN c.data_type = 'NUMBER' THEN h.endpoint_value - lag(endpoint_value, 1,0) over ( PARTITION BY h.owner , h.table_name , h.column_name order by h.owner , h.table_name , h.column_name , h.endpoint_number ) ELSE null END ELSE null END height_bal -- , hexstr(h.endpoint_value) tabhist_ep_value -- , to_char(h.endpoint_value,'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') tabhist_ep_value2 , h.endpoint_actual_value tabhist_ep_actual_value from -- dba_tab_columns c dba_tab_cols c , dba_tab_histograms h where c.owner = h.owner and c.table_name = h.table_name and c.column_name = h.column_name and upper(h.table_name) LIKE upper(CASE WHEN INSTR('&1','.') > 0 THEN SUBSTR('&1',INSTR('&1','.')+1) ELSE '&1' END ) AND h.owner LIKE CASE WHEN INSTR('&1','.') > 0 THEN UPPER(SUBSTR('&1',1,INSTR('&1','.')-1)) ELSE user END AND UPPER(h.column_name) LIKE UPPER('&2') ORDER BY h.owner , h.table_name -- , h.column_name , c.column_id , h.endpoint_number / --//我的测试: SCOTT@book> @ver1 PORT_STRING VERSION BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production create table t as select * from all_objects; SCOTT@book> execute sys.dbms_stats.gather_table_stats ( OwnName => user,TabName => 't',Estimate_Percent => null,Method_Opt => 'FOR ALL COLUMNS SIZE 254 ',Cascade => True ,No_Invalidate => false) PL/SQL procedure successfully completed. SCOTT@book> @ tabhist t owner COLUMN_NAME DATA_TYPE HISTOGRAM SAMPLE_SIZE ENDPOINT_NUMBER ENDPOINT_VALUE FREQUENCY HEIGHT_BAL ENDPOINT_ACTUAL_VALUE ------------------------------ -------------------- --------------- ----------- --------------- ------------------------------ ---------- ---------- ---------------------------------------- OWNER VARCHAR2 FREQUENCY 84808 2251 415045585F30 2251 FREQUENCY 84808 2256 415050514F53 5 FREQUENCY 84808 2264 4248FFFFFFFF 8 FREQUENCY 84808 2649 435458535953 385 FREQUENCY 84808 2706 4442534E4D50 57 FREQUENCY 84808 3014 455846535953 308 FREQUENCY 84808 3025 464C4F57535F 11 FREQUENCY 84808 3059 4851FFFFFFFF 34 FREQUENCY 84808 3107 495800000000 48 FREQUENCY 84808 4688 4D44535952FF 1581 FREQUENCY 84808 4800 4F44FFFFFFFF 112 FREQUENCY 84808 5517 4F4C41505359 717 FREQUENCY 84808 5525 4F5241434C45 8 FREQUENCY 84808 5764 4F5244444154 239 FREQUENCY 84808 5774 4F5244504C55 10 FREQUENCY 84808 8287 4F5244535953 2513 FREQUENCY 84808 8295 4F55544C4E00 8 FREQUENCY 84808 8297 4F5742535952 2 FREQUENCY 84808 8309 4F5742535953 12 FREQUENCY 84808 8319 504CFFFFFFFF 10 FREQUENCY 84808 42320 5055424C4942 34001 FREQUENCY 84808 42379 53434F545400 59 FREQUENCY 84808 42679 534800000000 300 FREQUENCY 84808 42687 53495F494E46 8 FREQUENCY 84808 80046 535952FFFFFF 37359 FREQUENCY 84808 83438 5359534D414E 3392 FREQUENCY 84808 84006 53595354454D 568 FREQUENCY 84808 84319 574D53595300 313 FREQUENCY 84808 84808 584441FFFFFF 489 SCOTT@book> @ grp owner t count owner in table t... OWNER COUNT(*) ------------------------------ ---------- APEX_030200 2251 APPQOSSYS 5 BI 8 CTXSYS 385 DBSNMP 57 EXFSYS 308 FLOWS_FILES 11 HR 34 IX 48 MDSYS 1581 OE 112 OLAPSYS 717 ORACLE_OCM 8 ORDDATA 239 ORDPLUGINS 10 ORDSYS 2513 OUTLN 8 OWBSYS 2 OWBSYS_AUDIT 12 PM 10 PUBLIC 34001 SCOTT 59 SH 300 SI_INFORMTN_SCHEMA 8 SYS 37359 SYSMAN 3392 SYSTEM 568 WMSYS 313 XDB 489 29 rows selected. --//我有点不理解的是直方图有时候ENDPOINT_ACTUAL_VALUE有显示,有时候没有值。
[20211129]完善tpt tablist.sql脚本.txt
来源:这里教程网
时间:2026-03-03 17:14:29
作者:
编辑推荐:
- [20211129]完善tpt tablist.sql脚本.txt03-03
- 「Oracle」Oracle数据库基本概念03-03
- [20211130]完善tpt t.sql脚本.txt03-03
- oracle19c连pdb03-03
- oracle19C技术架构03-03
- oracle打补丁回顾03-03
- 2021 DFA亚洲最具影响力设计奖作品03-03
- [20211130]为什么出现负数.txt03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- oracle打补丁回顾
oracle打补丁回顾
26-03-03 - 2021 DFA亚洲最具影响力设计奖作品
2021 DFA亚洲最具影响力设计奖作品
26-03-03 - 被格式化的硬盘文件能恢复吗,三步恢复格式化硬盘
被格式化的硬盘文件能恢复吗,三步恢复格式化硬盘
26-03-03 - 【ASK_ORACLE】Oracle Data Guard(一)DG架构
【ASK_ORACLE】Oracle Data Guard(一)DG架构
26-03-03 - Oracle:open_cursors
Oracle:open_cursors
26-03-03 - EXCEL不可读怎么办,修复EXCEL文件不可读
EXCEL不可读怎么办,修复EXCEL文件不可读
26-03-03 - goldengate抽取进程延迟90小时
goldengate抽取进程延迟90小时
26-03-03 - 文件夹删除了如何恢复?轻松恢复教学
文件夹删除了如何恢复?轻松恢复教学
26-03-03 - Stefania Infante的超现实色彩的概念性插画
Stefania Infante的超现实色彩的概念性插画
26-03-03 - Oracle:TABLE MONITORING
Oracle:TABLE MONITORING
26-03-03
