sql >> Database teknologi >  >> RDS >> Sqlserver

sql-serverforespørgsel kører langsomt fra java

Jeg havde lignende problem, med en meget simpel anmodning (SELECT . FROM . WHERE =.) som tog op til 10 sekunder at returnere en enkelt række, når jeg brugte en jdbc-forbindelse i Java, mens jeg kun tog 0.01s i sqlshell. Problemet var det samme, uanset om jeg brugte den officielle MS SQL-driver eller JTDS-driveren.

Løsningen var at opsætte denne egenskab i jdbc-url'en:sendStringParametersAsUnicode=false

Fuldstændig eksempel, hvis du bruger MS SQL officiel driver:jdbc:sqlserver://yourserver;instanceName=yourInstance;databaseName=yourDBName;sendStringParametersAsUnicode=false;

Instruktioner, hvis du bruger forskellige jdbc-drivere og mere detaljeret information om problemet her:http://emransharif.blogspot.fr/2011/07/performance-issues-with-jdbc-drivers.html

I mit tilfælde havde jeg 30M+ poster i tabellen, jeg søgte fra. Varigheden for at fuldføre anmodningen gik fra mere end 10 sekunder til cirka 0,01 s efter anvendelse af egenskaben.

Håber dette vil hjælpe nogen!



  1. Laravel 5.4-opgradering -- Overtrædelse af integritetsbegrænsning - Kolonnen kan ikke være nul

  2. django.db.migrations.RenameModel og AutoField-sekvensnavn

  3. Advarsel:mysql_connect():Adgang nægtet for brugeren 'root'@'localhost' (ved hjælp af adgangskode:JA)

  4. Hvorfor bruges indekset på s ikke til sortering her?