postgresql – PSQL比PgAdmin III慢
发布时间:2020-12-13 15:55:52 所属栏目:百科 来源:网络整理
导读:我一直在分析我的应用程序的一些部分,我发现了这一点 在执行完全相同的脚本时,PgAdmin3明显快于psql. 我正在使用unix套接字,Ubuntu 12.04和 Postgresql 9.1以及pgadmin3 v1.14.我有一个简单的脚本,如下所示: BEGININSERT INTO key_value(section,key,value)
我一直在分析我的应用程序的一些部分,我发现了这一点
在执行完全相同的脚本时,PgAdmin3明显快于psql. 我正在使用unix套接字,Ubuntu 12.04和 Postgresql 9.1以及pgadmin3 v1.14.我有一个简单的脚本,如下所示: BEGIN INSERT INTO key_value(section,key,value) VALUES('section','key1','value'); .... INSERT INTO key_value(section,'key10000','value'); COMMIT; 这是表格: CREATE TABLE key_value ( key text NOT NULL,value text,CONSTRAINT key_value_pkey PRIMARY KEY (section,key ) ) WITH ( OIDS=FALSE ); 此脚本中有10000个插入.在pgadmin3中执行它需要大约0.5秒,在psql中执行它需要2.5~3.5秒.两者都包含在一个事务中,所以应该没有什么区别.在重新创建表,完全真空等结果是一致的.登录Postgresql服务器显示postgres在psql中执行时为每个insert语句执行日志,但在从pgadmin3执行时只有一个日志. psql执行完成以下操作: psql -n -t -f p.sql -o/dev/null 并且还测试了 psql -n -t -1 -f p.sql -o/dev/null 我的问题是为什么psql这么慢以及为什么我们postgresql在一个客户端中记录每个语句但在另一个客户端只记录整个事务,而且有一个简单的修复psql. 编辑只是为了澄清,我记录的持续时间不是声明: 在服务器中,当使用psql执行时,我得到以下内容 2012-10-02 12:20:32 CEST LOG: duration: 0.283 ms .... 2012-10-02 12:20:35 CEST LOG: duration: 0.285 ms 2012-10-02 12:20:35 CEST LOG: duration: 0.291 ms 2012-10-02 12:20:35 CEST LOG: duration: 0.279 ms 2012-10-02 12:20:35 CEST LOG: duration: 0.284 ms 2012-10-02 12:20:35 CEST LOG: duration: 0.279 ms 2012-10-02 12:20:35 CEST LOG: duration: 0.299 ms .... 2012-10-02 12:20:36 CEST LOG: duration: 5.779 ms 使用pgadmin3执行时: 2012-10-02 12:23:21 CEST LOG: duration: 532.695 ms psql和pgadmin3中的用户和数据库是相同的 解决方法
我的提示:pgAdmin将脚本作为一个多语句执行 – 因此网络(协议)开销较少.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 试图搞懂MDK程序下载到Flash(一)--Nand Flash启动流程,加载
- Elasticsearch 快速开始
- dwr create creator="spring" / 4.6 类型错误导致s
- oracle – TNS-12505:TNS:侦听器当前不知道连接描述符中给
- oracle保留两位小数解决方案
- 正则匹配时遇到的编码问题(unicode,gbk,utf-8,中文)
- C#泛型可以这么酷吗?
- 使用NewtonSoft.JSON.dll来序列化和反序列化对象
- ruby-on-rails – 无法弄清楚如何在Devise上做i18n
- SELECTs -- do's and don'ts