MariaDB社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5355|回复: 1
打印 上一主题 下一主题

[PostgreSQL] PostgreSQl查看数据库性能

[复制链接]
跳转到指定楼层
1#
发表于 2009-5-20 15:21:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
www.wohedb.com
中文数据库管理系统




第十一章

查看数据库性能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, 所以它与上面两条语句是不同的,将会作为一条新的语句来收集统计信息。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 顶 踩
2#
发表于 2016-1-25 14:33:02 | 只看该作者
怎么治疗羊癫疯 http://yyk.familydoctor.com.cn/20336/Content_16529.html
北京治癫痫哪个医院好 http://yyk.familydoctor.com.cn/20336/Content_16533.html
哪家治疗癫痫病好 http://yyk.familydoctor.com.cn/20336/Content_16743.html
北京癫痫病医院哪儿治的好 http://yyk.familydoctor.com.cn/20336/Content_16761.html
北京癫痫医院哪里好 http://yyk.familydoctor.com.cn/20336/Content_16763.html
看癫痫北京哪个医院好 http://yyk.familydoctor.com.cn/20336/Content_16764.html
北京重点癫痫医院 http://yyk.familydoctor.com.cn/20336/Content_16770.html
癫痫病哪家医院好 http://yyk.familydoctor.com.cn/20336/Content_16771.html
北京治癫痫的医院 http://yyk.familydoctor.com.cn/20336/Content_16772.html
北京癫痫治疗那家好 http://yyk.familydoctor.com.cn/20336/Content_16774.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|MariaDB社区 ( 京ICP备07012489号    |
业务联系: QQ:48474881; 邮箱: 48474881@qq.com; 电话:13911732319
声明:本站部分文章是网友转载,若未经作者同意或署名有误,请联系网站管理员。

GMT+8, 2024-11-1 09:30 , Processed in 0.070737 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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