Переключение на Главную Страницу Страницы: 1 [2] 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Cвой журнал с множественным отбором.... (число прочтений - 8133 )
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Cвой журнал с множественным отбором....
Ответ #15 - 29. Июля 2008 :: 06:55
Печать  
Mikeware писал(а) 29. Июля 2008 :: 05:08:
Правда, имхо, избыточный... Плодим новые сущности.

Зуб за два даю, что ты слышал такое понятие, как "денормализация". Улыбка
И что ее тоже иногда полезно пользоваться.
  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Cвой журнал с множественным отбором....
Ответ #16 - 29. Июля 2008 :: 07:29
Печать  
sadovnikov писал(а) 29. Июля 2008 :: 06:55:
Зуб за два даю, что ты слышал такое понятие, как "денормализация". Улыбка
И что ее тоже иногда полезно пользоваться.

Слышал Улыбка  Но стараюсь не пользоваться.
Да и ведь 1с-овский журнал быстро работает. почему?
  
Наверх
ICQ  
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Cвой журнал с множественным отбором....
Ответ #17 - 29. Июля 2008 :: 08:35
Печать  
Mikeware писал(а) 29. Июля 2008 :: 07:29:
Слышал Улыбка  Но стараюсь не пользоваться.

Зря. Иногда незаменимая вещь. Главное - не переборщить.

Mikeware писал(а) 29. Июля 2008 :: 07:29:
Да и ведь 1с-овский журнал быстро работает. почему?

Ключевое слово - индексы...
  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Cвой журнал с множественным отбором....
Ответ #18 - 30. Июля 2008 :: 06:35
Печать  
sadovnikov писал(а) 29. Июля 2008 :: 08:35:
Ключевое слово - индексы...

Курил и индексы.
1с штатно открывает журнал, создавая курсор. Этот же селект в QA работает 5 секунд, а штатный журнал открывается практически мгновенно.
зы. вот сам запрос, которым 1с генрит курсор
Код
Выбрать все
Select
  JOURN.* from _1SJOURN JOURN(NOLOCK INDEX=ACDATETIME), _1SCRDOC CRDOC(NOLOCK INDEX=PARENT)
where
  JOURN.DATE_TIME_IDDOC=CRDOC.CHILD_DATE_TIME_IDDOC and
  CRDOC.MDID=@P1 and
  CRDOC.PARENTVAL=@P2 and
  CRDOC.CHILD_DATE_TIME_IDDOC>=@P3 and
  CRDOC.CHILD_DATE_TIME_IDDOC<=@P4
order by
  CRDOC.MDID, CRDOC.PARENTVAL, CRDOC.CHILD_DATE_TIME_IDDOC
 


где @P1 - ид графы, @P2 - 'U', @P3 - нач. дата, @P4- кон. дата
  
Наверх
ICQ  
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Cвой журнал с множественным отбором....
Ответ #19 - 30. Июля 2008 :: 11:19
Печать  
Может все-таки кто-нибудь пояснит, почему создание курсора из 1С (а также многочисленный вызов хранимок типа sp_scXXX_byID - т.е. то, что делает 1С при открытии журнала) быстрее запроса?
  
Наверх
ICQ  
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Cвой журнал с множественным отбором....
Ответ #20 - 30. Июля 2008 :: 11:38
Печать  
Ключ порядка четко в индекс попадает?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Cвой журнал с множественным отбором....
Ответ #21 - 30. Июля 2008 :: 14:54
Печать  
Mikeware писал(а) 30. Июля 2008 :: 11:19:
Может все-таки кто-нибудь пояснит, почему создание курсора из 1С (а также многочисленный вызов хранимок типа sp_scXXX_byID - т.е. то, что делает 1С при открытии журнала) быстрее запроса?

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

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Cвой журнал с множественным отбором....
Ответ #22 - 30. Июля 2008 :: 15:01
Печать  
+
а так же, раз уж залез в профайлер, мог бы посмотреть сумму reads на подготовку+фитч курсора при открытии журнала и reads твоего запроса из #10.
И подумать почему такое отличие.
  

