powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / странно работает jdbc
37 сообщений из 37, показаны все 2 страниц
странно работает jdbc
    #39086460
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть такое
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        String getBase = "jdbc:mysql://localhost:3306/test?characterEncoding=UTF8&useUnicode=true";
        String getBase_login = "root";
        String getBase_password = "1234";
        StringBuilder sbb = new StringBuilder();
        try (Connection con = DriverManager.getConnection(getBase, getBase_login, getBase_password);
                CallableStatement proc = con.prepareCall("{call page1_xxx07('" + sy.toString() + "')}");) {
            rs = proc.executeQuery();
           ................................
        } catch (SQLException ex) {
            Logger.getLogger(SSLServer.class.getName()).log(Level.SEVERE, null, ex);
        }


грешил на mysql, но судя по 18325072
mysql не виноват.
может быть влияет время выполнения самого запроса? он длится 36 сек.
...
Рейтинг: 0 / 0
странно работает jdbc
    #39086856
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может кто подскажет какие параметры отвечают за долгое выполнение запроса, более 30 секунд?
есть подозрение, что драйвер отправляет повторные запросы через какое-то время. если от базы не пришло ответа вовремя...
...
Рейтинг: 0 / 0
странно работает jdbc
    #39086889
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяможет кто подскажет какие параметры отвечают за долгое выполнение запроса, более 30 секунд?
А аналогичный запрос из любой тулзы? А включить логирование в mysql и посмотреть?

вадяесть подозрение, что драйвер отправляет повторные запросы через какое-то время. если от базы не пришло ответа вовремя...
Это вряд ли.
...
Рейтинг: 0 / 0
странно работает jdbc
    #39086890
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DriverManager.getConnection тоже может отнимать существенное время. Оно включено в тест?
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087062
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот
Код: java
1.
2.
3.
4.
5.
6.
7.
 try (Connection con = DriverManager.getConnection(getBase, getBase_login, getBase_password);
                CallableStatement proc = con.prepareCall("{call page1_xxx07('" + sy.toString() + "')}");) {
            rs = proc.executeQuery();
            ..............
        } catch (SQLException ex) {
            Logger.getLogger(SSLServer.class.getName()).log(Level.SEVERE, null, ex);
        }


при 28000 выполняется без проблем
из другой тулзы тоже нормально, нагрузка на проц опускается до 0 после отправки данных
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087087
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
Код: java
1.
rs = proc.executeQuery();


тип курсора при возварте?
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087124
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

ResultSet rs;
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087169
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяPetro123,
ResultSet rs;
я в курсе что такое слово там есть.
Я спросил про Type of ResultSet.
Покопай в этом направлении. Типы могут быть разными и результат\время тоже.
IMHO
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087240
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в данном случае меня устраивает по умолчанию что там.
даже не смотрел.
в принципе устроит и ResultSet.TYPE_SCROLL_INSENSITIVE и ResultSet.TYPE_FORWARD_ONLY
если они будут играть какую-то роль.
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087249
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяв данном случае меня устраивает по умолчанию что там.
вот и я не понял твоего сабжа. Что 36 сек, что 56 сек., какая разница. Всё рано много)).
А настроек при LIKE столько, что теряется сам смысл вопроса. IMHO
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087258
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Я правильно понял вашу проблему. Есть запрос (хранимка) который вычитывает много-много данных. В БД он отрабатывает шустро и это видно по плану запроса? Но когда запрос выполняется из JDBC сервер сильно тормозит, вычитывая все необходимые данные вместо того чтобы отдать скроллируемый курсор?
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087278
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

А можно весь код посмотреть?
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087283
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczчтобы отдать скроллируемый курсор?
я думаю, это и есть тип курсора который наду установить.
Тогда при проходе в коде в цикле, драйвер будет подкачивать следующие записи. Или не будет.
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087289
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадяв данном случае меня устраивает по умолчанию что там.
вот и я не понял твоего сабжа. Что 36 сек, что 56 сек., какая разница. Всё рано много)).
А настроек при LIKE столько, что теряется сам смысл вопроса. IMHO
ну из-за чего такая разница, и почему она есть это вопрос отдельный.
а то что время большое - в этом нет ничего удивительного всё в принципе работы like %что-то%, а именно из-за первого процента
настроек при like нет , по крайней мере в том виде , что используется.
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087297
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczвадя,

А можно весь код посмотреть?

