假设表A有字段a, b, c, d四个字段,a, b, c, d均为主索引,表A数据量在亿级别。
SQL语句如下:select * from A where a=:a and b=:b and c>=:c and d<=:d,其中以:开头的均为传递过来的数据,且注意c,d字段,c>=:c and d<=:d,实在没有办法,只能这么写该查询条件,并非是between..and。
如果使用物化查询表,个人认为不太适合,因为A表不需要GROUP BY统计,经常会变化。
想请教高手,这样的SQL语句如何提供查询效率? 先谢谢了
------解决方案--------------------------------------------------------
做分区表,并且做成MDC表
------解决方案--------------------------------------------------------
做成mdc表,关键字是organized by(1,2)
你是按什么做的分区
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
如果你有quest central for db2的话,在tune Sql里查访问计划。
也可以在命令行方式用下列方法,查访问计划:
db2 connect to 数据库名
db2 "explain plan for select * from A where a=:a and b=:b and c>=:c and d<=:d"
db2exfmt