液体基础与长运行声明



在几个项目中使用Liquibase之后,上周我开始在Informix中使用它。对于执行的每个命令(更新或回滚),我必须等待大约1分钟才能得到结果。在wireshark的帮助下,我发现Liquibase执行了以下SQL语句,这些语句需要花费很多时间。有可能避免这个语句或者使它更快吗?

SELECT trim(t.owner)::VARCHAR(128), t.tabname::VARCHAR(128), c.colname::VARCHAR(128), informixx .get_data_type(128)。c.coltype,c.extended_id, 0)::SMALLINT, informixx .schema_coltypename(c.coltype,c.extended_id)::VARCHAR(128), informixx .schema_precision(c。coltype, c.extended_id, c.collength)::INTEGER, 0::INTEGER,informix.schema_numscale(c. coltype, c.extended_id, c.collength)::INTEGER,coltype, c.c olength)::INTEGER, informixx .schema_numprecradix(c.coltype)::INTEGER, informixx .schema_isnullable(c.coltype)::INTEGER, NULL::VARCHAR(254),CASE d.type WHEN 'L' THEN informixx .get_default_value(c.c olength)::INTEGER,coltype, c.d extended_id, c.c olength, d.k default:: VARCHAR(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,coltype::整数,informix.schema_datetype (c。coltype, c.collength)::INTEGER, informix.schema_charlen(c。c. coltype, c.extended_id, c.collength)::INTEGER,colno::INTEGER, informixx .schema_nullable(c.coltype)::VARCHAR(3), NULL::VARCHAR(128), NULL::VARCHAR(128), NULL::VARCHAR(128), NULL::smallint, informixx .schema_isautoincr(c.coltype)::VARCHAR(3),c。extended_id::INTEGER FROM informix。systables 1、OUTER informix。Sysdefaults、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.tabname like 'informix' and c.colname like '%' union SELECT trim(st.owner)::VARCHAR(128), st.tabname::VARCHAR(128), c.colname::VARCHAR(128), informinformix .get_data_type(c.coltype,c. colid))extended_id, 0)::SMALLINT, informixx .schema_coltypename(c.coltype, c.c extended_id)::VARCHAR(128), informixx .schema_precision(128)。coltype, c.extended_id, c.collength)::INTEGER, 0::INTEGER, informix.schema_numscale(c. coltype, c.extended_id, c.collength)::INTEGER,coltype, c.c olength)::INTEGER, informixx .schema_numprecradix(c.coltype)::INTEGER, informixx .schema_isnullable(c.coltype)::INTEGER, NULL::VARCHAR(254), CASE d.type WHEN 'L' THEN informixx .get_default_value(c.c olength)::INTEGER,C .coltype, C .extended_id, C .collength, d.default:: VARCHAR(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(256)coltype, c.collength)::INTEGER, informix.schema_charlen(c。c.coltype, c.extended_id, c.collength)::INTEGER, c.colno::INTEGER, informixx .schema_nullable(c.coltype)::VARCHAR(3), NULL::VARCHAR(128), NULL::VARCHAR(128), NULL::VARCHAR(128), NULL::smallint, informixx .schema_isautoincr(c.coltype)::VARCHAR(3), c.extended_id::INTEGERSystables st, informix。Syssyntable、informix。systables 1、OUTER informix。Sysdefaults、informix。syscolumns c WHERE st.tabid = s.tabid AND st.tabid = t.tabid AND d.tabid = t.tabid AND c.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.tabname LIKE 'informix' AND c.colname LIKE '%'顺序为1,2,16

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

dbaccess stores lq.sql
real    0m0.701s
user    0m0.036s
sys     0m0.032s
对我来说似乎不算太慢,你的时间是多少?不能通过添加/删除索引来修改系统表的模式。也许您可以尝试不同的/更新的Informix版本?问候,

相关内容

  • 没有找到相关文章

最新更新