楼主: 〇〇

postgresql 9.2的新功能测试

[复制链接]
论坛徽章:
43
现任管理团队成员
日期:2011-05-07 01:45:08ITPUB元老
日期:2012-09-12 14:50:28版主5段
日期:2014-06-11 02:21:31阿斯顿马丁
日期:2013-11-19 10:38:16祖母绿
日期:2012-11-06 12:43:12路虎
日期:2013-11-20 11:37:53雪佛兰
日期:2013-09-05 13:28:25ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512015中国数据库技术大会纪念徽章
日期:2015-04-24 16:04:24秀才
日期:2015-05-26 13:32:07
21#
发表于 2012-9-19 10:56 | 只看该作者
本帖最后由 myth8860 于 2012-9-19 10:56 编辑

DM7 minus和except都有
SQL>explain select max(a.info)from sli_test a where a.id in(select id from sli_test minus select id from sli_test2 where id<5000);

#NSET2: [3333665, 1, 0]
  #PRJT2: [3333665, 1, 28]; exp_num(1), is_atom(FALSE)
    #AAGR2: [3333665, 1, 28]; grp_num(0), sfun_num(1)
      #HASH2 INNER JOIN: [3333665, 50000000000, 28]; LKEY_UNIQUE KEY_NUM(1);
        #CSCN2: [197, 1000000, 24]; INDEX33555469(sli_test)
        #PRJT2: [34, 50000000000, 4]; exp_num(1), is_atom(FALSE)
          #EXCEPT: [34, 50000000000, 4]
            #PRJT2: [27, 1000000, 4]; exp_num(1), is_atom(FALSE)
              #SSCN: [27, 1000000, 4]; INDEX33555470(sli_test)
            #PRJT2: [7, 50000, 4]; exp_num(1), is_atom(FALSE)
              #SSEK2: [7, 50000, 4]; scan_type(ASC), b_id(sli_test2), scan_range(,)

已用时间: 2.311(ms) clock tick:1531992. Execute id is 0.


SQL>explain select max(a.info)from sli_test a where a.id in(select id from sli_test except select id from sli_test2 where id<5000);

#NSET2: [3333665, 1, 0]
  #PRJT2: [3333665, 1, 0]; exp_num(1), is_atom(FALSE)
    #AAGR2: [3333665, 1, 0]; grp_num(0), sfun_num(1)
      #HASH LEFT SEMI JOIN2: [3333665, 1000000, 0];
        #CSCN2: [197, 1000000, 24]; INDEX33555469(sli_test)
        #PRJT2: [34, 50000000000, 4]; exp_num(1), is_atom(FALSE)
          #EXCEPT: [34, 50000000000, 4]
            #PRJT2: [27, 1000000, 4]; exp_num(1), is_atom(FALSE)
              #SSCN: [27, 1000000, 4]; INDEX33555470(sli_test)
            #PRJT2: [7, 50000, 4]; exp_num(1), is_atom(FALSE)
              #SSEK2: [7, 50000, 4]; scan_type(ASC), b_id(sli_test2), scan_range(,)

已用时间: 1.987(ms) clock tick:1454544. Execute id is 0.

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
22#
 楼主| 发表于 2012-9-19 11:25 | 只看该作者
clock tick:1531992是否就是预计执行时间?

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
23#
 楼主| 发表于 2012-9-19 11:26 | 只看该作者
myth8860 发表于 2012-9-19 10:26
create table sli_test (id int primary key,info varchar(20));

begin

插入有forall?
生成数据有connect by rownum?递归with子查询?

使用道具 举报

回复
论坛徽章:
43
现任管理团队成员
日期:2011-05-07 01:45:08ITPUB元老
日期:2012-09-12 14:50:28版主5段
日期:2014-06-11 02:21:31阿斯顿马丁
日期:2013-11-19 10:38:16祖母绿
日期:2012-11-06 12:43:12路虎
日期:2013-11-20 11:37:53雪佛兰
日期:2013-09-05 13:28:25ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512015中国数据库技术大会纪念徽章
日期:2015-04-24 16:04:24秀才
日期:2015-05-26 13:32:07
24#
发表于 2012-9-19 11:29 | 只看该作者
〇〇 发表于 2012-9-19 11:25
clock tick:1531992是否就是预计执行时间?