вызов
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
    public void listbox(String param, String name) {
        String[] st = param.split(" ");
        StringBuilder sy = new StringBuilder();
        for (String sf : st) {
            sy.append(" name like ''%").append(sf).append("%'' and");
        }
        sy.setLength(sy.length() - 4);
        String getBase = "jdbc:mysql://localhost:3306/test?characterEncoding=UTF8&useUnicode=true";
        String getBase_login = "root";
        String getBase_password = "1234";
        StringBuilder sbb = new StringBuilder();
        try (Connection con = DriverManager.getConnection(getBase, getBase_login, getBase_password);
                CallableStatement proc = con.prepareCall("{call page1_xxx07('" + sy.toString() + "')}");) {
            rs = proc.executeQuery();
            sbb.append(name);
            if (rs != null) {
                sbb.append(list_names(rs).toString());
            }
            webSocket_.send(sbb.toString());
        } catch (SQLException ex) {
            Logger.getLogger(SSLServer.class.getName()).log(Level.SEVERE, null, ex);
        }
    }


хранимка
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
CREATE DEFINER = 'root'@'localhost'
PROCEDURE test.page1_xxx07(IN `name` varchar(255))
BEGIN
  SET @name = `name`;
  IF (LENGTH(`name`) > 0)
  THEN
    IF `name` = '±'
    THEN
      SELECT
        pass.id,
        pass.name
      FROM pass LIMIT 15;

    ELSE

      SET @sql = 'SELECT SQL_SMALL_RESULT  pass.id, pass.name FROM pass WHERE ';

      SET @sql = CONCAT(@sql, `name`, ' limit 5');
            

      PREPARE SSql FROM @sql;
     
      EXECUTE SSql;
     
      DEALLOCATE PREPARE SSql;
    END IF;

  END IF;
END

...
Рейтинг: 0 / 0
странно работает jdbc
    #39087304
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

То есть данных едет мало? Тормозит исключительно выборка? Так надо лог mysql смотреть.
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087308
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczвадя,

Я правильно понял вашу проблему. Есть запрос (хранимка) который вычитывает много-много данных. В БД он отрабатывает шустро и это видно по плану запроса? Но когда запрос выполняется из JDBC сервер сильно тормозит, вычитывая все необходимые данные вместо того чтобы отдать скроллируемый курсор?
запрос высчитывает ограниченное число данных - Limit 5, только 5 строк удовлетворяющих условию like %что-то%
отрабатывает он не очень шустро, но это и понятно - такое like %что-то% сканирует всю таблицу, до тех пор пока не наберёт 5 строк.
сервер их набирает и отдаёт, пока он их отбирает проц грузит на 100%, это понятно, т.к. все данные в памяти.
проблема в том, что когда данные отданы проц ещё кучу времени нагружен на 100%.
если это же выполнить из dbForge проц , после отдачи, идет курить бамбук.
вот и возникает вопрос - почему?
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087310
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпроблема в том, что когда данные отданы проц ещё кучу времени нагружен на 100%.
если это же выполнить из dbForge проц , после отдачи, идет курить бамбук.
закрой коннект и курсор драйвера.
после
Код: java
1.
sbb.append(list_names(rs).toString());
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087311
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из амерь время на этой строке. До и после.
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087315
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczвадя,

То есть данных едет мало? Тормозит исключительно выборка? Так надо лог mysql смотреть.
время отдачи одинаково.
я смотрю менеджер сессий и там (при jdbc) идет выполнение этого запроса, как-будто jdbc шлёт и шлет запросы, не получив вовремя ответ
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087319
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадяпроблема в том, что когда данные отданы проц ещё кучу времени нагружен на 100%.
если это же выполнить из dbForge проц , после отдачи, идет курить бамбук.
закрой коннект и курсор драйвера.
после
Код: java
1.
sbb.append(list_names(rs).toString());


