楼主: 〇〇

PostgreSQL 9.2 正式版发布!

[复制链接]
论坛徽章:
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
51#
 楼主| 发表于 2012-9-16 16:46 | 只看该作者
出来了,比没有索引更糟
时间:31290361.351 ms
时间:1077971.887 ms
时间:129810.250 ms
时间:1074096.416 ms
时间:301221.440 ms
时间:933051.998 ms

使用道具 举报

回复
论坛徽章:
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
52#
 楼主| 发表于 2012-9-16 18:43 | 只看该作者
好在17通过了
启用计时功能.
时间:339505.498 ms
时间:65144.401 ms
时间:355659.647 ms
时间:299486.963 ms
时间:426070.793 ms
时间:179758.606 ms
时间:427931.657 ms
时间:176749.847 ms
时间:31290361.351 ms
时间:1077971.887 ms
时间:129810.250 ms
时间:1074096.416 ms
时间:301221.440 ms
时间:933051.998 ms
时间:679151.362 ms
时间:178748.642 ms
时间:858173.361 ms
时间:3546259.069 ms
时间:618812.262 ms

使用道具 举报

回复
论坛徽章:
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
53#
 楼主| 发表于 2012-9-16 21:08 | 只看该作者
但是最后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
54#
发表于 2012-9-17 14:34 | 只看该作者
oo哥辛苦了

使用道具 举报

回复
论坛徽章:
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
55#
发表于 2012-9-17 14:34 | 只看该作者
〇〇 发表于 2012-9-16 21:08
但是最后2个还是耗时很长,看明早能否有结果

看的有点云里雾里,测完了给个详细的说明吧

使用道具 举报

回复
论坛徽章:
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
56#
 楼主| 发表于 2012-9-17 18:16 | 只看该作者
〇〇 发表于 2012-9-16 21:08
但是最后2个还是耗时很长,看明早能否有结果

机器重起了,只好重测最后3个,花了8小时10分。。。。
(4 行记录)
(100 行记录)
(10 行记录)
(5 行记录)
(5 行记录)
(1 行记录)
(4 行记录)
(2 行记录)
(10 行记录)
(20 行记录)
(0 行记录)
(2 行记录)
(46 行记录)
(1 行记录)
(1 行记录)
(10 行记录)
(1 行记录)
(99 行记录)
(1 行记录)
(10 行记录)
(100 行记录)
(5 行记录)

使用道具 举报

回复
论坛徽章:
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
57#
 楼主| 发表于 2012-9-17 19:44 | 只看该作者
myth8860 发表于 2012-9-17 14:34
看的有点云里雾里,测完了给个详细的说明吧

不知何故,加了索引不像去年那样能提高查询效率

使用道具 举报

回复
论坛徽章:
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
58#
 楼主| 发表于 2012-9-19 06:50 | 只看该作者
〇〇 发表于 2012-9-17 18:16
机器重起了,只好重测最后3个,花了8小时10分。。。。
(4 行记录)
(100 行记录)

