【问题标题】:liquibase with long running statement具有长时间运行语句的 liquibase
【发布时间】:2015-09-01 15:45:16
【问题描述】:

在几个项目中使用 Liquibase 之后,上周我开始将它与 Informix 一起使用。对于执行更新或回滚的每个命令,我必须等待大约 1 分钟才能得到结果。在 wireshark 的帮助下,我发现 Liquibase 执行以下 SQL 语句,并且这些语句需要很多时间。是否有可能避免该声明或使其更快?

SELECT trim(t.owner)::VARCHAR(128), t.tabname::VARCHAR(128), c.colname::VARCHAR(128),informix.get_data_type(c.coltype, c.extended_id, 0 )::SMALLINT, informix.schema_coltypename(c.coltype,c.extended_id)::VARCHAR(128),informix.schema_precision(c.coltype, c.extended_id, c.collength)::INTEGER, 0::INTEGER,informix .schema_numscale(c.coltype, c.collength)::INTEGER, informix.schema_numprecradix(c.coltype)::INTEGER,informix.schema_isnullable(c.coltype)::INTEGER, NULL::VARCHAR(254),CASE d。输入 WHEN 'L' THEN informix.get_default_value(c.coltype, c.extended_id, c.collength, d.default::lvarchar(256))::VARCHAR(254) WHEN 'C' THEN 'current'::VARCHAR( 254)当'S'然后'dbservername'::VARCHAR(254)当'U'然后'用户'::VARCHAR(254)当'T'然后'今天'::VARCHAR(254)否则NULL::VARCHAR( 254)结束,c.coltype::整数,informix.schema_datetype(c.coltype,c.collength)::整数,informix.schema_charlen(c.coltype,c.extended_id,c.collength)::整数,c.colno ::整数,informix.schema_nullable(c.colt ype)::VARCHAR(3), NULL::VARCHAR(128), NULL::VARCHAR(128), NULL::VARCHAR(128), NULL::smallint, informix.schema_isautoincr(c.coltype)::VARCHAR( 3),c.extended_id::INTEGER FROM informix.systables t, OUTER informix.sysdefaults d, informix.syscolumns c WHERE t.tabid = c.tabid and d.tabid = t.tabid AND c.colno = d.colno AND (t.tabtype not in ('P', 'S')) AND (d.class in ('T')) AND t.tabname like '%' AND t.owner like 'informix' and c.colname like ' %' union SELECT trim(st.owner)::VARCHAR(128), st.tabname::VARCHAR(128), c.colname::VARCHAR(128), informix.get_data_type(c.coltype,c.extended_id, 0 )::SMALLINT, informix.schema_coltypename(c.coltype,c.extended_id)::VARCHAR(128), informix.schema_precision(c.coltype, c.extended_id, c.collength)::INTEGER, 0::INTEGER, informix .schema_numscale(c.coltype, c.collength)::INTEGER, informix.schema_numprecradix(c.coltype)::INTEGER, informix.schema_isnullable(c.coltype)::INTEGER, NULL::VARCHAR(254), CASE d。 WH型EN 'L' THEN informix.get_default_value(c.coltype, c.extended_id, c.collength, d.default::lvarchar(256))::VARCHAR(254) WHEN 'C' THEN 'current'::VARCHAR(254 ) WHEN 'S' THEN 'dbservername'::VARCHAR(254) WHEN 'U' THEN 'user'::VARCHAR(254) WHEN 'T' THEN 'today'::VARCHAR(254) ELSE NULL::VARCHAR(254 ) END, c.coltype::INTEGER, informix.schema_datetype(c.coltype, c.collength)::INTEGER, informix.schema_charlen(c.coltype, c.extended_id, c.collength)::INTEGER, c.colno: :INTEGER, informix.schema_nullable(c.coltype)::VARCHAR(3), NULL::VARCHAR(128), NULL::VARCHAR(128), NULL::VARCHAR(128), NULL::smallint, informix.schema_isautoincr (c.coltype)::VARCHAR(3), c.extended_id::INTEGER FROM informix.systables st, informix.syssyntable s, informix.systables t, 外部 informix.sysdefaults d, informix.syscolumns c WHERE st.tabid = s .tabid AND s.btabid = t.tabid AND t.tabid = c.tabid AND d.tabid = t.tabid AND c.colno = d.colno AND (st.tabtype in ('P', 'S')) AND (d.class in ('T')) AND st.tabname LIKE '%' AND st.owner LIKE 'informix' AND c.colname LIKE '% ' 按 1,2,16 排序

【问题讨论】:

  • 我相信 Informix DBA 应该可以帮助您。可能是环境超载或这些表中缺少统计信息...

标签: informix liquibase


【解决方案1】:

在我的实例上运行它(ids 12.10uc5)给我:

dbaccess stores lq.sql
real    0m0.701s
user    0m0.036s
sys     0m0.032s

对我来说似乎不太慢,你的时间是多少?系统表的架构不能通过添加/删除索引来修改。也许您可以尝试不同/更新的 Informix 版本? 问候,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多