счас сделаю.
а разве java 8 не закрывает сама всё?
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087320
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадякак-будто jdbc шлёт и шлет запросы, не получив вовремя ответ
sbb.append(list_names(rs).toString());
это всё таки твой код, а не драйвера
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087323
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадякак-будто jdbc шлёт и шлет запросы, не получив вовремя ответ
sbb.append(list_names(rs).toString());
это всё таки твой код, а не драйвера
Там 15 несчастных строк. Тормозит исключительно выборка по огромной таблице.
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087326
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяа разве java 8 не закрывает сама всё?
вам шашечки или ехать?
Т.е. мы Java8 проверяем иил драйвер? ))
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087328
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczТам 15 несчастных строк. Тормозит исключительно выборка по огромной таблице.
может быть. Я просто люблю чистое, убранное место перед работой и тестами. Такие тараканы).
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087332
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяа разве java 8 не закрывает сама всё?
ResultSet вне заголовка try with resource. Я видел утечки памяти по такой причине. Connection и Statement закрывали, а ResultSet - нет. Канекшны, вроде, не утекали, но текла память. Всё от драйвера зависит, но лучше закрывать.
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087336
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяя смотрю менеджер сессий и там (при jdbc) идет выполнение этого запроса, как-будто jdbc шлёт и шлет запросы, не получив вовремя ответ
Я такое видел на уровне TCP, когда при медленном соединении прокси убивал запросы по таймауту, а клиентское приложение сходило с ума и начинало слать их снова и снова, до первого успешного. Надо читать мануал по драйверу и посмотреть на трафик, действительно ли драйвер отправляет множество запросов. Может тогда timeout какой подкрутить на клиенте?
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087339
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё можно попробовать включить лог
Что-то типа ?logger=com.mysql.jdbc.log.Log4JLogger в строке соединения.
И посмотреть в уровне TRACE/DEBUG че там происходит.
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087358
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczвадяя смотрю менеджер сессий и там (при jdbc) идет выполнение этого запроса, как-будто jdbc шлёт и шлет запросы, не получив вовремя ответ
Я такое видел на уровне TCP, когда при медленном соединении прокси убивал запросы по таймауту, а клиентское приложение сходило с ума и начинало слать их снова и снова, до первого успешного. Надо читать мануал по драйверу и посмотреть на трафик, действительно ли драйвер отправляет множество запросов. Может тогда timeout какой подкрутить на клиенте?
вот что-то подобное и у меня
в доках я не смог углядеть. http://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html


авторзакрой коннект и курсор драйвера.
после
sbb.append(list_names(rs).toString());
не помогло.
повторюсь, проблема не в быстродействии (тут выше не прыгнешь) - проблема в том что грузит mysql, после того как он отдал найденные записи, и jdbc их отдал клиенту.
при 28000 всё летает. и эти данные если они набираются за малое время- всё нормально, проц после отдачи скулем данных успокаивается а при долгом отборе - нет
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087371
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпроблема в том что грузит mysql, после того как он отдал найденные записи, и jdbc их отдал клиенту.
ну тогда конкретно:
- минимальный код с циклом пробежки по рекордсету
- время закрытия в лог
- время освобождения соединения в БД.
....
В торой тест - запуск друго запроса на этот же коннект сразу за первым.
....
Тестируй. Кому счас легко)))
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087394
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087480
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

как ты догадался, что jdbc работает странно?
Зачем ты ищешь параметры таймаута на соединении, а не на стейтменте?
Уверен, что прерывание текущего выполнения и перезапиос выполняет именно jdbc?

Может книжку какую годную найдешь на полистать об используемых тобой инструментах и средах,
а то ведь они так и будут работать - странно.
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087510
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobyвадя,

как ты догадался, что jdbc работает странно?
Зачем ты ищешь параметры таймаута на соединении, а не на стейтменте?
Уверен, что прерывание текущего выполнения и перезапиос выполняет именно jdbc?

Может книжку какую годную найдешь на полистать об используемых тобой инструментах и средах,
а то ведь они так и будут работать - странно.
потому как видел нагрузку на сервере, а всё остальное работало как надо и проявлялось только на очень долгом запросе.
оказалось, что долгий запрос стал индикатором другой ошибки - отправлялось на сервер множество запросов, jquery события накладывались. а логи убрал - потому как код многократно использовал, понадеялся, что сканает...
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087549
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяPetro123,
можешь забрать всё
Проблемы у тебя, а не у меня.
Когда у меня, я все это делаю). Даж шибболе приходилось ставить.
Удачи.
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087704
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
и мне приходилось....
дак тут ... не шмог...
ты натолкнул то пиво твоё. :)
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087782
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
моя твоя не понимай). Сделал что-ли?
Я думал там проект для теста, а там пиво виртуальное))) LOL
...
Рейтинг: 0 / 0
странно работает jdbc
    #39087901
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадя,
моя твоя не понимай). Сделал что-ли?
Я думал там проект для теста, а там пиво виртуальное))) LOL
ну дак да, следуя твоим подсказкам :)

проблема решилась в js файле добавлением 1 буковки
вместо ...).on( поставил ...).one( это у jquery
и смех и грех...
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / странно работает jdbc
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]