q20执行计划
test_en=# explain select
test_en-#         s_name,
test_en-#         s_address
test_en-# from
test_en-#         supplier,
test_en-#         nation
test_en-# where
test_en-#         s_suppkey in (
test_en(#                 select
test_en(#                         ps_suppkey
test_en(#                 from
test_en(#                         partsupp
test_en(#                 where
test_en(#                         ps_partkey in (
test_en(#                                 select
test_en(#                                         p_partkey
test_en(#                                 from
test_en(#                                         part
test_en(#                                 where
test_en(#                                         p_name like 'bisque%'
test_en(#                         )
test_en(#                         and ps_availqty > (
test_en(#                                 select
test_en(#                                         0.5 * sum(l_quantity)
test_en(#                                 from
test_en(#                                         lineitem
test_en(#                                 where
test_en(#                                         l_partkey = ps_partkey
test_en(#                                         and l_suppkey = ps_suppkey
test_en(#                                         and l_shipdate >= date '1994-01-01'
test_en(#                                         and l_shipdate < date '1994-01-01' + interval '1' year
test_en(#                         )
test_en(#         )
test_en-#         and s_nationkey = n_nationkey
test_en-#         and n_name = 'CANADA'
test_en-# order by
test_en-#         s_name
test_en-# LIMIT 10;
                                                                         QUERY PLAN

--------------------------------------------------------------------------------------------------------------------------------------------
----------------
Limit  (cost=23387399.83..23387399.85 rows=10 width=51)
   ->  Sort  (cost=23387399.83..23387409.83 rows=4000 width=51)
         Sort Key: supplier.s_name
         ->  Nested Loop Semi Join  (cost=0.00..23387313.39 rows=4000 width=51)
               ->  Nested Loop  (cost=0.00..4467.31 rows=4000 width=55)
                     Join Filter: (supplier.s_nationkey = nation.n_nationkey)
                     ->  Seq Scan on nation  (cost=0.00..1.31 rows=1 width=4)
                           Filter: (n_name = 'CANADA'::bpchar)
                     ->  Seq Scan on supplier  (cost=0.00..3216.00 rows=100000 width=59)
               ->  Nested Loop Semi Join  (cost=0.00..6418.47 rows=26 width=4)
                     ->  Index Scan using partsupp_fk1 on partsupp  (cost=0.00..6161.58 rows=26 width=8)
                           Index Cond: (ps_suppkey = supplier.s_suppkey)
                           Filter: ((ps_availqty)::numeric > (SubPlan 1))
                           SubPlan 1
                             ->  Aggregate  (cost=74.07..74.08 rows=1 width=5)
                                   ->  Index Scan using lineitem_fk2 on lineitem  (cost=0.00..74.07 rows=1 width=5)
                                         Index Cond: ((l_partkey = partsupp.ps_partkey) AND (l_suppkey = partsupp.ps_suppkey))
                                         Filter: ((l_shipdate >= '1994-01-01'::date) AND (l_shipdate < '1995-01-01 00:00:00'::timestamp with
out time zone))
                     ->  Index Scan using part_pkey on part  (cost=0.00..9.88 rows=1 width=4)
                           Index Cond: (p_partkey = partsupp.ps_partkey)
                           Filter: ((p_name)::text ~~ 'bisque%'::text)
(21 行记录)

修改写法
test_en=# explain select s_name,  s_address from supplier, nation where s_suppkey in (select ps_suppkey from
test_en(# partsupp ,(select l_partkey,l_suppkey, sum(l_quantity) l_quantity_SUM from lineitem,part where
test_en(# l_partkey = p_partkey and p_name like 'bisque%' and l_shipdate >= date '1994-01-01' and l_shipdate
test_en(# < date '1994-01-01' + interval '1' year GROUP BY l_partkey,l_suppkey ) b where l_partkey = ps_partkey and
test_en(# l_suppkey = ps_suppkey and ps_availqty > 0.5*l_quantity_SUM ) and s_nationkey = n_nationkey and
test_en-# n_name = 'CANADA' order by s_name limit 10;
                                                                              QUERY PLAN

--------------------------------------------------------------------------------------------------------------------------------------------
--------------------------
Limit  (cost=2680414.46..2680414.49 rows=10 width=51)
   ->  Sort  (cost=2680414.46..2680419.46 rows=2000 width=51)
         Sort Key: supplier.s_name
         ->  Nested Loop Semi Join  (cost=2238699.85..2680371.25 rows=2000 width=51)
               Join Filter: (supplier.s_suppkey = lineitem.l_suppkey)
               ->  Nested Loop  (cost=0.00..4467.31 rows=4000 width=55)
                     Join Filter: (supplier.s_nationkey = nation.n_nationkey)
                     ->  Seq Scan on nation  (cost=0.00..1.31 rows=1 width=4)
                           Filter: (n_name = 'CANADA'::bpchar)
                     ->  Seq Scan on supplier  (cost=0.00..3216.00 rows=100000 width=59)
               ->  Materialize  (cost=2238699.85..2675603.95 rows=5 width=8)
                     ->  Merge Join  (cost=2238699.85..2675603.92 rows=5 width=8)
                           Merge Cond: (lineitem.l_partkey = partsupp.ps_partkey)
                           Join Filter: ((partsupp.ps_suppkey = lineitem.l_suppkey) AND ((partsupp.ps_availqty)::numeric > (0.5 * (sum(linei
tem.l_quantity)))))
                           ->  GroupAggregate  (cost=2238699.85..2240463.39 rows=88177 width=13)
                                 ->  Sort  (cost=2238699.85..2238920.30 rows=88177 width=13)
                                       Sort Key: lineitem.l_partkey, lineitem.l_suppkey
                                       ->  Hash Join  (cost=66313.77..2229948.44 rows=88177 width=13)
                                             Hash Cond: (lineitem.l_partkey = part.p_partkey)
                                             ->  Seq Scan on lineitem  (cost=0.00..2024331.82 rows=9228072 width=13)
                                                   Filter: ((l_shipdate >= '1994-01-01'::date) AND (l_shipdate < '1995-01-01 00:00:00'::time
stamp without time zone))
                                             ->  Hash  (cost=66061.26..66061.26 rows=20201 width=4)
                                                   ->  Seq Scan on part  (cost=0.00..66061.26 rows=20201 width=4)
                                                         Filter: ((p_name)::text ~~ 'bisque%'::text)
                           ->  Index Scan using partsupp_fk2 on partsupp  (cost=0.00..382152.20 rows=7999948 width=12)
(25 行记录)

成本差10倍,都是nested loop

使用道具 举报

回复
论坛徽章:
0
59#
发表于 2012-9-24 11:21 | 只看该作者
最近在学这个,记号下,以后慢慢看

使用道具 举报

回复
论坛徽章:
0
60#
发表于 2017-3-8 04:17 | 只看该作者

https://www.postgresql.org/

9th February 2017

PostgreSQL 9.6.2, 9.5.6, 9.4.11, 9.3.16 and 9.2.20 Released!
The PostgreSQL Global Development Group is pleased to announce the availability of PostgreSQL 9.6.2, 9.5.6, 9.4.11, 9.3.16 and 9.2.20.

使用道具 举报

回复

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

本版积分规则 发表回复

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