1&&2&&3
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Cвой журнал с множественным отбором....
Ответ #23 - 31. Июля 2008 :: 04:39
Печать  
trad писал(а) 30. Июля 2008 :: 14:54:
Для начала добавь в этот запрос top N, а потом сравнивай.
N - количество видимых строк журнала при открытии


+ причем, в раздел Order By добавь то, что писал в УстКлючПорядка.
  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Cвой журнал с множественным отбором....
Ответ #24 - 31. Июля 2008 :: 04:42
Печать  
sadovnikov писал(а) 30. Июля 2008 :: 11:38:
Ключ порядка четко в индекс попадает?
Да я не в табполе делаю - в квери аналайзере экспериментирую. Поэтому ключ порядка не при чем.
  
Наверх
ICQ  
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Cвой журнал с множественным отбором....
Ответ #25 - 31. Июля 2008 :: 04:44
Печать  
Mikeware писал(а) 31. Июля 2008 :: 04:42:
Да я не в табполе делаю - в квери аналайзере экспериментирую. Поэтому ключ порядка не при чем.

Юморист... Улыбка
Перечитай несколько постов выше.
  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Cвой журнал с множественным отбором....
Ответ #26 - 31. Июля 2008 :: 04:48
Печать  
trad писал(а) 30. Июля 2008 :: 14:54:
Для начала добавь в этот запрос top N, а потом сравнивай.
N - количество видимых строк журнала при открытии

Разве курсор не выбирает сразу все требуемые записи? (а потом 1С через fetch выбирает из курсора  только N требуемых для отображения)
количество reads сравню, подумаю...
Но все-таки я говорю про то, что один и тот же запрос, котрым 1С генерит курсор выполняется в QA гораздо медленнее. Не может столько времени тратиться на вывод результатов (имхо, конечно)...
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Cвой журнал с множественным отбором....
Ответ #27 - 31. Июля 2008 :: 05:07
Печать  
Mikeware писал(а) 31. Июля 2008 :: 04:48:
Разве курсор не выбирает сразу все требуемые записи?
Зависит от запроса. В данном случае не выбирает.

Mikeware писал(а) 31. Июля 2008 :: 04:48:
Но все-таки я говорю про то, что один и тот же запрос, котрым 1С генерит курсор выполняется в QA гораздо медленнее. Не может столько времени тратиться на вывод результатов (имхо, конечно)...
А я даже и не говорю про вывод (хотя передача от сервера клиенту всех данных разом и вывод их тоже требует времени). Я говорю про физическое чтение данных.
  

1&&2&&3
Наверх
 
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Cвой журнал с множественным отбором....
Ответ #28 - 31. Июля 2008 :: 06:22
Печать  
Mikeware писал(а) 30. Июля 2008 :: 11:19:
Может все-таки кто-нибудь пояснит, почему создание курсора из 1С (а также многочисленный вызов хранимок типа sp_scXXX_byID - т.е. то, что делает 1С при открытии журнала) быстрее запроса?

Потому что, то что выбрает курсор (именно выбирает, а не выбрал) - сразу не подгружается в таблицу журнала. Видишь ты на экране максимум строк 50, а вывод этого количества строк из курсора (как и из запроса) - дело сотых долей секунды. Даже если для каждой видимой записи выбирать значения реквизитов документа с помощью sp_scXXX_byID.
Если попытаешься выбрать весь набор записей с начала, то курсором будет однозначно медленнее, чем запросом. Хотя если тебе требуется получить сначала несколько последних записей, а потом уже весь набор данных, то курсором однозначно будет быстрее.
Еще, для понимания, как 1С выводит различные формы списков, посмотри на полосу прокрутки - она всегда посередине, т.е. заведомо неизвестно сколько строк в отображаемой информации, поэтому ты видишь только ту часть, которую видишь, а не манипулируешь всем журналом сразу.
Теперь понятно, почему якобы создание курсора из 1С... быстрее запроса?

Если я не прав - поправьте меня.  Подмигивание
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Cвой журнал с множественным отбором....
Ответ #29 - 31. Июля 2008 :: 07:03
Печать  
т.е. когда я открываю курсор - он данных не выбирает, данные выбираются при каждом фетче из курсора??
зы. соори за тупость.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 
ОтправитьПечать