一直都在从事数据库性能测试方面的工作,遇到过各种各样的性能问题。深感若没有SQL执行信息,数据库性能分析便无从谈起。
利用业余时间修改了Postgres8.3.3的源代码,在其中加入了统计SQL执行信息的功能。它可以显示每条 SQL 语句的执行次数、执行时间、消耗的CPU时间、读cache次数、命中cache 次数。
它可以帮你找到执行时间最长,消耗资源最多的SQL。对于事务处理,如果一条SQL语句在执行时读cache的次数达到了2000以上,极有可能是优化器产生的执行计划太差,
如果你在使用potgres时遇到性能问题,不妨使用一下。
压缩后的软件包大约有5M,需要的朋友可以给我发邮件postgres_fan@yahoo.com.cn,我会发给你,是一个完整的postgres软件包, 直接解开便可使用。 现在只有Linux 32位版的, 没有做windows版的,精力实在有限。
基于的postgres的版本是8.3.3, 使用旧版本的需要升级。
只需要用psql连上数据库,输入命令"dump sql_stats;" 或 "dump sql_stats reset;", 所有SQL语句的执行信息便会被写到一个数据文件中,该数据文件位于子目录sql_dump下面。
假定你的数据库位于目录/home/postgres/database 下,那么你可以在/home/postgres/database/sql_dump下找到该数据文件。 该数据文件的名字以sql_dump打头,后面是文件建立的时间,
如sql_dump_2008_09_24_12_42_25 表示该文件是2008年9月24日12点42分45秒创建的。如果是第一次