您好,语句改成这样,布隆索引是有的。添加bitmap索引说已经存在索引了,是不是要把布隆索引删了,桶的话已经添加了,现在提升到2s多久可以返回结果了,但是还是达不到秒内返回。还有哪里可以优化的吗
SELECT
A.ROW_ID,
A.SALE_ORD_ID,
A.PROD_ID OBJECT_ID,
A.ACTION_CD,
A.INTEGRATION_ID,
A.ASSET_INTEG_ID,
A.ROOT_ORDER_ITEM_ID PROD_ITEM_ID,
A.CREATED,
A.LAST_UPD,
A.CREATE_BY,
A.LAST_UPD_BY,
A.PART_NUM,
A.TYPE,
A.NAME,
A.ADJ_UNIT_PRI,
A.UNIT_PRI,
A.AGREE_ID,
A.X_VPN_GROUP_ID,
A.X_VPN_INNER_ID,
A.X_INTEGRATION_NUM,
A.X_USERNAME,
A.SERV_ACCNT_ID,
A.DESC_TEXT,
A.X_CIRCUIT_NUMBER,
A.X_PROM_INTEG_ID,
A.X_PROM_ID,
A.X_RELAY_MAIN_NUMBER,
A.SERVICE_END_DT
FROM SIEBEL_HISTORY.S_ORDER_ITEM_DETAIL_1122_par
A
WHERE A.PAR_ORDER_ITEM_ID = ‘1-4DUFDJM’ AND A.PROD_ROW_ID IS NOT NULL
辛苦发下新的profile看下吧
select count(*) cnt,ROW_ID from S_ORDER_ITEM_DETAIL group by ROW_ID limit 100;
可移执行下这个发下结果看下么?
set enable_shared_scan = true 设置这个参数之后重新跑下看下呢。
这个设置了,但是效率没有变化。
您好这个可以告知下结果么?目前看下来scan花费了大约1s多的时间,需要确认下是不是bucket列造成了数据分布不均匀导致的。
这个结果全是2。
select * from (
select ROW_ID ,count(*) cnt from S_ORDER_ITEM_DETAIL group by ROW_ID
) t order by ROW_ID desc limit 100; 这样看下呢?
这个结果又全是1.
select * from (
select ROW_ID ,count(*) cnt from S_ORDER_ITEM_DETAIL group by ROW_ID
) t order by cnt desc limit 100;
搞错了,是这个。
1-2XQRLW6 | 54 |
---|---|
1-35IRV6H | 54 |
1-6RW8MX9 | 54 |
1-21CFOO8 | 36 |
1-9FFQ6ON | 36 |
1-AF9EDXY | 36 |
1-BDB7FT9 | 36 |
1-BDCIW2M | 36 |
1-B4GRXIE | 36 |
1-B270DR5 | 36 |
1-21CFOOB | 36 |
1-B9AS56R | 36 |
1-6ZLXLY9 | 36 |
1-AIXGVMD | 36 |
1-21C091I | 36 |
1-BCCNYK9 | 36 |
1-AD4FH7Y | 36 |
1-5QN53TG | 36 |
1-2TB38VB | 36 |
1-21CFOOY | 36 |
1-BBG4O8I | 36 |
1-9YBL1KA | 36 |
1-BERAYP8 | 32 |
1-BEXTSCR | 32 |
1-IBPWVMH | 32 |
1-IJWDA8H | 32 |
1-BEXJMB1 | 32 |
1-BESAKLK | 32 |
1-BD6UZ4L | 32 |
1-IBEH5H2 | 32 |
1-IBPWVYV | 32 |
1-BESAKLM | 32 |
1-IBPWVO0 | 32 |
1-IJUB4JI | 32 |
1-IJUB4JG | 32 |
1-BEH0UJD | 32 |
1-BEH0UK5 | 32 |
1-BE6IBVB | 32 |
1-IBPKW0U | 32 |
1-5XBBTOB | 32 |
1-BD31T4R | 32 |
1-IBFJHF5 | 32 |
1-IBPWVO3 | 32 |
1-BESAKLL | 32 |
1-IJN8LPW | 32 |
1-IBGBXA6 | 32 |
1-BCSK95D | 32 |
1-IJUB4JC | 32 |
1-G1PXASW | 32 |
1-BESAKLI | 32 |
1-AP2J5HP | 32 |
1-IJ013K4 | 32 |
1-IBPTHI4 | 32 |
1-IBPWVMY | 32 |
1-4C7RGBU | 32 |
1-IBEH4ZP | 32 |
1-IBPWVYR | 32 |
1-ID88FF8 | 32 |
1-BEPDDCW | 32 |
1-IIZQ4VP | 32 |
1-IJQ0J50 | 32 |
1-IJR5XW6 | 32 |
1-IG8YC2X | 32 |
1-A01KAGM | 32 |
1-IJUB4JD | 32 |
1-IBDQI9N | 32 |
1-BEH0ULV | 32 |
1-IJYIVC2 | 32 |
1-BF0KECA | 32 |
1-4C7RG9P | 32 |
1-B3J73F5 | 32 |
1-BF0FRA1 | 32 |
1-BERJ15H | 32 |
1-BF4U17R | 32 |
1-BF0U9DT | 32 |
1-BDWWFEH | 32 |
1-BE6IBP9 | 32 |
1-IJ013NL | 32 |
1-IJ013LZ | 32 |
1-4C7PHXU | 32 |
1-BE6IC9K | 32 |
1-B9WN0EZ | 32 |
1-BE6IBVA | 32 |
1-IBPWVXA | 32 |
1-BERJ13Q | 32 |
1-IG8YC1S | 32 |
1-IBPKWOP | 32 |
1-B536UE4 | 32 |
1-IBGBXPV | 32 |
1-IJZZ1JZ | 32 |
1-BESAKLJ | 32 |
1-9UEEDG1 | 32 |
1-IJUB4JH | 32 |
1-IJIN3UX | 32 |
1-BAND9RJ | 32 |
1-BF4FNN2 | 32 |
1-IJYQKYO | 32 |
1-UKTS4C | 27 |
1-AR522O9 | 27 |
1-AA8ER6I | 27 |
咱们最新建表中,bucket数量是多少呢?
99个分区,每个分区20个桶
是还有调整空间的。不过成本比较大。
观察到咱们分区中有一些分区达到了80G这个级别。有一些才 1G左右。
我理解可以建表时针对不同分区单独设置下 bucket数量。这样不会有小文件问题,也能提升查询效率。
文档参考下
这个好像改不了bucket数量呢
我可以把分区去掉吗?因为最后的查询里面是不包含分区的,分区其实没多大作用,历史表一查就是全表查
完全没有分区过滤场景的话确实是可以的。