que tiene un programa Java que se ejecuta un montón de consultas en una base de datos SQL Server. El primero de ellos, cuyas consultas en una vista arrojan unos 750k registros. Puedo ejecutar la consulta a través del estudio de administración del servidor sql, y obtengo resultados en aproximadamente 30 segundos. sin embargo, inicié el programa para correr anoche. cuando lo revisé esta mañana, esta consulta aún no había devuelto los resultados al programa Java, unas 15 horas después.funcionamiento lento de java
que tienen acceso a la base de datos para hacer casi cualquier cosa que quiera, pero realmente no estoy seguro de cómo empezar la depuración de esto. ¿Qué debe uno hacer para descubrir qué está causando una situación como esta? No soy un dba, y no estoy íntimamente familiarizado con el conjunto de herramientas del servidor sql, por lo que los detalles que me puede dar sobre cómo hacer lo que podría sugerir serían apreciados.
aquí está el código
stmt = connection.createStatement();
clientFeedRS = stmt.executeQuery(StringBuffer.toString());
EDIT1:
Bien, ha pasado un tiempo, y esto se desvió, pero este tema está de vuelta. Intenté actualizar desde el controlador jdbc v 1.2 a 2.0, pero estamos atascados en jdk 1.4, y v 2.0 requiere jdk 1.5, por lo que no es un iniciador. Ahora estoy viendo mis propiedades de cadena de conexión. Veo 2 que podrían ser útiles.
SelectMethod=cursor|direct
responseBuffering=adaptive|full
En la actualidad, con el problema de latencia, estoy funcionando con el cursor como el SelectMethod, y con el valor predeterminado para responseBuffering que está lleno. ¿Cambiar estas propiedades es probable que ayude? si es así, ¿cuál sería la configuración ideal? Estoy pensando, basado en lo que puedo encontrar en línea, que usar un método de selección directa y un buffer de respuesta adaptativa podría resolver mi problema. ¿Alguna idea?
Edit2:
Bueno, yo terminó cambiando estos dos parametros de cadena de conexión, utilizando el método de selección por defecto (directo) y especificando el responseBuffering como adaptativa. Esto termina trabajando mejor para mí y alivia los problemas de latencia que estaba viendo. Gracias por toda la ayuda.
una publicación de su llamada a jdbc sería útil para averiguar qué, en todo caso, es incorrecto –
¿Cuál es el programa de Java? Probablemente se requiera un fragmento de código de cómo está accediendo al DB.Además, ¿está SQL Server Studio limitando los resultados (por ejemplo, las primeras 1000 filas) que podrían sesgar los resultados? – cletus
si estaba limitando los resultados a 1k filas, ¿cómo puedo estar seguro de que no? – shsteimer