powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
43 сообщений из 43, показаны все 2 страниц
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37651812
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую!

К примеру, во вьюшке 60076 записей; чтобы заполнить комбобокс, как показано на рисунке в конце поста- требуется порядка ~5..6 минут, что, как мне кажется, не допустимо долго. Возможно, есть способ ускорить выборку? Буду весьма признателен за информацию.

Код: java
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.
...
    private class OrganizationsHandbookBinder {
    	OrganizationsHandbookBinder() {
    		sess = HibernateUtil.getMarksistSessionFactory().openSession();
    		sess.beginTransaction();
    		
    		OrganizationsHandbookList = (List)sess.createCriteria(OrganizationsHandbook.class).list();
    	    
    		//sess.getTransaction().commit();
    	    sess.close();
    	}
    }

...

   organizationsHandbookBinder = new OrganizationsHandbookBinder();
...

            for(Object organizationsHandbook : OrganizationsHandbookList) {
            	companies.addItem(((OrganizationsHandbook)organizationsHandbook).getOrgId() + " : " +
            			((OrganizationsHandbook)organizationsHandbook).getShortname());
            }
            companies.setFilteringMode(Filtering.FILTERINGMODE_STARTSWITH);        
            companies.setImmediate(true);        
            companies.setNullSelectionAllowed(false);



Собственно, сам класс OrganizationsHandbook -

Код: java
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
...
@Entity
@Table(name = "MARKSIST.NSI_ORG_ALL")
public class OrganizationsHandbook {
	@Id	
	@Column(name = "ORG_ID")
	private Integer orgId;
	@Column(name = "OKPO")
	private String okpo;
	@Column(name = "SHORTNAME")
	private String shortname;
	@Column(name = "RECDATEBEGIN")
	private String recdatebegin;
	@Column(name = "RECDATEEND")
	private String recdateend;
	/**
	 * @return
	 */
	public Integer getOrgId() {
		return orgId;
	}
	/**
	 * @param orgId 
	 */
	public void setOrgId(Integer orgId) {
		this.orgId = orgId;
	}
	/**
	 * @param okpo
	 */
	public void setOkpo(String okpo) {
		this.okpo = okpo;
	}
	/**
	 * @return 
	 */
	public String getOkpo() {
		return okpo;
	}
	/**
	 * @param recdatebegin
	 */
	public void setRecdatebegin(String recdatebegin) {
		this.recdatebegin = recdatebegin;
	}
	/**
	 * @return
	 */
	public String getRecdatebegin() {
		return recdatebegin;
	}
	/**
	 * @param shortname
	 */
	public void setShortname(String shortname) {
		this.shortname = shortname;
	}
	/**
	 * @return
	 */
	public String getShortname() {
		return shortname;
	}
	/**
	 * @param recdateend
	 */
	public void setRecdateend(String recdateend) {
		this.recdateend = recdateend;
	}
	/**
	 * @return
	 */
	public String getRecdateend() {
		return recdateend;
	}
}
...



Файл конфигурации -

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC 
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
	
<hibernate-configuration>    
   <session-factory name="hibernateSessionFactory">
	  <property name="current_session_context_class">thread</property>  
	  
      <property name="connection.datasource">java:/comp/env/jdbc/oracle-9i-athletes</property>          
      <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
      
      <property name="format_sql">true</property>  
      <property name="show_sql">true</property>
   </session-factory> 
</hibernate-configuration>
...



HibernateUtil -

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
...

public class HibernateUtil {	
    private static final SessionFactory marksistSessionFactory;
    static {    	
    	try {
    		/////////////////////// MARKSIST ANNOTATED CLASSES ///////////////////////
    		
    		AnnotationConfiguration marksistAnnotationConfiguration = new AnnotationConfiguration();
    		marksistAnnotationConfiguration.addAnnotatedClass(com.intellex.marksist.application.BusFunction.class);
    		marksistAnnotationConfiguration.addAnnotatedClass(com.intellex.marksist.hbn.model.OrganizationsHandbook.class);
    		Configuration marksistConfiguration = marksistAnnotationConfiguration.configure("marksist.hibernate.cfg.xml");
    		marksistSessionFactory = marksistConfiguration.buildSessionFactory();
      } catch (Throwable ex) {    	  	
        	throw new ExceptionInInitializerError(ex);
      }
    }
    public static SessionFactory getMarksistSessionFactory() {
    	return marksistSessionFactory;
    }
}
...



