我的应用程序中有一个查询,当我的表中有大量行时,查询运行速度非常快。但是,当行数是中等大小(既不大也不小)时,相同的查询运行速度会慢15倍。将enable_nestloop设置为OFF有什么缺陷
解释计划显示,在中型数据集上的查询使用嵌套循环作为其连接算法。大数据集使用散列连接。
我可以阻止查询计划程序在数据库级别(postgresql.conf)或每个会话(SET enable_nestloop TO off
)上使用嵌套循环。
set enable_nestloop to off
有什么潜在的缺陷?
其他信息:PostgreSQL 8.2.6,在Windows上运行。