У меня есть Java-программа, которая запускает несколько запросов к базе данных сервера SQL. Первый из них, который запрашивает представление, возвращает около 750 тыс. Записей. Я могу выполнить запрос через SQL Server Studio Studio, и я получаю результаты примерно через 30 секунд. Тем не менее, я запустил программу для запуска прошлой ночью. когда я проверил его этим утром, этот запрос все еще не дал результатов обратно в java-программу, примерно через 15 часов.
У меня есть доступ к базе данных, чтобы делать все, что я хочу, но я действительно не знаю, как начать отлаживать это. Что нужно сделать, чтобы понять, что является причиной такой ситуации? Я не являюсь администратором базы данных и не очень хорошо знаком с набором инструментов сервера SQL, поэтому более подробная информация, которую вы можете дать мне о том, как сделать то, что вы предлагаете, будет оценена.
вот код
stmt = connection.createStatement();
clientFeedRS = stmt.executeQuery(StringBuffer.toString());
EDIT1:
Ну, это было давно, и это отвлеклось, но эта проблема вернулась. Я посмотрел на обновление с jdbc driver v 1.2 до 2.0, но мы застряли на jdk 1.4, а v 2.0 требует jdk 1.5, так что это не стартер. Теперь я смотрю на свойства моей строки подключения. Я вижу 2, которые могут быть полезны.
SelectMethod=cursor|direct
responseBuffering=adaptive|full
В настоящее время с проблемой задержки я работаю с курсором в качестве selectMethod и со значением по умолчанию для responseBuffering, которое заполнено. Может ли изменение этих свойств помочь? если это так, какие будут идеальные настройки? Я думаю, основываясь на том, что я могу найти в Интернете, что использование метода прямого выбора и адаптивной буферизации ответов может решить мою проблему. есть мысли?
EDIT2:
Мы закончили изменять оба этих параметра строки соединения, используя метод выбора по умолчанию (direct) и указав responseBuffering как адаптивный. Это в конечном итоге работает лучше всего для меня и устраняет проблемы с задержкой, которые я видел. спасибо за помощь.