Глобальный контекст -

Код: xml
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.
30.
31.
32.
33.
34.
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<!--Context antiJARLocking="true"
path="/ConnectionPooling">
<!- - set the JNDI Datasource -->


	<Resource name="jdbc/oracle-9i-athletes"
	auth="Container"
	type="javax.sql.DataSource"
	maxActive="10"
	maxIdle="20"
	maxWait="5000"
	username="..."
	password="..."
	driverClassName="oracle.jdbc.OracleDriver" 
	url="jdbc:oracle:thin:@......."/>	


    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->

    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <!--
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->

</Context>
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37651826
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вы себе представляете юзера, который выбирает одну из 60076 записей? Вот так сидит и листает?
Откуда уверенность в том что тормозит именно хибернейт, а не companies.addItem, например? Или вывод контрола на страницу?
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37651840
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую, Blazkowicz!

Свойство
Код: java
1.
FILTERINGMODE_STARTSWITH

определяет функционал QuickSearch в данном случае, т.е. достаточно начать вводить посимвольно, чтобы инициировать фильтрацию.

Относительно companies.addItem- интересное замечание. Я подумаю, спасибо.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37651858
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanov-voidтребуется порядка ~5..6 минут
чтобы снизить до макс.10 сек - всё равно надо дать юзверю механизм настроечных фильтров с сохранением (индивидуальных).
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37651874
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По аналогии: "пагинацию придумали трусы!"
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37651878
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ivanov-voidтребуется порядка ~5..6 минут
чтобы снизить до макс.10 сек - всё равно надо дать юзверю механизм настроечных фильтров с сохранением (индивидуальных).Ну что ж вы за глупости такие то пишите Какие юзеры? Какие настроечные фильтры? Проблема в том, что пользователю надо давать подсказки по списку имеющихся объектов.
У автора это, разумеется, сделано очень глупо - он зачем то вытаскивает вообще все объекты и вытаскивает их целиком. Вместо этого надо стремиться вытаскивать минимум информации из БД. Например, вытаскивать только имена, которые будут показаны пользователю и ID, которые будут использованы где-то в запросе. Плюс такого варианта - очень быстрый, результаты можно закешировать.
Есть другой вариант - вытаскивать не все объекты, а только те, которые попадают под паттерн, введеный юзверем. Тут кеширование не прокатит (а значит будет страдать БД), зато этот вариант может оказаться подходящим при разрстании таблицы до очень большого кол-ва записей.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37651889
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckПо аналогии: "пагинацию придумали трусы!"
пагинация <> фильтру.
Неужели не в курсе?
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37651893
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruck,
хотя, если ты про дополнительно, как вариант, то ... извини :)
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37651898
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо инструменты получше изучать. В том же Vaadin есть концепция - Container: https://vaadin.com/api/com/vaadin/data/Container.html
по логике она должна уметь делать ленивую загрузку, чтобы не грузить юзеру 60К записией, которые ему триста лет не нужны.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37651900
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svenomУ автора это, разумеется, сделано очень глупо
svenom,
чёто у тебя слово "глупо" - слишком часто. Даже вникать в пост лень.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37651924
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую всех!

...
механизм настроечных фильтров с сохранением (индивидуальных).

вытаскивать только имена, которые будут показаны пользователю и ID, которые будут использованы где-то в запросе.

вытаскивать не все объекты, а только те, которые попадают под паттерн, введеный юзверем

концепция - Container: https://vaadin.com/api/com/vaadin/data/Container.html
...


Клево, благодарю за помощь.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652091
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123пагинация <> фильтру.
Неужели не в курсе?
Шутник! Не в 1 классе!
Просто фильтр может выдать тоже слишком много записей.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652194
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На моем (довольно старом) ноуте вычитывание такой таблицы из БД занимает пару секунд.
5-6 минут - это на нагруженной базе или нет? Если на нагруженной, то сколько времени занимает вычитывание таблицы через jdbc или через консольный клиент (в последнем случае перенаправьте вывод результатов в nul, так как терминал тормозит))?
Я был бы очень благодарен за ответ.


