Переключение на Главную Страницу Страницы: 1 2 [3]  ОтправитьПечать
Очень популярная тема (более 25 ответов) есть ли альтернатива общим журналам документов 1С 7.7? (число прочтений - 13543 )
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #30 - 26. Ноября 2009 :: 09:28
Печать  
Цитата:
вот я и думаю, что сервер не выполняет запрос, а получает данные порциями по требованию - т.е. кеш не разогревается.
Какие проблемы ?
При входе:
1. Получаем первый документ базы


В sql таблице данные неупорядоченны.
Ответьте что такое для sql первый документ ?
как sql получит первый документ не отработав полностью запрос ?

sql сервер должен выполнить весь Ваш запрос.
Сначала состовляется план выполнения запроса.Далее на основании плана sql  переносит данные таблиц ( иногда хватает данных индексов) в буфер формирует результирующую таблицу
сортирует ее и только потом возможно куда-то первую строку передать. Т.е для запроса подготовлен ответ
и только после этого ответ целиком или порциями доставляется клиенту.
  
Наверх
 
IP записан
 
slawa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 125
Зарегистрирован: 05. Октября 2006
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #31 - 26. Ноября 2009 :: 09:43
Печать  
Z1 писал(а) 26. Ноября 2009 :: 07:58:
Ваш вопрос на sql.ru
Цитата:
а почему баг 1С? Этот запрос как-раз спасает от тормозов, а в чем же баг? И почему таких тормозов в 2000м скуле не наблюдается (без всяких разогревов кэшей)?

Баг 1с в том что генериться неоптимальный запрос.
В sql2000 не наблюдается причин по следущим причинам
база в формате sqll2005 а оптимизатор запросов выполняем от sql2000(формат базы 80 ) а кто Вам сказал что  MS будет развивать
такой вариант взаимодействия до наилучшей оптимизации.
режим 80 оставлен только для совместимости. Поэтому оптимизатор запросов "полузадушен" и работает вполсилы.
а в sql2000 сервере и база в родном формате и оптимизатор запросов работает на полную мощность.

Интересно:
Какие проблемы возникнуть если 1С-ку заставить (патчем) работать с базой в режиме 2005 ?
Какие возможности использует 1С-ка, которые не совместимы с 2005 форматом ?

Z1 писал(а) 26. Ноября 2009 :: 07:58:
Также читал(где не помню) чем больше версия MS sql тем хуже они поддерживают курсоры.  

Это грустно. Интересно почему ?
Решили от них отказаться ?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #32 - 26. Ноября 2009 :: 09:43
Печать  
Z1 писал(а) 26. Ноября 2009 :: 09:28:
как sql получит первый документ не отработав полностью запрос ?

Легко. Открой для себя неблокирующие итераторыПодмигивание

Z1 писал(а) 26. Ноября 2009 :: 09:28:
Далее на основании плана sql  переносит данные таблиц ( иногда хватает данных индексов) в буфер формирует результирующую таблицу
сортирует ее и только потом возможно куда-то первую строку передать.

Зачем сортировать, если перебор идёт в порядке индекса? Круглые глаза
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #33 - 26. Ноября 2009 :: 09:54
Печать  
slawa писал(а) 26. Ноября 2009 :: 09:43:
Z1 писал(а) 26. Ноября 2009 :: 07:58:
Также читал(где не помню) чем больше версия MS sql тем хуже они поддерживают курсоры.  

Это грустно. Интересно почему ?
Решили от них отказаться ?

Почитайте Джо Сейко.
Его мысль курсоры зло и были случайно внесены в sql
Они курсоры заставляют думать линейно.
А sql это декларативный язык и мыслить надо множествами.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #34 - 26. Ноября 2009 :: 10:04
Печать  
berezdetsky писал(а) 26. Ноября 2009 :: 09:43:
Z1 писал(а) 26. Ноября 2009 :: 09:28:
как sql получит первый документ не отработав полностью запрос ?

Легко. Открой для себя неблокирующие итераторы.  Подмигивание

