针对在Hyper-V VM中运行的SQL Server诊断慢速JDBC select语句

问题描述 投票:0回答:1

我们刚刚构建了一个新的Hyper-V虚拟机来托管Java应用程序和Microsoft SQL Server。从Java JDBC应用程序运行SQL选择查询时,数据库的响应速度非常慢。从SQL Server Management Studio运行时,相同的查询会快速执行。

我们已经在裸机和VMware虚拟机上运行了相同的Java应用程序和SQL Server数据库,而没有任何性能问题。

我们的问题:

  • 其他开发人员是否在Hyper-V虚拟机中看到类似的性能问题?
  • 我们如何诊断导致JDBC应用程序性能瓶颈的原因?

示例查询:

select * from view1 where app_id in (
    select app_id from app_table where app_id % 1000 = 0)
order by app_id

响应时间:

  • SQL Server:9到36秒内45,000行,具体取决于RAM,CPU等
  • Java应用程序:超过4小时

Hyper-V虚拟机

  • Windows Server 2019主机
  • Hyper-V配置9,第2代

app_table表只有两列。

create table app_table (
  app_id [numeric](18,0) not null,
  col_2 [varchar] (75)
)

app_view视图也很简单。

create view app_view as select app_id from app_table

我们尝试了Java应用程序,JDBC驱动程序和SQL Server的各种组合。

应用程序:

  • 我们的自定义Java应用程序
  • SQuirreL客户端(4.0.0)

JDBC驱动程序:

  • sqljdbc4
  • sqljdbc_8.2.0.jre

SQL Server版本:

  • SQL Server 2017
  • SQL Server 2019

Java版本:8_241

java sql-server jdbc hyper-v
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.