Если по существу, то нужен fuzzy search. У вас какая СУБД?
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652203
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪНа моем (довольно старом) ноуте вычитывание такой таблицы из БД занимает пару секунд.
5-6 минут - это на нагруженной базе или нет? Если на нагруженной, то сколько времени занимает вычитывание таблицы через jdbc или через консольный клиент (в последнем случае перенаправьте вывод результатов в nul, так как терминал тормозит))?
Я был бы очень благодарен за ответ.
Если по существу, то нужен fuzzy search. У вас какая СУБД?
Да что вы на базу смотрите? У автора Vaadin тормозтит.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652224
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У автора Vaadin тормозтит.
А что он там делает по 5 минут?
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652233
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪУ автора Vaadin тормозтит.
А что он там делает по 5 минут?
60т. раздели на время - не так и много
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652248
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪЕсли по существу, то нужен fuzzy search. У вас какая СУБД?Нет тут никакого fuzzy, здесь нужен точный матчч заданому паттерну.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652251
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪА что он там делает по 5 минут?

http://dev.vaadin.com/browser/svn/versions/6.7/src/com/vaadin/ui/AbstractSelect.java

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
  public Object addItem() throws UnsupportedOperationException {

	        final Object retval = items.addItem();
	        if (retval != null
	                && !(items instanceof Container.ItemSetChangeNotifier)) {
	           fireItemSetChange();//!!!
	        }
	        return retval;
	    }



и так 60000+ раз
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652252
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczи так 60000+ раз
Да ещё на JavaScript
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652257
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svenomНет тут никакого fuzzy, здесь нужен точный матчч заданому паттерну.
И ленивая загрузка.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652307
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, все верно.
Вспомнил свои посты на этот счет как раз - 1, 2, из этого синтезирую решение.
Всем еще раз спасибо за информацию.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652452
organism
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanov-void,
Посмотрите в сторону: Hibernate Container
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652486
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую Vaadin и Hibernate, тот же выпадающий список но всего 10т.р. записей, вроде не тормозит - подгружается при необходимости. Та же ситуация с таблицами.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652528
Dflz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не могу понять для чего надо юзеру эти тысячи значений?
я использую оперратор like (mssql, mysql) для вывода отфильтрованных значений при вводе символов. и вывожу юзеру не больше 10 строк, как результат выбор нужного из 700 000 значений - юзером 3-9 сек (это с учетом реакции юзера, нажатие на кнопки)
если следовать вашими методами - это передача юзеру огромниго , не нужного ему количества информации, куча потраченного в пустую времени не заполнение комбо.
а если это jsp страница, то ....
почему не используются вебсервисы? ведь всё просто.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652612
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dflzя использую оперратор like (mssql, mysql) для вывода отфильтрованных значений при вводе символов.
В Vaadin'е в этом КомбоБоксе точно также все происходит, можно лениво прогружать все десятки тысяч записей, прокручивая список, а можно набирать начальные буквы и значения списка будут отфильтровываться по введенным символам.
Скорее всего автор, либо что-то отключил, потому что по-умолчанию всегда все лениво прогружается. (сомниваюсь что сейчас прав буду - не присвоил .setImmediate(true) переменной комбобокса).
Но еще более вероятно, что у него здоровенный ентити-файл, с кучей связей, которые НЕ Lazy. Из за этого имея даже 10 объектов можно получить хорошие такие тормоза :)
В конце концов надо бы трейс посмотреть, если там тысячами прут селекты гибернейта, то предыдущее предложение точно верно.
Ну и самое невероятное, версия Vaadin'a какая-то кривая - тогда надо ее сменить, естественно.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652616
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NixicНо еще более вероятно, что у него здоровенный ентити-файл, с кучей связей, которые НЕ Lazy. Из за этого имея даже 10 объектов можно получить хорошие такие тормоза :)
В конце концов надо бы трейс посмотреть, если там тысячами прут селекты гибернейта, то предыдущее предложение точно верно.
Ну и самое невероятное, версия Vaadin'a какая-то кривая - тогда надо ее сменить, естественно.
Автор весь код привел, а вы фантазируете.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652640
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczАвтор весь код привел, а вы фантазируете.
Ой ))
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652642
Dflz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автора можно набирать начальные буквы и значения списка будут отфильтровываться по введенным символам.