Z1 писал(а) 26. Ноября 2009 :: 09:28:
Далее на основании плана sql  переносит данные таблиц ( иногда хватает данных индексов) в буфер формирует результирующую таблицу
сортирует ее и только потом возможно куда-то первую строку передать.

Зачем сортировать, если перебор идёт в порядке индекса? Круглые глаза

давайте уточним мы говорим о запросе
Select * from _1SJOURN(NOLOCK INDEX=ACDATETIME) where DATE_TIME_IDDOC>=@P1 and DATE_TIME_IDDOC<=@P2 order by DATE_TIME_IDDOC

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

PS  на sql.ru да и сам натыкался если в таком запросе условия заданы через константы то sql сервер делает очень хорошу оптимизацию(вложенные циклы)
если как у нас через переменные то sql заглатывает всю таблицу
и сортировка идет (hash)
  
Наверх
 
IP записан
 
slawa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 125
Зарегистрирован: 05. Октября 2006
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #35 - 26. Ноября 2009 :: 10:27
Печать  
Z1 писал(а) 26. Ноября 2009 :: 10:04:
berezdetsky писал(а) 26. Ноября 2009 :: 09:43:
Z1 писал(а) 26. Ноября 2009 :: 09:28:
как sql получит первый документ не отработав полностью запрос ?

Легко. Открой для себя неблокирующие итераторы.  Подмигивание

Z1 писал(а) 26. Ноября 2009 :: 09:28:
Далее на основании плана sql  переносит данные таблиц ( иногда хватает данных индексов) в буфер формирует результирующую таблицу
сортирует ее и только потом возможно куда-то первую строку передать.

Зачем сортировать, если перебор идёт в порядке индекса? Круглые глаза

давайте уточним мы говорим о запросе
Select * from _1SJOURN(NOLOCK INDEX=ACDATETIME) where DATE_TIME_IDDOC>=@P1 and DATE_TIME_IDDOC<=@P2 order by DATE_TIME_IDDOC


Давайте уточним Улыбка:
мы говорим про курсор, построенный на основании этого запроса
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #36 - 26. Ноября 2009 :: 10:33
Печать  
Z1 писал(а) 26. Ноября 2009 :: 10:04:
давайте уточним мы говорим о запросе
Select * from _1SJOURN(NOLOCK INDEX=ACDATETIME) where DATE_TIME_IDDOC>=@P1 and DATE_TIME_IDDOC<=@P2 order by DATE_TIME_IDDOC

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

В этом запросе нет противоречий и план выполнения очевиден. Меняется (в процентном отношении) лишь распределение стоимости по итераторам index seek и bookmark lookup в зависимости от длины периода. Это применимо к SQL Server 2000 но, хотя у оригинатора 2005, я сомневаюсь, что там всё настолько хуже.

+ В #32 я имел ввиду не конкретный запрос, а положения несколько более основополагающие.
« Последняя редакция: 26. Ноября 2009 :: 11:46 - berezdetsky »  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #37 - 26. Ноября 2009 :: 10:33
Печать  
slawa писал(а) 26. Ноября 2009 :: 10:27:
Z1 писал(а) 26. Ноября 2009 :: 10:04:
berezdetsky писал(а) 26. Ноября 2009 :: 09:43:
Z1 писал(а) 26. Ноября 2009 :: 09:28:
как sql получит первый документ не отработав полностью запрос ?

Легко. Открой для себя неблокирующие итераторы.  Подмигивание

Z1 писал(а) 26. Ноября 2009 :: 09:28:
Далее на основании плана sql  переносит данные таблиц ( иногда хватает данных индексов) в буфер формирует результирующую таблицу
сортирует ее и только потом возможно куда-то первую строку передать.

Зачем сортировать, если перебор идёт в порядке индекса? Круглые глаза

давайте уточним мы говорим о запросе
Select * from _1SJOURN(NOLOCK INDEX=ACDATETIME) where DATE_TIME_IDDOC>=@P1 and DATE_TIME_IDDOC<=@P2 order by DATE_TIME_IDDOC


Давайте уточним Улыбка:
мы говорим про курсор, построенный на основании этого запроса