不是的,这个是cpu运行了多少时钟周期

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
25#
 楼主| 发表于 2012-9-19 12:50 | 只看该作者
myth8860 发表于 2012-9-19 11:29
不是的,这个是cpu运行了多少时钟周期

表示sql预计成本吗?

使用道具 举报

回复
论坛徽章:
43
现任管理团队成员
日期:2011-05-07 01:45:08ITPUB元老
日期:2012-09-12 14:50:28版主5段
日期:2014-06-11 02:21:31阿斯顿马丁
日期:2013-11-19 10:38:16祖母绿
日期:2012-11-06 12:43:12路虎
日期:2013-11-20 11:37:53雪佛兰
日期:2013-09-05 13:28:25ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512015中国数据库技术大会纪念徽章
日期:2015-04-24 16:04:24秀才
日期:2015-05-26 13:32:07
26#
发表于 2012-9-19 12:52 | 只看该作者
〇〇 发表于 2012-9-19 12:50
表示sql预计成本吗?

是刚才执行这条sql的实际cpu时钟周期,跟计划没关系

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
27#
 楼主| 发表于 2012-9-19 13:39 | 只看该作者
本帖最后由 〇〇 于 2012-9-19 13:41 编辑
〇〇 发表于 2012-9-18 15:31
not in的执行计划很糟,in还可以
test=# explain select max(a.info)from sli_test a where a.id not in(se ...


9.0的not in也是一样的
R:\TEMP\pgsql\bin>initdb -D r:\temp\pgsql\data --encoding=UTF8 --locale="Chinese (Simplified)"
initdb: 无效的 locale 名字 "Chinese (Simplified)"
initdb: 无效的 locale 名字 "Chinese (Simplified)"
initdb: 无效的 locale 名字 "Chinese (Simplified)"
initdb: 无效的 locale 名字 "Chinese (Simplified)"
initdb: 无效的 locale 名字 "Chinese (Simplified)"
initdb: 无效的 locale 名字 "Chinese (Simplified)"
属于此数据库系统的文件宿主为用户 "****".
此用户也必须为服务器进程的宿主.
数据库簇将带有 locale Chinese_People's Republic of China.936 初始化.
initdb: 无法为语言环境"Chinese_People's Republic of China.936" 找到合适的文本搜索配置
缺省的文本搜索配置将会被设置到"simple"

创建目录 r:/temp/pgsql/data ... 成功
正在创建子目录 ... 成功
选择默认最大联接数 (max_connections) ... 100
选择默认共享缓冲区大小 (shared_buffers) ... 32MB
创建配置文件 ... 成功
在 r:/temp/pgsql/data/base/1 中创建 template1 数据库 ... 成功
初始化 pg_authid ...  成功
初始化dependencies ... 成功
创建系统视图 ... 成功
正在加载系统对象描述 ...成功
创建字符集转换 ... 成功
正在创建字典 ... 成功
对内建对象设置权限 ... 成功
创建信息模式 ... 成功
正在装载PL/pgSQL服务器端编程语言...成功
清理数据库 template1 ... 成功
拷贝 template1 到 template0 ... 成功
拷贝 template1 到 template0 ... 成功

警告: 为本地连接启动了 "trust" 认证.
你可以通过编辑 pg_hba.conf 更改或你下
次运行 initdb 时使用 -A 选项.

成功. 您现在可以用下面的命令运行数据库服务器:

    ""postmaster -D "r:/temp/pgsql/data"
或者
    ""pg_ctl -D "r:/temp/pgsql/data" -l logfile start


R:\TEMP\pgsql\bin>pg_ctl -D "r:/temp/pgsql/data" -l logfile start
正在启动服务器进程

R:\TEMP\pgsql\bin>psql postgres
psql (9.0.9)
输入 "help" 来获取帮助信息.