это не есть хороший метод поиска
наблюдал минут 5-7 как в одной очень известной it конторе бухгалтера (2чел) искали таким методом клиента, все точно знали что он в базе. но так и не нашли....
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652648
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dflzавтора можно набирать начальные буквы и значения списка будут отфильтровываться по введенным символам.

это не есть хороший метод поиска
наблюдал минут 5-7 как в одной очень известной it конторе бухгалтера (2чел) искали таким методом клиента, все точно знали что он в базе. но так и не нашли....
:)
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37652807
Реалист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dflzавтора можно набирать начальные буквы и значения списка будут отфильтровываться по введенным символам.

это не есть хороший метод поиска
наблюдал минут 5-7 как в одной очень известной it конторе бухгалтера (2чел) искали таким методом клиента, все точно знали что он в базе. но так и не нашли....
Поиск и поиск по первым буквам это не одно и тоже. Просто бухгалтеры не владели предметом
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37653797
tumblerrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NixicВ Vaadin'е в этом КомбоБоксе точно также все происходит, можно лениво прогружать все десятки тысяч записей, прокручивая список, а можно набирать начальные буквы и значения списка будут отфильтровываться по введенным символам.
Скорее всего автор, либо что-то отключил, потому что по-умолчанию всегда все лениво прогружается. (сомниваюсь что сейчас прав буду - не присвоил .setImmediate(true) переменной комбобокса).

Все именно так и происходит. Вся фишка в том, откуда комбобокс берет данные. А берет он их из контейнера, который подставляется в качестве датасорса.
Так вот у автора именно наполнение контейнера идет долго.
А потом все быстро будет, ибо на клиент с сервера все идет ленивыми загрузками.

А как по другому делать? Контейнер-то надо заполнить данными которые потом будут на совпадение проверятся при вводе.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37653805
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tumblerrrА потом все быстро будет, ибо на клиент с сервера все идет ленивыми загрузками.

DataSource у комбобокса разве серверный???

tumblerrrА как по другому делать?
Контейнер-то надо заполнить данными которые потом будут на совпадение проверятся при вводе.
Как-как? Конейнер это интерфейс доступа к данным. Его не нужно заполнять всеми записями. Его нужно научить ходить в базу.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37653833
tumblerrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczDataSource у комбобокса разве серверный???
Ваадин вообще весь из себя серверный.

BlazkowiczКак-как? Конейнер это интерфейс доступа к данным. Его не нужно заполнять всеми записями. Его нужно научить ходить в базу.
Это смотря какой контейнер. Они разные бывают. Автор просто сделал контейнер который он сначала заполняет данными из базы построчно, а потом уже с ним работает. Вот на это построчное заполнение и уходит время.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37653987
Dflz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторПоиск и поиск по первым буквам это не одно и тоже. Просто бухгалтеры не владели предметом

это если подходить глобально, а на практике реализовано как я видел...
продукт для бухов был этой же конторы, и наверно они могли спросить как искать, значит не было сделано чтоб искало....
автор (точнее юзера этого автора так же столкнуться с этой проблемой). поэтому - сразу надо организовывать правильный поиск
а не пытаться ускорить выгрузку тысяч строк.



авторЭто смотря какой контейнер. Они разные бывают. Автор просто сделал контейнер который он сначала заполняет данными из базы построчно, а потом уже с ним работает. Вот на это построчное заполнение и уходит время.

это если всё на одной машине и база и клиент, а если через инет? засорять трафик? а если у клиента не безлим? да ещё и модем...
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37653993
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tumblerrrВаадин вообще весь из себя серверный.

Ааа... Нафиг он тогда вообще такой нужен?
Похоже что на каждый addItem() на сервере идёт нотификация клиентского UI. Нет?

