利用analyze ...validate structure..;语句验证表、索引、聚簇、分区表、临时表的结构。
所谓结构,对于不同对象有不同的定义:
对于表,该语句会扫描所有的数据块和数据行,以验证表的结构是否跟数据字典中表的定义一样,是否满足定义的各种约束;
analyze table TABLE1 validate structure ;--分析表的结构
analyze table TABLE1 validate structure casecade;--连带分析索引等结构;
analyze table TABLE1 validate structure online|offiline;--当有DML操作访问该表的时候,online则支持在线验证,offline则不支持。
对于聚簇,跟表原理一样,验证聚簇的数据分布是否跟聚簇的定义一样;
对于临时表,验证该会话阶段临时表和索引的结构是否跟定义的一样;
对于索引,该语句会扫描所有的数据块,以验证是否有坏的数据块存在;
对于分区表,该语句会扫描每一个数据块和数据行,以验证行数据是否分配到正确的分区;
若验证的结构不一样,就会报错。对于该类错误,修正方法是删除、重建;