where子句中的列不具有选择性。他们都在一张单人桌上。另外,使用的表达式不等于,或,IS NULL,IS NOT NULL。主键在客户ID上。我不确定如何避开这类数据。是否有不同的索引方法可以在表格上创建或以其他方式解决问题。我猜想分区对于将表分成大数据的一个主要部分是没有帮助的。任何想法或解决方法都会有用。正常索引或位图索引无用时如何避免
为了方便理解,我将以下数据作为参考和示例查询。
样本查询
可乐= '适销对路' 或是可乐是空
师范大学指数:由于OR和NULL操作被忽略。此外,查询的数据涵盖了表格中超过95%的数据。 BITMAP索引:由于数据覆盖率超过96%而被忽略。
示例查询
COLB = '7' OR COLB = '6' OR COLB = '5'
NORMAL或BITMAP:两者不有用由于大的数据选择。优化器使用主键cust_id进行全表扫描。
示例查询
COLC <> '特别部分' OR COLC为空(因为这些值可以改变,没有特定的值被传递)
组合示例查询
NOT(COLB = '6'或colB ='3')和 (colC <>'SPECIAL SEGMENT'或colC为空)
谢谢你的回应贾斯汀。你能指导我如何启用“并行查询”在数据库上运行,或者我可以在其中进一步阅读? – user3090427