Нет мы говорим о sql запросе который обернут в курсор.
я не прогонял твой код через профайлер так что не исключаю что где-то ошибся.
и забудь  пока про курсор мы говорим сейчас о работе sql сервера а для него все клиенты равны  я думаю
оптимизатор запросов и блок управления запросов вообще ничего не знает о курсоре.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #38 - 26. Ноября 2009 :: 10:37
Печать  
berezdetsky писал(а) 26. Ноября 2009 :: 10:33:
Z1 писал(а) 26. Ноября 2009 :: 10:04:
давайте уточним мы говорим о запросе
Select * from _1SJOURN(NOLOCK INDEX=ACDATETIME) where DATE_TIME_IDDOC>=@P1 and DATE_TIME_IDDOC<=@P2 order by DATE_TIME_IDDOC

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

В этом запросе нет противоречий и план выполнения очевиден. Меняется (в процентном отношении) лишь распределение стоимости по итераторам index seek и bookmark lookup. Это применимо к SQL Server 2000 но, хотя у оригинатора 2005, я сомневаюсь, что там всё настолько хуже.

+ В #32 я имел ввиду не конкретный запрос, а положения несколько более основополагающие.

Есть одно но база в формате 80.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #39 - 26. Ноября 2009 :: 10:41
Печать  
Z1 писал(а) 26. Ноября 2009 :: 10:33:
я думаю
оптимизатор запросов и блок управления запросов вообще ничего не знает о курсоре.

Это неверно. Например, если ты запрашиваешь динамический курсор, оптимизатор рассматривает только планы выполнения, не содержащие блокирующих итераторов. А если таких планов нет - сервер изменяет тип курсора.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
slawa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 125
Зарегистрирован: 05. Октября 2006
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #40 - 26. Ноября 2009 :: 10:41
Печать  
Z1 писал(а) 26. Ноября 2009 :: 10:33:
slawa писал(а) 26. Ноября 2009 :: 10:27:
Z1 писал(а) 26. Ноября 2009 :: 10:04:
berezdetsky писал(а) 26. Ноября 2009 :: 09:43:
Z1 писал(а) 26. Ноября 2009 :: 09:28:
как sql получит первый документ не отработав полностью запрос ?

Легко. Открой для себя неблокирующие итераторы.  Подмигивание

Z1 писал(а) 26. Ноября 2009 :: 09:28:
Далее на основании плана sql  переносит данные таблиц ( иногда хватает данных индексов) в буфер формирует результирующую таблицу
сортирует ее и только потом возможно куда-то первую строку передать.

Зачем сортировать, если перебор идёт в порядке индекса? Круглые глаза

давайте уточним мы говорим о запросе
Select * from _1SJOURN(NOLOCK INDEX=ACDATETIME) where DATE_TIME_IDDOC>=@P1 and DATE_TIME_IDDOC<=@P2 order by DATE_TIME_IDDOC


Давайте уточним Улыбка:
мы говорим про курсор, построенный на основании этого запроса

Нет мы говорим о sql запросе который обернут в курсор.
я не прогонял твой код через профайлер так что не исключаю что где-то ошибся.
и забудь  пока про курсор мы говорим сейчас о работе sql сервера а для него все клиенты равны  я думаю
оптимизатор запросов и блок управления запросов вообще ничего не знает о курсоре.


Думаю проблема в следующем:
1. Вы считаете, что курсор строится на основании запроса ("запрос обернутый в курсор").
2. А мне кажется, может я и ошибаюсь, наоборот - все запросы строятся на основании курсоров. (т.е. запрос это курсор, который вернул все строки)
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #41 - 26. Ноября 2009 :: 11:56
Печать  
Цитата:
Думаю проблема в следующем:
1. Вы считаете, что курсор строится на основании запроса ("запрос обернутый в курсор").
2. А мне кажется, может я и ошибаюсь, наоборот - все запросы строятся на основании курсоров. (т.е. запрос это курсор, который вернул все строки)

неправильно.
лучше всего задайте этот вопрос на sql.ru . Я не смогу Вам очень грамотно ответить на этот вопрос.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #42 - 26. Ноября 2009 :: 11:58
Печать  
Если удастся то вечером прогоню  #8 через профайлер.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 
ОтправитьПечать