数据库之查询优化
作者:网络转载 发布时间:[ 2013/12/20 10:25:19 ] 推荐标签:
(1) 来自pg文档
PostgreSQL使用的是基于成本的优化器(Cost based optimizer)。理论上基于成本的优化器会计算用户输入的查询语句的每个合法的查询计划的执行成本,然后从中选择成本小的计划作为执行查询语句的终计划。在实际应用中,查询语句的合法的查询计划的个数是随查询复杂度的增加呈指数增长的。对于过于复杂的查询,如果遍历每个合法的查询计划,将会消耗掉大量的时间,这是不能被用户接受的,所以优化器不会遍历每个合法的查询计划,只会选择一部分查询计划,从中找到执行成本小的计划。
(2)调整QL查询计划
在oracle中使用hint可以调整SQL的执行计划,
在postgresql可以使用如下的方法进行调整
使用set<option> to off/on;调整查询计划,参数如下:
|
enable_seqscan是否走全表扫描
enable_hashjoin是否允许走hash连接
enable_nestloop是否允许走nestloop连接
enable_mergejoin是否允许走合并连接
enable_tidscan是否允许走tid扫描(类似oracle中的按rowid访问)
enable_bitmapscan是否允许走bitmap扫描
enable_hashagg是否允许走hash聚集(也是做group by时)
enable_indexscan是否允许走索引
enable_sort是否允许走排序
constraint_exclusion是否允许走分区
|
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
在测试数据库性能时,需要注意哪些方面的内容?测试管理工具TC数据库报错的原因有哪些?怎么解决?数据库的三大范式以及五大约束编程常用的几种时间戳转换(java .net 数据库)优化mysql数据库的几个步骤数据库并行读取和写入之Python实现深入理解数据库(DB2)缓冲池(BufferPool)国内三大云数据库测试对比预警即预防:6大常见数据库安全漏洞数据库规划、设计与管理数据库-事务的概念SQL Server修改数据库物理文件存在位置使用PHP与SQL搭建可搜索的加密数据库用Python写一个NoSQL数据库详述 SQL 中的数据库操作详述 SQL 中的数据库操作Java面试准备:数据库MySQL性能优化

sales@spasvo.com