SQLSTATE58030

页面导航:首页 > 数据库 > MsSql > SQLSTATE58030

SQLSTATE58030

来源: 作者: 时间:2016-01-20 09:48 【

在优化一条SQL的时候遇到了执行错误gtlions= select t1 telnumber,t2 ua,t2 url,t1 apply_name,t2 apply_name from tb1 t1 gtlions- left outer join tb2 t2 on t1 sid = t2 ipsid gtlio

在优化一条SQL的时候遇到了执行错误

gtlions=# select t1.telnumber,t2.ua,t2.url,t1.apply_name,t2.apply_name from tb1 t1 
gtlions-# left outer join tb2 t2 on  t1.sid = t2.ipsid 
gtlions-# where t1.sum_date=20141128 and t1.sys_reported_time >= '2014-11-28 03:55:00' and t1.sys_reported_time <= '2014-11-28 04:00:00';
ERROR:  could not create temporary file base/20350/pgsql_tmp/workfile_set_HashJoin_Slice0.XXXXva5ffL/spillfile_f261961:Too many open files
ERROR:  could not seek in temporary file: Bad file descriptor




对应的SQLSTATE58030,文档上是这样描述的

58030 IO ERROR io_error

检查了下打开文件数以及限制

[[email protected] ~]# lsof -n|wc -l           
23583
[[email protected] ~]# ulimit -Hn
131072
[[email protected] ~]# ulimit -Sn
131072  

再次在执行过程中检查下打开的文件数量发现已经远远超出了系统限制(14xxx),对此解决办法是修改GPDB参数[statement_mem],可以在session level级别进行设置,将该值设置的足够大以便容纳的下临时操作或者排序的数据。当然也要对表进行统计分析,保证准确的统计信息。

对于从4.2.8.2版本开始可以有专门的参数[gp_workfile_limit_files_per_query]设置打开文件数量的。

-EOF-

Tags:

相关文章

    文章评论

    最 近 更 新
    热 点 排 行
    Js与CSS工具
    代码转换工具
    
    <