SQL优化-标量子查询(数据仓库设计的隐患-标量子查询)

  • Post author:
  • Post category:其他



项目数据库集群出现了大规模节点宕机问题。经查询,问题在于几张表被锁。主要问题在于近期得几个项目在数据库SQL编写时大量使用了标量子查询。


为确定为题确实是由于数据表访问量超过单节点限制,做了一些测试。



数据库集群环境为:Gbase 8a



资料查询情况总结如下:


标量子查询是一个非常恐怖的用法。


当外部表返回的数据量不大时,完全不会引起性能问题。但是此时隐患已经埋下随着外部表数据量的增加,标量的性能会慢慢受到影响,一旦过了这个临界值。


性能下降的非常明显和可怕。所以在数据仓库中应该用外连接代替标量,避免给程序埋下隐患。


主要隐患:


1、外部表有多少条不重复的数据(可能是唯一主键、可能是唯一索引,主要看标查询和外部查询的条件),子查询就会被执行多少次。


关联字段为唯一主键,没有重复值,那么外部表返回多少行,子查询表(内不表)就要被执行多少次。


关联字段的

distinct值只有n个,那子查询表只执行n次。


2、执行效率低,执行失败。


3、导致数据库被锁表、数据库节点宕机。


具体问题及验证

转载于:https://www.cnblogs.com/fameg/p/10105676.html