greenplum 4.3.33 版本遇到生成执行计划需要7秒左右的时间,相关信息如下:
Thread 2 (Thread 0x7f64eac77700 (LWP 31116)):
#0 0x00007f64e65acdfd in poll () from /lib64/libc.so.6
#1 0x0000000000bbb034 in rxThreadFunc (arg=) at ic_udpifc.c:6313
#2 0x00007f64e70acdc5 in start_thread () from /lib64/libpthread.so.0
#3 0x00007f64e65b773d in clone () from /lib64/libc.so.6
Thread 1 (Thread 0x7f64ead19740 (LWP 31115)):
#0 0x00000000004ffecf in hashlittle (length=26, key=, initval=) at hashfunc.c:444
#1 hash_any (k=, keylen=) at hashfunc.c:1083
#2 0x00000000005f689a in caql_get_parser_cache (len=, str=) at caqlanalyze.c:602
#3 cq_lookup (str=0xdbb0bc "M pg_type WHERE oid = :1 ", len=26, pcql=0xa83f019a) at caqlanalyze.c:78
#4 0x00000000005f7937 in caql_beginscan (pCtx0=0x0, pcql=0x8bddd68) at catquery.c:714
#5 0x0000000000aefd2f in get_typlen (typid=) at lsyscache.c:2024
#6 get_typavgwidth (typid=20, typmod=-1) at lsyscache.c:2469
#7 0x00000000008d39f3 in estimate_tuple_width (rel=0x28434c8, attr_widths=0xd9d1cb8, bytes_per_tuple=0x7ffe7bb3ee1c, tuples_per_page=0x7ffe7bb3ee08) at plancat.c:629
#8 0x00000000008d4c90 in cdb_estimate_rel_size (default_stats_used=, tuples=, pages=, attr_widths=, rel=, baserel=, relOptInfo=) at plancat.c:434
#9 get_relation_info (root=0x2463830, relationObjectId=313961, inhparent=, rel=) at plancat.c:136

在Greenplum 4.3.33版本中,遇到生成执行计划耗时7秒的问题,主要原因是当表缺乏统计信息时,系统会尝试获取表的实际大小,包括页数和行数,这一过程在多分区表和列较多的情况下尤其耗时。解决方案是利用gp_enable_relsize_collection参数来控制优化器是否查询表的实际大小。
最低0.47元/天 解锁文章
1011

被折叠的 条评论
为什么被折叠?



