祝愿大家身体健康!

 站点注册  找回密码
 站点注册

QQ登录

只需一步,快速开始

查看: 5351|回复: 0

postgresQL查看数据库性能

[复制链接]

postgresQL查看数据库性能

[复制链接]
snail_aaa

主题

0

回帖

4

积分

新手上路

积分
4
贡献
在线时间
小时
2009-5-21 15:02:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?站点注册

×
http://www.wohedb.com/db_html_doc/administrator_guide/adm_11_performance.htm

www.wohedb.com 中文数据库管理系统  作者:闫华   postgres_fan@yahoo.com.cn

第十一章   查看数据库性能
11.1 概述
本章介绍如何利用系统内置的工具查看数据库的性能。当前可以查看数据库的IO响应时间、数据库缓冲区命中率和SQL语句的详细执行信息。



11.2 DUMP SQL_STATS命令
想要查看数据库的性能数据,可以使用DUMP SQL_STATS命令,它有两种用法,一种使用RESET关键字,另一种不使用RESET关键字。可以在psql中执行该命令。例如:



(1)DUMP SQL_STATS;

(2)DUMP SQL_STATS  RESET;



如果使用了RESET关键字,在导出了数据库的性能数据以后, 所有的数据库性能计数器都将被清零。如果没有使用RESET关键字,在导出了数据库的性能数据以后,所有的数据库性能计数器将保持它们原来的值。



DUMP SQL_STATS命令执行结束以后,会在数据文件目录的sql_dump子目录下生成一个文本文件,这个文件中含有数据库的性能数据。该文本文件的名字以sql_dump打头,后面是文件建立的时间,例如sql_dump_2008_09_24_12_42_25 表示该文件是2008年9月24日12点42分45秒创建的。



下面是一个DUMP SQL_STATS命令生成的文本文件的内容实例:



数据缓冲区命中率:88.982%

写磁盘次数(写事务日志):54141   平均写磁盘时间(写事务日志):0.0050秒

读磁盘次数:210374                平均读磁盘时间:0.0001秒

-------------------------------------------------------------------------------------------------

                      第1条SQL

delete from new_order where no_o_id = $1 and no_w_id = $2 and no_d_id = $3



执行次数:3460



读数据缓冲区次数:17323   命中数据缓冲区次数:17323  执行时间:12.398秒  消耗的CPU时间:0.540秒



平均读数据缓冲区次数:5   平均命中数据缓冲区次数:5    平均执行时间:0.004秒   平均消耗的CPU时间:0.000秒

-------------------------------------------------------------------------------------------------

                      第2条SQL

select c_id from customer where c_w_id = $1 and c_d_id = $2 and c_last = $3 order by c_first asc



执行次数:2463



读数据缓冲区次数:38355   命中数据缓冲区次数:7359  执行时间:14.447秒  消耗的CPU时间:2.156秒



平均读数据缓冲区次数:15   平均命中数据缓冲区次数:2    平均执行时间:0.006秒   平均消耗的CPU时间:0.001秒

-------------------------------------------------------------------------------------------------

                      第3条SQL

select d_name , d_street_1 , d_street_2 , d_city , d_state , d_zip from district where d_id = $1 and d_w_id = $2



执行次数:3764



读数据缓冲区次数:7650   命中数据缓冲区次数:7640  执行时间:0.582秒  消耗的CPU时间:0.356秒



平均读数据缓冲区次数:2   平均命中数据缓冲区次数:2    平均执行时间:0.000秒   平均消耗的CPU时间:0.000秒





从这个文本文件可以看出数据缓冲区命中率是88.982%,因为写事务日志产生的写磁盘次数是54141,平均写磁盘时间(写事务日志)是0.0050秒,读磁盘次数是210374,平均读磁盘时间是0.0001秒。



对于每条SQL语句的执行统计信息,第一行显示的是具体的SQL语句,第二行显示的是该语句的执行次数,第三行显示的是这条语句执行时总的读数据缓冲区次数、总的命中数据缓冲区次数、总的执行时间和总的消耗的CPU时间。第四行显示的是平均每次执行的读数据缓冲区次数、命中数据缓冲区次数、执行时间和消耗的CPU时间,实际上就是用第三行的值除以SQL语句的执行次数得来的。



系统在统计SQL执行信息时,会对SQL语句进行一定的变换,如果SQL语句中含有数值或字符串等常量,这些常量将会被变换成$1,$2, ..., $n。

例如,select * from test where size > 100 将会被变换成 select * from test where size > $1, 同样 select * from test where size > 200 也会被变换成 select * from test where size > $1。所以这两条语句的的执行信息会被合并到一起, 作为一条语句来处理。

再举一个例子,select * from test where size > 100 and size < 200 会被变换成 select * from test where size > $1 and size < $2, 所以它与上面两条语句是不同的,将会作为一条新的语句来收集统计信息。
共享共进共赢Sharing And Win-win Results
SYBASEBBS - 免责申明1、欢迎访问“SYBASEBBS.COM”,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@sybasebbs.com
您需要登录后才可以回帖 登录 | 站点注册

本版积分规则

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com

QQ|Archiver|PowerBuilder(PB)BBS社区 ( 鲁ICP备2021027222号-1 )

GMT+8, 2024-4-23 19:31 , Processed in 0.151427 second(s), 7 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表