sql >> Databáze >  >> RDS >> Sqlserver

Dotaz na sql server běží pomalu z javy

Měl jsem podobný problém s velmi jednoduchým požadavkem (SELECT . FROM . WHERE =.), který při použití připojení jdbc v Javě trvá až 10 sekund, než vrátí jeden řádek, zatímco v sqlshell trvá pouze 0,01 s. Problém byl stejný, ať už jsem používal oficiální ovladač MS SQL nebo ovladač JTDS.

Řešením bylo nastavit tuto vlastnost v jdbc url :sendStringParametersAsUnicode=false

Úplný příklad, pokud používáte oficiální ovladač MS SQL:jdbc:sqlserver://yourserver;instanceName=yourInstance;databaseName=vašeDBName;sendStringParametersAsUnicode=false;

Pokyny pro použití různých ovladačů jdbc a podrobnější informace o problému zde:http://emransharif.blogspot.fr/2011/07/performance-issues-with-jdbc-drivers.html

V mém případě jsem měl v tabulce, ze které jsem hledal, více než 30 milionů záznamů. Doba potřebná k dokončení požadavku se pohybovala z více než 10 sekund na přibližně 0,01 s po použití vlastnosti.

Doufám, že to někomu pomůže!



  1. SQL Server dotaz k nalezení všech oprávnění/přístupu pro všechny uživatele v databázi

  2. mysql s Exited(1) z dockeru

  3. ADO .NET vs. SQL Server Management Studio – ADO funguje hůře

  4. SELECT v MySQL nefunguje