Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как работает jdbc? / 25 сообщений из 38, страница 1 из 2
01.10.2018, 17:58
    #39711144
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
вопрос начался там 21691388 приведу здесь
вадяесли в хранимке есть такое


select * from ....


select * from ....


то она выдаст результат клиенту после завершения второго селекта
а возможно ли сделать так чтоб после первого селекта началась отдача клиенту , а потом начался второй селект или параллельно с отдачей первого запускался второй селект?
Akinaвадяона выдаст результат клиенту после завершения второго селектаЭто не так. Сервер начинает "выдачу" сразу по выполнении первого запроса. Можете убедиться, выполнив код в консольном клиенте. Если из приложения наблюдается иное, то вина лежит на библиотеке доступа или драйвере доступа.

есть такое

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 
            proc.executeQuery();
            rs = proc.getResultSet();  // 1
            
            while (rs.next()) {
         ....
            }

           
            userSession.getBasicRemote().sendText(sbb.toString());  
            proc.getMoreResults(); // 2
            rs = proc.getResultSet();
            rs.next();
            userSession.getBasicRemote().sendText(rsgetString(1));  


но у меня получается, что 1 приходит только тогда когда 2 селект выполнится
как сделать по очереди?
...
Рейтинг: 0 / 0
01.10.2018, 18:02
    #39711156
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
вадя,
антипаттерн)
...
Рейтинг: 0 / 0
01.10.2018, 18:04
    #39711162
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
Petro123вадя,
антипаттерн)а по делу?
...
Рейтинг: 0 / 0
01.10.2018, 18:12
    #39711172
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
вадя,
Это и есть по делу, если мы программисты а не кодировщики.
Жди ответов). Я с тобой не спорю.
...
Рейтинг: 0 / 0
01.10.2018, 18:20
    #39711177
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
вадя,

а как ты определяешь что

вадя1 приходит только тогда когда 2 селект выполнится ?
...
Рейтинг: 0 / 0
01.10.2018, 18:35
    #39711188
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
Dmitry.а как ты определяешь что
измеряю время на клиенте.
отправка серверу - начало отсчета.
второй селект вычисляется долго, но результат - 1 число.
после первого селекта идет отправка клиенту
userSession.getBasicRemote().sendText(sbb.toString());
на клиенте фиксация времени и вывод разницы
после второго селекта - отправка клиенту
userSession.getBasicRemote().sendText(sbb.toString());
на клиенте фиксация и отображение времени от начала отсчета.
время первого селекта (замерено отдельно - 15-20мс)
время второго селекта 1-3 сек
время между первой и второй фиксацией 1мс
если они приходили как хочется - разница между фиксациями должна быть большой , а время первой фиксации маленькое
...
Рейтинг: 0 / 0
01.10.2018, 18:58
    #39711204
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
если перед вторым sendText поставить принудительный sleep(3000) это будет видно на клиенте?
...
Рейтинг: 0 / 0
01.10.2018, 19:20
    #39711213
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
Dmitry.если перед вторым sendText поставить принудительный sleep(3000) это будет видно на клиенте?второе сообщение задержано на 3 сек
...
Рейтинг: 0 / 0
01.10.2018, 20:12
    #39711240
pavel_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
вадя
Код: java
1.
rs = proc.getResultSet();  // 1




Судя по доке этот метод выполянется для одного ResultSet'а
для нескольких нужно пользоваться
Код: java
1.
java.sql.Statement#execute(java.lang.String
...
Рейтинг: 0 / 0
01.10.2018, 20:20
    #39711244
pavel_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
pavel_nvвадя
Код: java
1.
rs = proc.getResultSet();  // 1




Судя по доке этот метод выполянется для одного ResultSet'а
для нескольких нужно пользоваться
Код: java
1.
java.sql.Statement#execute(java.lang.String )


Упс. Конечно в цитате про
Код: java
1.
proc.executeQuery()
...
Рейтинг: 0 / 0
01.10.2018, 20:27
    #39711249
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
вадя
select * from ....


select * from ....


то она выдаст результат клиенту после завершения второго селекта
а возможно ли сделать так чтоб после первого селекта началась отдача клиенту , а потом начался второй селект или параллельно с отдачей первого запускался второй селект?
В одной сессии обычно нельзя запустить два курсора. Или систему вложенных курсоров.

Поэтому я вижу такой вариант. Ты создаешь пул сессий 4-8 штук. (Connection) И в решиме thread-pool-executor накидываешь
им задания и они их исполняют в параллелизме.

Будь осторожен с ноутбуком. Для 1 локального диска этот фокус скорее всего не даст перформанса.
...
Рейтинг: 0 / 0
01.10.2018, 20:38
    #39711261
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
pavel_nv,
это забирает 1 результсет - результат 1 селекта
Код: java
1.
rs = proc.getResultSet(); 