postgres=# create database test;
CREATE DATABASE
postgres=# \c test
您现在已经连线到资料库 "test"。.
test=# \timing
启用计时功能.
test=# create table sli_test (id int primary key,info varchar(20));
娉ㄦ剰:  CREATE TABLE / PRIMARY KEY 灏嗚?涓鸿〃 "sli_test" 鍒涘缓闅愬惈绱㈠紩 "sli_test_pkey"
CREATE TABLE
时间:8.333 ms
test=# insert into sli_test select generate_series(1,1000000),'digoal'||generate_series(1,1000000);
INSERT 0 1000000
时间:6382.972 ms
test=# analyze verbose sli_test;
淇℃伅:  姝e湪鍒嗘瀽 "public.sli_test"
淇℃伅:  "sli_test": 宸茬粡鎵?弿浜?274椤电殑6274, 鍖呭惈1000000鍙?敤鐨勮?褰曞拰0涓嶈兘鐢ㄧ殑璁板綍; 鍦ㄧず渚嬩腑鏈?0000鏉¤?褰?浼扮畻鎵

鏈夎?褰曚负1000000 .
ANALYZE
时间:358.363 ms
test=# create table sli_test2 (id int not null,info varchar(20));
CREATE TABLE
时间:1.852 ms
test=#  insert into sli_test2 select generate_series(1,1000000),'dbase'||generate_series(1,1000000);
INSERT 0 1000000
时间:2682.164 ms
test=# analyze verbose sli_test2;
淇℃伅:  姝e湪鍒嗘瀽 "public.sli_test2"
淇℃伅:  "sli_test2": 宸茬粡鎵?弿浜?406椤电殑5406, 鍖呭惈1000000鍙?敤鐨勮?褰曞拰0涓嶈兘鐢ㄧ殑璁板綍;

1000000 .
ANALYZE
时间:300.647 ms
test=# explain select max(a.info)from sli_test a where a.id not in(select b.id from sli_test2 b where b.id<50000);
                                      QUERY PLAN
---------------------------------------------------------------------------------------
Aggregate  (cost=9241443774.00..9241443774.01 rows=1 width=12)
   ->  Seq Scan on sli_test a  (cost=0.00..9241442524.00 rows=500000 width=12)
         Filter: (NOT (SubPlan 1))
         SubPlan 1
           ->  Materialize  (cost=0.00..18356.56 rows=50513 width=4)
                 ->  Seq Scan on sli_test2 b  (cost=0.00..17906.00 rows=50513 width=4)
                       Filter: (id < 50000)
(7 行记录)

时间:1.667 ms

使用道具 举报

回复
论坛徽章:
43
现任管理团队成员
日期:2011-05-07 01:45:08ITPUB元老
日期:2012-09-12 14:50:28版主5段
日期:2014-06-11 02:21:31阿斯顿马丁
日期:2013-11-19 10:38:16祖母绿
日期:2012-11-06 12:43:12路虎
日期:2013-11-20 11:37:53雪佛兰
日期:2013-09-05 13:28:25ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512015中国数据库技术大会纪念徽章
日期:2015-04-24 16:04:24秀才
日期:2015-05-26 13:32:07
28#
发表于 2012-9-19 15:52 | 只看该作者
〇〇 发表于 2012-9-19 11:26
插入有forall?
生成数据有connect by rownum?递归with子查询?

forall在做了,connect by rownum这个已经提交了

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
29#
 楼主| 发表于 2012-9-20 20:39 | 只看该作者
myth8860 发表于 2012-9-19 15:52
forall在做了,connect by rownum这个已经提交了

递归with子查询?

使用道具 举报

回复
论坛徽章:
5
2011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:26:292012新春纪念徽章
日期:2012-01-04 11:57:362012新春纪念徽章
日期:2012-02-07 09:59:35秀才
日期:2016-06-23 14:15:06
30#
发表于 2012-9-21 17:38 | 只看该作者
时间是执行计划的时间,不是实际执行时间吧

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表