暂无图片
如何查询索引的存储?
我来答
分享
暂无图片 匿名用户
如何查询索引的存储?

如何查询索引的存储?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
mocking

你可以试一下这个,如果是分区表他会记录到分区里面

SELECT TYPE ,db_name,schema_name,table_name,count(1)*8 AS '表容量/M'FROM (
WITH table_no AS (
SELECT b.db_name,
s.schema_name,
t.table_name ,
t.db_id,
t.table_id,
g.gsto_no,
g.head_no,
BIn(g.STORE_sta) STORE_type,
g.node_id1--版本1:里面的值表示对应节点号
,g.NODE_id2--版本2:里面的值表示对应节点号
,g.node_id3--版本3:里面的值表示对应节点号
,g.store_no1/*值对应node_id1存储位置*/
,g.store_no2/*值对应node_id2存储位置*/
,g.store_no3/*值对应node_id3存储位置*/
,st.ov_sto_no
FROM sys_tables t,sys_schemas s,sys_databases b,sys_gstores g,sys_stores st
WHERE t.schema_id=s.schema_id
AND t.db_id=s.db_id
AND t.db_id =b.db_id
AND t.table_id=g.obj_id
AND g.gsto_no=st.gsto_no
AND t.table_name='test_13'),
index_no AS (SELECT * FROM sys_indexes ind,sys_stores st
WHERE ind.gsto_no=st.gsto_no),
parti_no AS (SELECT * FROM sys_partis parind,sys_stores st
WHERE parind.gsto_nos=st.gsto_no),
lobs_no AS (SELECT * FROM sys_lobs lob)
SELECT CASE WHEN index_no.gsto_no IS NOT NULL THEN '索引存储'
WHEN parti_no.gsto_nos IS NOT NULL THEN '分区存储'
WHEN lobs_no.lob_gstos IS NOT NULL THEN '大字段存储'
ELSE '表存储'END TYPE ,table_no.* FROM table_no ,index_no ,parti_no,lobs_no
WHERE table_no.gsto_no=index_no.gsto_no(+)
and table_no.gsto_no=parti_no.gsto_nos(+)
and table_no.head_no=lobs_no.lob_gstos(+)
)GROUP BY TYPE ,db_name,schema_name,table_name
UNION ALL
SELECT 'ov存储',db_name,schema_name,table_name,count(1)*8 AS '表容量/M' FROM (SELECT DISTINCT db_name,
schema_name,
table_name ,
db_id,
table_id,ov_sto_no FROM table_no) s,sys_ov_stores ov
WHERE s.ov_sto_no=ov.STORE_NO
GROUP BY db_name,schema_name,table_name

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