Sybase/hibernate 数据库性能
Sybase / hibernate database performance
我们有一个 Sybase 数据库,我们正在使用一个非常简单的查询进行查询。
Select * from ts_logs where time_sheet_id = 1234
table 有大约 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));
可能发生的情况是查询计划已更改,可能是由于行数增加所致。您应该 运行 UPDATE STATISTICS,并检查查询计划。如果搜索参数的选择性不足以检索所需的行,您应该重新考虑 table/query 设计。
我们有一个 Sybase 数据库,我们正在使用一个非常简单的查询进行查询。
Select * from ts_logs where time_sheet_id = 1234
table 有大约 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));
可能发生的情况是查询计划已更改,可能是由于行数增加所致。您应该 运行 UPDATE STATISTICS,并检查查询计划。如果搜索参数的选择性不足以检索所需的行,您应该重新考虑 table/query 设计。