а это
Код: java
1.
proc.executeQuery()


запускает на выполнение хранимку
как применить вой вариант?
maytonПоэтому я вижу такой вариант. Ты создаешь пул сессий 4-8 штук. (Connection) И в решиме thread-pool-executor накидываешь
им задания и они их исполняют в параллелизме.не , тут мне надо несколько иное. получить результат именно из одной хранимки.
...
Рейтинг: 0 / 0
01.10.2018, 20:50
    #39711271
pavel_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
вадя,

А доку читал?)
Ты же сам писал в первом варианте
Код: java
1.
2.
rs = proc.getResultSet();
nextRs = proc.getMoreResults();
...
Рейтинг: 0 / 0
01.10.2018, 21:00
    #39711274
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
pavel_nvвадя,

А доку читал?)
Ты же сам писал в первом варианте
Код: java
1.
2.
rs = proc.getResultSet();
nextRs = proc.getMoreResults();

не понял...

дело в том, что я получаю первый результсет только после того как на сервере выполнится второй селект
...
Рейтинг: 0 / 0
01.10.2018, 21:24
    #39711296
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
вадяне , тут мне надо несколько иное. получить результат именно из одной хранимки.
Языки хранимок это обычно простые ЯП без мультипоточки и async-calls.
...
Рейтинг: 0 / 0
01.10.2018, 21:26
    #39711297
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
AkinaЭто не так. Сервер начинает "выдачу" сразу по выполнении первого запроса. Можете убедиться, выполнив код в консольном клиенте. Если из приложения наблюдается иное, то вина лежит на библиотеке доступа или драйвере доступа.
maytonЯзыки хранимок это обычно простые ЯП без мультипоточки и async-calls.
кто прав?
...
Рейтинг: 0 / 0
01.10.2018, 21:32
    #39711299
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
Я
...
Рейтинг: 0 / 0
01.10.2018, 22:08
    #39711313
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
вадякто прав?

возьми консольный mysql клиент и попробуй выполнить процедуру.
...
Рейтинг: 0 / 0
01.10.2018, 22:13
    #39711314
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
вадякак сделать по очереди?
В две переменные и выбирать по очереди в цикле?
Вопрос в чем?
...
Рейтинг: 0 / 0
02.10.2018, 05:55
    #39711389
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
Petro123В две переменные и выбирать по очереди в цикле?
Вопрос в чем?вопрос в том, что первый rs = proc.getResultSet(); начинает работать только после того как выполнится вся хранимка.
...
Рейтинг: 0 / 0
02.10.2018, 06:28
    #39711393
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
Dmitry.возьми консольный mysql клиент и попробуй выполнить процедуру.
maytonЯ
прав
Akina
действительно, сначала выдаёт результат первого селекта, поле (через время выполнения ) результат второго.
jdbc отдаёт результат после выполнения второго селекта, т.е. ждёт выполнения всей процедуры. а надо чтоб по мере выполнения селектов.
...
Рейтинг: 0 / 0
02.10.2018, 11:24
    #39711532
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
вадя,
хп логический это как бы функция - входные параметры, выходные.
ты же не можешь из функции выдрать локальную переменную с бухты барахты, ты должен ее выпиздуть наружу.
так и тут бери результат первого селекта заталкивай во вьюху, на вьюху вешай watcher и получай результат на событии.
...
Рейтинг: 0 / 0
02.10.2018, 11:33
    #39711539
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
Где-то в степибери результат первого селекта заталкивай во вьюху, на вьюху вешай watcher и получай результат на событии.не всё так просто :)
в хп строится динамический запрос.
весь фокус был - запуск разово , а получение результата по мере выполнения...
есть желание ускорить поиск с использованием по like and like в таблице с 3000000 строк.
...
Рейтинг: 0 / 0
02.10.2018, 11:40
    #39711545
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
вадя,
в чем проблема складывай все результаты в таблицу когда таблицу отпустит срабоатет событие -> смотри таблицу
уж не знаю, может ли твоя хп писать в файл, там еще проще и оперативней отследить.а ты как думал отлаживаю хп?
...
Рейтинг: 0 / 0
02.10.2018, 11:54
    #39711551
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает jdbc?
Где-то в степив чем проблема складывай все результаты в таблицу когда таблицу отпустит срабоатет событие -> смотри таблицу
уж не знаю, может ли твоя хп писать в файл, там еще проще и оперативней отследить.а ты как думал отлаживаю хп?всё это можно, но это всё время.
задача не выходить из 0.3 сек.
как отлаживать хп - это я знаю, в этом проблем нет :)
при 100 000 записей все летает.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как работает jdbc? / 25 сообщений из 38, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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