tumblerrrЭто смотря какой контейнер. Они разные бывают. Автор просто сделал контейнер который он сначала заполняет данными из базы построчно, а потом уже с ним работает. Вот на это построчное заполнение и уходит время.
Тогда, вероятно, достаточно просто другим способом заполнить контейнер? Что тоже не фонтан. 60К записей, только одного словаря. А если их несолько. А если несколько пользователей. Это ж какая куча может понадобится?
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37654494
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже что на каждый addItem() на сервере идёт нотификация клиентского UI. Нет?

Невозможно без комета. Не думаю, что он там используется.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37654602
organism
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪПохоже что на каждый addItem() на сервере идёт нотификация клиентского UI. Нет?

Невозможно без комета. Не думаю, что он там используется.

Это вы зря .
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37654610
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
organismЭто вы зря .
По-моему, сервер-пуш все же опциональный - http://dev.vaadin.com/ticket/111
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37654849
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪПохоже что на каждый addItem() на сервере идёт нотификация клиентского UI. Нет?

Невозможно без комета. Не думаю, что он там используется.
я не понял, что именно невозможно.
Двухсторонняя связь?
Кроме комета, есть RPC.
Ваадим же на GWT сидит. А GWT есть RPC. Так что, должно быть в коробке... любой оверхед и тормоз можно написать.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37655049
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сервер- пуш не опциональный. За кулисами сервер- управляемой модели разработки Vaadin использует AJAX- технологию, позволяющую создавать богатые интернет- приложения (т.н. RIA), столь же интерактивные, как и desctop- варианты.

Для отрисовки пользовательского интерфейса в броузере Vaadin использует GWT -Google Web Toolkit,
т.н. набор инструментов Google. Программы GWT пишутся на Java, но компилируются в JavaScript, тем самым освобождая
разработчика от необходимости изучения как самого JavaScript, так и прочих броузерных web- технологий. GWT является
идеальным решением для реализации сложных компонентов пользовательского интерфейса (или "виджетов" в терминологии GWT)
и логики взаимодействия с пользователем, в то время как Vaadin обрабатывает логику приложения на стороне сервера.
Vaadin спроектирован расширяемым, поэтому существует возможность использования сторонних компонентов GWT в дополнение
к предлагаемому Vaadin набору. При этом всем кодом, который вы должны будете написать является чистая Java.

Не путайте GWT RPC и GWT, хотя Vaadim может сидеть на чем чем угодно, как и последнее усилие гения, Petro123.

Продолжение , например. Никакой контейнер, ни hbn, ни lazy query, ни beanitem et contra не в силах предоставить требуемый отклик при >400K записей, поэтому только QuickSearch.. Матч по паттерну и lazzy load, Blazkowicz, svenom - очередное thanks again.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37655053
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz Похоже что на каждый addItem() на сервере идёт нотификация клиентского UI. Нет?

Не совсем. На каждую манипуляцию с виджетом, скорее. Контейнер формируется на server- side, а вот скролл контрола, клики по итемам и пр. - уже обмен JSON'ами.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37655231
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanov-voidНе путайте GWT RPC и GWT
наверно вы хотели сказать тёплое с мягким? Тогда просветите о _коренных_ отличиях "GWT RPC и GWT", "SpringMVC и MVC", "SmartGWT и Vaadim".

ivanov-voidтребуемый отклик при >400K записей
а почему не миллион?
Когда тут ваадим пиарил его разработчик год назад. Я его спрашивал про ленивую загрузку в их продуктах. Он увёл в сторону и сказал, что ЭТО в разработке....
В других ЯП ЭТО называется "серверный курсор" - когда всё равно сколько записей в БД.
Здесь это ломает линейку БД ---> Хибер\ОРМ - DTM ---> JS
и ломает способность реагировать, как вы правильно заметили, со скоростью отклика по ТЗ.
Удачи!
Будет работать - напиши.
...
Рейтинг: 0 / 0
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
    #37655262
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Тогда просветите о _коренных_ отличиях "GWT RPC и GWT", "SpringMVC и MVC", "SmartGWT и Vaadin".

Petro123Будет работать - напиши.

Хорошо, несколько позже.
...
Рейтинг: 0 / 0
43 сообщений из 43, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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