问题描述
你好,
我有几件事需要澄清与扩展统计类型列组统计相关。
当我们更改某些表格列时,我认为在进行更改之前删除扩展的统计信息总是一个好主意。
我们可以使用USER_STAT_EXTENSIONS vew找到是否有这样的。
在删除此统计信息时,我们发现了一些无法从DBMS_Stats.Drop_Extended_Stats方法中删除的扩展统计信息。
具有可Droppable = 值的值NO 在user_stat_extensions视图中。
请问Droppable = 是什么意思NO在这个扩展的统计视图中?
我还注意到,在大多数 “droppable = no” 列中,扩展名名称都以SYS_NC(虽然大部分Droppable = YES是系统)。
做什么SYS_NC&SYS_STS实际上是意思?
是否建议以某种方式删除这些 “droppable = no” 列统计信息?还是我们应该避免这样做?
换句话说,当涉及到更改列之类的情况时,我们应该只删除被列为可删除 = 是的扩展统计信息吗?
Thanks&Best Regards,
纳文思
我有几件事需要澄清与扩展统计类型列组统计相关。
当我们更改某些表格列时,我认为在进行更改之前删除扩展的统计信息总是一个好主意。
我们可以使用USER_STAT_EXTENSIONS vew找到是否有这样的。
在删除此统计信息时,我们发现了一些无法从DBMS_Stats.Drop_Extended_Stats方法中删除的扩展统计信息。
具有可Droppable = 值的值NO 在user_stat_extensions视图中。
请问Droppable = 是什么意思NO在这个扩展的统计视图中?
我还注意到,在大多数 “droppable = no” 列中,扩展名名称都以SYS_NC(虽然大部分Droppable = YES是系统)。
做什么SYS_NC&SYS_STS实际上是意思?
是否建议以某种方式删除这些 “droppable = no” 列统计信息?还是我们应该避免这样做?
换句话说,当涉及到更改列之类的情况时,我们应该只删除被列为可删除 = 是的扩展统计信息吗?
Thanks&Best Regards,
纳文思
专家解答
如果需要扩展来支持其他功能,那么我们就不能删除它。这里有一个例子
所以我们从没有扩展开始。现在我们添加一个来处理X和Y之间的关系
现在该扩展是可放弃的,因为 (由于缺少更好的术语) 它是 “独立的”,因为它不支持任何其他功能,并且还看到了几行,因此没有它,该表就可以正常工作。
但是现在让我们这样做...
我们添加了一个扩展,以明确支持刚刚添加的新虚拟列的统计信息。我们需要虚拟列功能才能正常工作,因此不允许您删除它。
这种方法没有什么新的东西-就像你不能删除用于主键的索引一样。他们被绑在一起。
SQL> SQL> create table t ( x int, y int); Table created. SQL> SQL> insert into t (x,y) select rownum, rownum from dual connect by level <=100; 100 rows created. SQL> SQL> exec dbms_stats.gather_table_stats('','T'); PL/SQL procedure successfully completed. SQL> SQL> select * from user_stat_extensions 2 where table_name = 'T'; no rows selected复制
所以我们从没有扩展开始。现在我们添加一个来处理X和Y之间的关系
SQL> SQL> SQL> select dbms_stats.create_extended_stats('','T','(x,y)') from dual; DBMS_STATS.CREATE_EXTENDED_STATS('','T','(X,Y)') ---------------------------------------------------------------------------------------------------------------------------------- SYS_STUYPW88OE302TFVBNC6$MMQXE 1 row selected. SQL> SQL> exec dbms_stats.gather_table_stats('','T'); PL/SQL procedure successfully completed. SQL> SQL> select * from user_stat_extensions 2 where table_name = 'T' 3 @pr ============================== TABLE_NAME : T EXTENSION_NAME : SYS_STUYPW88OE302TFVBNC6$MMQXE EXTENSION : ("X","Y") CREATOR : USER DROPPABLE : YES PL/SQL procedure successfully completed.复制
现在该扩展是可放弃的,因为 (由于缺少更好的术语) 它是 “独立的”,因为它不支持任何其他功能,并且还看到了几行,因此没有它,该表就可以正常工作。
但是现在让我们这样做...
SQL> SQL> alter table t add z int generated always as (y+x); Table altered. SQL> SQL> exec dbms_stats.gather_table_stats('','T'); PL/SQL procedure successfully completed. SQL> SQL> select * from user_stat_extensions 2 where table_name = 'T' 3 @pr ============================== TABLE_NAME : T EXTENSION_NAME : SYS_STUYPW88OE302TFVBNC6$MMQXE EXTENSION : ("X","Y") CREATOR : USER DROPPABLE : YES ============================== TABLE_NAME : T EXTENSION_NAME : Z EXTENSION : ("Y"+"X") CREATOR : SYSTEM DROPPABLE : NO PL/SQL procedure successfully completed. SQL> SQL>复制
我们添加了一个扩展,以明确支持刚刚添加的新虚拟列的统计信息。我们需要虚拟列功能才能正常工作,因此不允许您删除它。
这种方法没有什么新的东西-就像你不能删除用于主键的索引一样。他们被绑在一起。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
597次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
576次阅读
2025-04-18 14:18:38
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
491次阅读
2025-04-08 09:12:48
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
474次阅读
2025-04-20 10:07:02
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
459次阅读
2025-04-22 00:20:37
Oracle 19c RAC更换IP实战,运维必看!
szrsu
436次阅读
2025-04-08 23:57:08
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
434次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
420次阅读
2025-04-17 17:02:24
火焰图--分析复杂SQL执行计划的利器
听见风的声音
368次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
358次阅读
2025-04-15 14:48:05