【发布时间】:2017-03-22 11:43:27
【问题描述】:
我们有一个 Sybase 数据库,我们用一个非常简单的查询来查询。
Select * from ts_logs where time_sheet_id = 1234
该表有大约 110 万条记录,直到 3 天前,它是一个非常快速的查询,大约在半秒内执行。
我们的应用程序使用休眠,并且 sql 输出显示完全相同的查询。截至三天前,我们注意到性能大幅下降,查询现在需要 9 到 11 秒才能执行。
我们尝试在 NetBeans 数据库可视化工具中运行查询,发现同样的性能问题。我们最初开始确定这是一个数据库性能问题,并决定在 dbvisualizer 中进一步诊断该问题,但令我们惊讶的是 dbvisualizer 在不到半秒的时间内执行了完全相同的查询。
我们在每个环境中都使用 jtds 1.3。
所有环境中的相同数据库。
所有环境中的相同查询。
什么可能导致 hibernate / netbeans 中的性能瓶颈,而不是 dbvisualizer?对下一个景点有什么想法吗?
CREATE TABLE ts_log (id numeric identity(19) NOT NULL GENERATED ALWAYS AS IDENTITY, log_comment varchar(2500), log_entry varchar(2500) NOT NULL, time_sheet_id numeric(19) NOT NULL, PRIMARY KEY (id));
【问题讨论】:
-
查询返回多少行?也许 DbVisualizer 不会显示所有这些,而 NetBeans 会。或者 DbVisualizer 不显示所有内容。请edit 您的问题并为相关表格添加
create table语句。您是否在所有四种环境中都对连接 URL 使用相同参数? -
用 create 语句更新了问题。 NetBeans 的默认值为 1000 行,实际返回的总行数为 2。所有环境中的相同 url。