有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java执行语句有很长的延迟

我有个问题。当我尝试在Sybase中插入一些数据时,我有很长的延迟:

2017-11-20 20:30:10324[调试][]将数据保存到表中

2017-11-20 21:30:28245[调试][]完成

一小时,卡尔

String query = "INSERT INTO {0}table (id, doc_id, num_doc, amount, unload_date, status) VALUES (?, ?, ?, ?, ?, ?)";

pstmt = lib.getConnection().prepareStatement(MessageFormat.format(query, "my_schema"));
pstmt.setLong(1, id);
pstmt.setLong(2, docId);
pstmt.setString(3, numDoc);
pstmt.setBigDecimal(4, amount);
pstmt.setDate(5, new Date());
pstmt.setInt(6, 0);
pstmt.execute();

为什么会有这样的想法


共 (1) 个答案

  1. # 1 楼答案

    如果查询运行缓慢,我建议检查查询是否也从其他客户端(如isql)运行

    第二步是检查这是否与网络有关,并且在本地运行isql时插入是否也很慢

    如果查询仍然缓慢,则这可能是与数据库相关的缓慢设计,如:

    • 列上未索引的外键
    • 慢触发器

    我将使用设置运行插入

    set statistics io on
    set statement_cache off
    

    并检查I/O的数量是否低。如果处理大型扫描,则会产生信息

    如果上述任何一项都不起作用,那么您需要检查哪个数据库等待事件导致操作变慢。运行以下代码以调查等待事件:

    select * from master..monProcessEvents where SPID = @@SPID
    

    可能需要额外的MDA配置。查询将显示导致操作变慢的事件的相关信息