【DWS】数据库索引出错的处理

举报
longing 发表于 2019/08/02 17:54:30 2019/08/02
【摘要】 ## 问题描述DWS集群在执行查询语句时,使用索引查询字段出现表中存在匹配数据但是select语句查询结果为空的情况## 可能原因分析对于索引出现问题的原因比较复杂,1.3.4版本的dws集群索引崩溃的原因有:事务本身使用的原因;主备之间同步的原因;ddl交换分区合并分区;pg本身B-tree的原因。索引问题出现后的处理一般是通过reindex来恢复索引## 解决办法创建一个行存表tpcds...

## 问题描

DWS集群在执行查询语句时,使用索引查询字段出现表中存在匹配数据但是select语句查询结果为空的情况


## 可能原因分

对于索引出现问题的原因比较复杂,1.3.4版本的dws集群索引崩溃的原因有:事务本身使用的原因;主备之间同步的原因;ddl交换分区合并分区;pg本身B-tree的原因。索引问题出现后的处理一般是通过reindex来恢复索引


## 解决办

创建一个行存表tpcds.customer_t1,并在tpcds.customer_t1表上的c_customer_sk字段创建索引。

CREATE TABLE tpcds.customer_t1

(

c_customer_sk integer not null,

c_customer_id char(16) not null,

c_current_cdemo_sk integer ,

c_current_hdemo_sk integer ,

c_current_addr_sk integer ,

c_first_shipto_date_sk integer ,

c_first_sales_date_sk integer ,

c_salutation char(10) ,

c_first_name char(20) ,

c_last_name char(30) ,

c_preferred_cust_flag char(1) ,

c_birth_day integer ,

c_birth_month integer ,

c_birth_year integer ,

c_birth_country varchar(20) ,

c_login char(13) ,

c_email_address char(50) ,

c_last_review_date char(10)

)

WITH (orientation = row)

DISTRIBUTE BY HASH (c_customer_sk);


CREATE INDEX tpcds_customer_index1 ON tpcds.customer_t1 (c_customer_sk);


重建一个单独索引:

REINDEX INDEX tpcds.tpcds_customer_index1;


重建表tpcds.customer_t1上的所有索引

REINDEX TABLE tpcds.customer_t1;

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。