sql >> Databasteknik >  >> RDS >> Sqlserver

SQL-serverfrågan går långsamt från java

Jag hade liknande problem, med en mycket enkel begäran (SELECT . FROM . WHERE =.) som tog upp till 10 sekunder att returnera en enda rad när jag använde en jdbc-anslutning i Java, samtidigt som jag bara tog 0.01s i sqlshell. Problemet var detsamma oavsett om jag använde den officiella MS SQL-drivrutinen eller JTDS-drivrutinen.

Lösningen var att ställa in den här egenskapen i jdbc url:sendStringParametersAsUnicode=false

Fullständigt exempel om du använder MS SQL officiell drivrutin:jdbc:sqlserver://dinserver;instanceName=yourInstance;databaseName=yourDBName;sendStringParametersAsUnicode=false;

Instruktioner om du använder olika jdbc-drivrutiner och mer detaljerad information om problemet här:http://emransharif.blogspot.fr/2011/07/performance-issues-with-jdbc-drivers.html

I mitt fall hade jag 30 miljoner+ poster i tabellen jag sökte från. Varaktigheten för att slutföra begäran gick från mer än 10 sekunder till ungefär 0,01 s efter att egenskapen tillämpades.

Hoppas detta hjälper någon!



  1. Unik begränsning över flera tabeller

  2. mysql matcha sträng med början av sträng i tabellen

  3. MySQL veckodag/helgräkning - del II

  4. Ta bort dubbletter av rader från en liten tabell