例如,在Oracle中,我可能会尝试添加提示来忽略索引或使用排序合并和相关联接,但是在using explicit joins以外的调整Postgres上找不到很多,而在bulk loading tables时我建议。
有任何这样的指南存在,所以我可以专注于调优大多数运行和/或表现不佳的查询,希望不会对目前性能很好的查询产生不利影响?
我甚至会高兴地找到一些比较某些类型的查询相对于其他数据库执行的方式进行比较,所以我有一个更好的线索来避免什么样的事情。
更新:
我应该提到,我在8天内把所有的Oracle DBA类以及数据建模和sql调优类都带回来,所以我知道“EXPLAIN”,但是更多的是告诉你,查询,不一定如何使其更好。 (例如,当var = 1或var = 2’和’while var in(1,2)’在生成执行计划时被认为是相同的?如果我用10个排列做什么?什么时候是多列使用的索引?有没有办法让计划者优化最快的启动与最快的完成?从MysqL,Oracle或其他一些RDBMS移动时可能遇到什么样的“陷阱”?)
我可以编写任何复杂的查询数十个,如果不是数百种方式,我希望不必尝试所有,找到哪一个最好的尝试和错误。我已经发现’SELECT count(*)’不会使用索引,但是’SELECT count(primary_key)’将…可能是一个“经验丰富的sql用户的Postgresql”文档,解释了各种查询避免和如何最好地重写它们,或者如何让计划者更好地处理它们。
更新2:
我发现了一个Comparison of different SQL Implementations,它涵盖了Postgresql,DB2,MS-sql,MysqL,Oracle和Informix,并解释了可能尝试做什么的事情,如何和陷阱,以及他的引用部分链接到Oracle / SQL Server / DB2 / Mckoi /MySQL Database Equivalents(这是它的标题建议)以及包含任何人贡献的wikibook SQL Dialects Reference(包括一些DB2,sqlite,MysqL,Postgresql,Firebird,Vituoso,Oracle,MS-sql,Ingres和linter)。
http://www.postgresql.org/docs/current/static/indexes-examine.html您可以提供提示:SET enable_indexscan TO false;会使Postgresql尝试不使用索引
总结以上是内存溢出为你收集整理的PostgreSQL查询调优指南?全部内容,希望文章能够帮你解决PostgreSQL查询调优指南?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)