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


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
есть ли альтернатива общим журналам документов 1С 7.7?
25. Ноября 2009 :: 07:44
Печать  
сабж, собсно.

Выросла проблема при переходе с 2000й версии скуля на 2005ую. Начались дикие тормоза в окнах общих журналов документов.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #1 - 25. Ноября 2009 :: 08:16
Печать  
sml писал(а) 25. Ноября 2009 :: 07:44:
сабж, собсно.

Выросла проблема при переходе с 2000й версии скуля на 2005ую. Начались дикие тормоза в окнах общих журналов документов.

Журнал на Табличном поле.

также опиши подробно железо своего серверf и какой sp sql2005
и как сконфигурирована файловая система базы данных ?

  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #2 - 25. Ноября 2009 :: 08:19
Печать  
  
Наверх
 
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #3 - 25. Ноября 2009 :: 08:59
Печать  
Z1 писал(а) 25. Ноября 2009 :: 08:16:
Журнал на Табличном поле.

также опиши подробно железо своего серверf и какой sp sql2005
и как сконфигурирована файловая система базы данных ?



а обновлять ТП в глобальнике?
на рабочей базе СПаки не установлены. Пробовали на копии базы на скуль накатить 3й сп + хотфиксы - тормоза увеличились. Если до СП журнал подчиненных докумеентов открывался около секунды, то при нем - больше 5 секунд.
железо: 2 ксеона 3 сата диска в РАИД-5+сата диск с системой.
база около 9гиг 2 файла журнала.
Переиндексация включена на каждую ночь.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #4 - 25. Ноября 2009 :: 09:27
Печать  
sml писал(а) 25. Ноября 2009 :: 08:59:
Z1 писал(а) 25. Ноября 2009 :: 08:16:
Журнал на Табличном поле.

также опиши подробно железо своего серверf и какой sp sql2005
и как сконфигурирована файловая система базы данных ?



а обновлять ТП в глобальнике?
на рабочей базе СПаки не установлены. Пробовали на копии базы на скуль накатить 3й сп + хотфиксы - тормоза увеличились. Если до СП журнал подчиненных докумеентов открывался около секунды, то при нем - больше 5 секунд.
железо: 2 ксеона 3 сата диска в РАИД-5+сата диск с системой.
база около 9гиг 2 файла журнала.
Переиндексация включена на каждую ночь.

вот тебе и причина тормозов. raid-5 на дисках sata,
база temp наверное по умолчанию на системном диске sata
и.т.д.
Ихмо ну не серверные на сегод. день обычные диски  sata. Да их конечно улучшили но до скази не дотянули.( в будущем наверное будет ssd)

ИХМО Для sql2005 нужен мощный и хорошо настроенный sql-сервер иначе на него нет смысла переходить вообще.

  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

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


Подчиненные документы в sql2005 надо переписывать через прямой запрос. поищи в интернете найдешь решение этого вопроса.
  
Наверх
 
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #6 - 25. Ноября 2009 :: 10:12
Печать  
Z1 писал(а) 25. Ноября 2009 :: 09:27:
вот тебе и причина тормозов. raid-5 на дисках sata,
база temp наверное по умолчанию на системном диске sata
и.т.д.
Ихмо ну не серверные на сегод. день обычные диски  sata. Да их конечно улучшили но до скази не дотянули.( в будущем наверное будет ssd)

ИХМО Для sql2005 нужен мощный и хорошо настроенный sql-сервер иначе на него нет смысла переходить вообще.



но на 2000м нет таких жутких тормозов - на более слабой железке с более медленными сата, организованными в раид-1
  
Наверх
 
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #7 - 25. Ноября 2009 :: 10:14
Печать  
+

опять же, скуль к диску практически не обращается - памяти 3 гига на железке. Эти тормоза с диском никак не увязываются.
  
Наверх
 
IP записан
 
slawa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 125
Зарегистрирован: 05. Октября 2006
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #8 - 25. Ноября 2009 :: 10:18
Печать  
Сделай:
Процедура ПриНачалеРаботыСистемы()
     Док1 = СоздатьОбъект("Документ");
     Док1.ВыбратьДокументы();
     Док1.ПолучитьДокумент();
     Если Док1.Выбран()=1 Тогда
           ДОк2 = СоздатьОбъект("Документ");
           Док2.ВыбратьПодчиненныеДокументы(,,Док1.ТекущийДокумент());
     КонецЕсли;

и будет тебе счастье
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #9 - 25. Ноября 2009 :: 10:36
Печать  
slawa писал(а) 25. Ноября 2009 :: 10:18:
Сделай:
Процедура ПриНачалеРаботыСистемы()
     Док1 = СоздатьОбъект("Документ");
     Док1.ВыбратьДокументы();
     Док1.ПолучитьДокумент();
     Если Док1.Выбран()=1 Тогда
           ДОк2 = СоздатьОбъект("Документ");
           Док2.ВыбратьПодчиненныеДокументы(,,Док1.ТекущийДокумент());
     КонецЕсли;

и будет тебе счастье

Обоснуй. непонятно почему счастье будет ?
  
Наверх
 
IP записан
 
slawa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 125
Зарегистрирован: 05. Октября 2006
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #10 - 25. Ноября 2009 :: 10:46
Печать  
Z1 писал(а) 25. Ноября 2009 :: 10:36:
Обоснуй. непонятно почему счастье будет ?


А хрен его знает Улыбка
Внутрь этого механизма не лазил
Подозреваю, что что-то происходит с кэшем чего-то.

Самое главное - мне помогло Улыбка
  
Наверх
 
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #11 - 25. Ноября 2009 :: 12:17
Печать  
slawa писал(а) 25. Ноября 2009 :: 10:18:
Сделай:
Процедура ПриНачалеРаботыСистемы()
     Док1 = СоздатьОбъект("Документ");
     Док1.ВыбратьДокументы();
     Док1.ПолучитьДокумент();
     Если Док1.Выбран()=1 Тогда
           ДОк2 = СоздатьОбъект("Документ");
           Док2.ВыбратьПодчиненныеДокументы(,,Док1.ТекущийДокумент());
     КонецЕсли;

и будет тебе счастье


чудеса  Очень довольный - но, действительно, помогло. Надо завтра на рабочей БД попорбовать. Неужели такое шаманство ступор скуля отключает?
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #12 - 25. Ноября 2009 :: 12:49
Печать  
sml писал(а) 25. Ноября 2009 :: 12:17:
Неужели такое шаманство ступор скуля отключает?

Это не шаманство.
Вполне нормальная практика.
Называется "разогрев кеша"
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #13 - 25. Ноября 2009 :: 13:27
Печать  
Наконец то вчитался в разогрев кеша.
это полумера представьте если документов много то
сколько будете входить в 1с ?
а во вторых все равно Ваш кеш остынет и снова будет subj

проблема с подчиненными документами в sql2005 описана здесь
http://www.forum.mista.ru/topic.php?id=400197
  
Наверх
 
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #14 - 25. Ноября 2009 :: 14:17
Печать  
Z1 писал(а) 25. Ноября 2009 :: 13:27:
Наконец то вчитался в разогрев кеша.
это полумера представьте если документов много то
сколько будете входить в 1с ?


так этими строчками весь _1sjourn (а также и таблицы подчиненных документов)  помещается в кэш, а после уже из него берутся разнообразные списки документов. Кроме, м.б., вновь созданных.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #15 - 25. Ноября 2009 :: 14:26
Печать  
sml писал(а) 25. Ноября 2009 :: 14:17:
Z1 писал(а) 25. Ноября 2009 :: 13:27:
Наконец то вчитался в разогрев кеша.
это полумера представьте если документов много то
сколько будете входить в 1с ?


так этими строчками весь _1sjourn (а также и таблицы подчиненных документов)  помещается в кэш, а после уже из него берутся разнообразные списки документов. Кроме, м.б., вновь созданных.

при помещении всех документов в кеш проблема не исчезает (план выполнения sql  запроса тот же самый ) просто повышается быстродейсвие выполнения за счет того что данные не нужно тянуть с диска в кеш.
Далее когда начнешь работать с другими данными : справочники,
регистры, шапки документов и таблич части документов то
это вытеснит журнал документов из кеша и cнова получишь subj
  
Наверх
 
IP записан
 
slawa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 125
Зарегистрирован: 05. Октября 2006
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #16 - 25. Ноября 2009 :: 23:08
Печать  
Z1 писал(а) 25. Ноября 2009 :: 13:27:
Наконец то вчитался в разогрев кеша.
это полумера представьте если документов много то
сколько будете входить в 1с ?
а во вторых все равно Ваш кеш остынет и снова будет subj


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

эти команды не сканируют таблицы - они создают курсоры
а данные выбираются постепенно, небольшими порциями, командой ПолучитьДокумент() (sql FETCH)
поэтому не оказывают большого влияния на скорость входа в 1С-ку
да и практика показывает: после выполнения этих команд - проблема ушла Улыбка

ЗЫ
- база 12Гб
- RAM, на самом старом сервере, 1Гб

ЗЫЫ
думаю уже пора переходить на 2008 скуль Улыбка
  
Наверх
 
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #17 - 26. Ноября 2009 :: 06:18
Печать  
slawa писал(а) 25. Ноября 2009 :: 23:08:
не думаю что эти команды полностью кешируют _1sjourn, которые потом могут быть вытеснены.
тут дело в чем, то другом
может кешируется правильный план запроса, может еще чего

эти команды не сканируют таблицы - они создают курсоры
а данные выбираются постепенно, небольшими порциями, командой ПолучитьДокумент() (sql FETCH)


я вчера выкладывал команды 1С, которые отправляются на скуль из-за этих строк, на форум sql.ru:
Код
Выбрать все
declare @p1 int
set @p1=1073741828
declare @p2 int
set @p2=180150021
declare @p5 int
set @p5=2
declare @p6 int
set @p6=1
declare @p7 int
set @p7=-1
exec sp_cursorprepexec @p1 output,@p2 output,N'@P1 varchar(23),@P2 varchar(23)',
N'Select * from _1SJOURN(NOLOCK INDEX=ACDATETIME)
 where DATE_TIME_IDDOC>=@P1 and DATE_TIME_IDDOC<=@P2
order by DATE_TIME_IDDOC',
@p5 output,@p6 output,@p7 output,'17530101 0 0 ','99991230FHML6O 0 '
select @p1, @p2, @p5, @p6, @p7

exec sp_cursorfetch 180150021,1,0,1

declare @p1 int
set @p1=1073741829
declare @p2 int
set @p2=180150023
declare @p5 int
set @p5=2
declare @p6 int
set @p6=1
declare @p7 int
set @p7=-1
exec sp_cursorprepexec @p1 output,@p2 output,N'@P1 int,@P2 char(23),@P3 char(23),@P4 char(23)',
N'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',
@p5 output,@p6 output,@p7 output,0,'O1 6GV F30A ','17530101 0 0 ','99991230FHML6O 0 '
select @p1, @p2, @p5, @p6, @p7

exec sp_cursorfetch 180150023,1,0,1 



как видно из селектов (период с нулевой даты скуля = 1 января 1753г по 30 декабря 9999г), которыми заполняются курсоры, обращение идет к полной таблице журнала документов и полной таблице подчиненных документов.
  
Наверх
 
IP записан
 
slawa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 125
Зарегистрирован: 05. Октября 2006
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #18 - 26. Ноября 2009 :: 06:37
Печать  
sml писал(а) 26. Ноября 2009 :: 06:18:
я вчера выкладывал команды 1С, которые отправляются на скуль из-за этих строк, на форум sql.ru:
...
как видно из селектов (период с нулевой даты скуля = 1 января 1753г по 30 декабря 9999г), которыми заполняются курсоры, обращение идет к полной таблице журнала документов и полной таблице подчиненных документов.


Создание курсоров, с помощью процедуры sp_cursorprepexec, не вызывает моментального выполнения всего запроса.
Запрос выполняется частями по мере поступления команд на чтение данных из курсора. (ПолучитьДокумент())
  
Наверх
 
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #19 - 26. Ноября 2009 :: 06:55
Печать  
slawa писал(а) 26. Ноября 2009 :: 06:37:
Создание курсоров, с помощью процедуры sp_cursorprepexec, не вызывает моментального выполнения всего запроса.
Запрос выполняется частями по мере поступления команд на чтение данных из курсора. (ПолучитьДокумент())


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

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


I Love YaBB 2!

Сообщений: 125
Зарегистрирован: 05. Октября 2006
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #20 - 26. Ноября 2009 :: 06:58
Печать  
sml писал(а) 26. Ноября 2009 :: 06:55:
запрос-то, возможно, так и работает, но в кэш сразу размещаются все страницы памяти, в которых размещены записи таблиц документов (а может быть только их индексы).


откуда такая инфа ?
что-то я в этом сомневаюсь Улыбка
  
Наверх
 
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #21 - 26. Ноября 2009 :: 07:09
Печать  
slawa писал(а) 26. Ноября 2009 :: 06:58:
откуда такая инфа ?
что-то я в этом сомневаюсь Улыбка


http://www.sql.ru/forum/actualthread.aspx?tid=714878#7977915
  
Наверх
 
IP записан
 
slawa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 125
Зарегистрирован: 05. Октября 2006
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #22 - 26. Ноября 2009 :: 07:18
Печать  
sml писал(а) 26. Ноября 2009 :: 07:09:


Цитата:
Разумеется кэш разогреется, если выполнить
Select * from _1SJOURN(NOLOCK INDEX=ACDATETIME) where
DATE_TIME_IDDOC>=@P1
and
DATE_TIME_IDDOC<=@P2
где @P1 - '17530101', а @P2 - '99991230'


если выполнить, то разогревается,
а если на основе этого запроса создать курсор, то запрос не выполняется и кеш - соответственно не разогревается,
а вот если ты прочитаешь весь курсор, тогда и кеш подогреется

но мы не читаем весь курсор, значит кеш не греется

мне кажется так Улыбка
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #23 - 26. Ноября 2009 :: 07:47
Печать  
slawa писал(а) 25. Ноября 2009 :: 23:08:
Z1 писал(а) 25. Ноября 2009 :: 13:27:
Наконец то вчитался в разогрев кеша.
это полумера представьте если документов много то
сколько будете входить в 1с ?
а во вторых все равно Ваш кеш остынет и снова будет subj


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

эти команды не сканируют таблицы - они создают курсоры
а данные выбираются постепенно, небольшими порциями, командой ПолучитьДокумент() (sql FETCH)
поэтому не оказывают большого влияния на скорость входа в 1С-ку
да и практика показывает: после выполнения этих команд - проблема ушла Улыбка

ЗЫ
- база 12Гб
- RAM, на самом старом сервере, 1Гб

ЗЫЫ
думаю уже пора переходить на 2008 скуль Улыбка


Цитата:
не думаю что эти команды полностью кешируют _1sjourn, которые потом могут быть вытеснены.

а как же sql выполнит запрос.
Чтобы выполнить запрос данные таблиц переносяться в буфер данных.
Освобождать буфер данных sql сервер не спешит.

Цитата:
может кешируется правильный план запроса

sql сервер кеширует план выполнения и считает этот план правильным если не произойдет изменение
данных или этот план не будет вытеснен из кеша запросов.


Цитата:
эти команды не сканируют таблицы - они создают курсоры
а данные выбираются постепенно, небольшими порциями, командой ПолучитьДокумент() (sql FETCH)
поэтому не оказывают большого влияния на скорость входа в 1С-ку

Если Вы получаете данные порциями это не значит что sql сервер для Вас их генерит порциями.Это зависит от типа курсора.

Цитата:
а и практика показывает: после выполнения этих команд - проблема ушла

Проблема ушла у Вас потому что данные в кеше
Все очень легко проверить очистите буфер кеша и получите подчиненные документы.

Кстати а что будет делать приведенный код если документов 2 000 000 и 200 пользователей пытаются войти в базу ?


Цитата:
думаю уже пора переходить на 2008 скуль

чем sql2008 лучше  sql2005 относительно subj ?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

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

Что же Вы не увидели самого главного что когда у нас полный диапазон то условия на начало и конец временного интервала не нужны. Неоптимальный запрос он по любому неоптимальный будь он в курсоре или просто в отдельном запросе.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

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

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

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


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #26 - 26. Ноября 2009 :: 08:00
Печать  
Z1 писал(а) 26. Ноября 2009 :: 07:50:
Что же Вы не увидели самого главного что когда у нас полный диапазон то условия на начало и конец временного интервала не нужны. Неоптимальный запрос он по любому неоптимальный будь он в курсоре или просто в отдельном запросе.


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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #27 - 26. Ноября 2009 :: 08:15
Печать  
sml писал(а) 26. Ноября 2009 :: 08:00:
Z1 писал(а) 26. Ноября 2009 :: 07:50:
Что же Вы не увидели самого главного что когда у нас полный диапазон то условия на начало и конец временного интервала не нужны. Неоптимальный запрос он по любому неоптимальный будь он в курсоре или просто в отдельном запросе.


если условия по датам убрать, то индекс, указанный в запросе, как будет выстроен в кэше? По возрастанию, убыванию, или как попало?

Условия в запросе должны быть полезные.
Я считаю что sql серверу ( его оптимизатору запросов ) надо помогать а не мешать.
Бесполезные условия только отнимут у оптимизатора запросов время а так как оптимизатор работает в очень ограниченных временных рамках он(оптимизатор) не сможет сформировать оптимальный план и будет выполнять наилучший из найденных.
Дополнительный условия никак не влияют на индекс тем более в этом запросе индекс явно задан.
только зачем его задавать если все равно потом будет делаться другая сортировка.


  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

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

У себя по subj сделал следующее в дереве подчинения написан прямой запрос для получения подчин. документов.
Пользователям рекомендовано подчиненные документы получать
через дерево подчинения а не через журнал подчиненных документов.

либо есть еще варианты subj  перечитать и  применить ветку с  mista
  
Наверх
 
IP записан
 
slawa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 125
Зарегистрирован: 05. Октября 2006
Re: есть ли альтернатива общим журналам документов 1С 7.7?
Ответ #29 - 26. Ноября 2009 :: 09:04
Печать  
Z1 писал(а) 26. Ноября 2009 :: 07:47:
Цитата:
не думаю что эти команды полностью кешируют _1sjourn, которые потом могут быть вытеснены.

а как же sql выполнит запрос.
Чтобы выполнить запрос данные таблиц переносяться в буфер данных.
Освобождать буфер данных sql сервер не спешит.

вот я и думаю, что сервер не выполняет запрос, а получает данные порциями по требованию - т.е. кеш не разогревается.

Z1 писал(а) 26. Ноября 2009 :: 07:47:
Цитата:
эти команды не сканируют таблицы - они создают курсоры
а данные выбираются постепенно, небольшими порциями, командой ПолучитьДокумент() (sql FETCH)
поэтому не оказывают большого влияния на скорость входа в 1С-ку

Если Вы получаете данные порциями это не значит что sql сервер для Вас их генерит порциями.Это зависит от типа курсора.

Вполне допускаю, что тип курсора важен.
Какой тип курсора создается в нашем случае ?

Z1 писал(а) 26. Ноября 2009 :: 07:47:
Цитата:
а и практика показывает: после выполнения этих команд - проблема ушла

Проблема ушла у Вас потому что данные в кеше
Все очень легко проверить очистите буфер кеша и получите подчиненные документы.

Кстати а что будет делать приведенный код если документов 2 000 000 и 200 пользователей пытаются войти в базу ?

Какие проблемы ?
При входе:
1. Получаем первый документ базы
2. Создаем выборку подчиненных документов (которая скорее всего пустая - у меня так)
и так 200 раз (один документ и пустая выборка)
количество документов в базе - не имеет значения

А Вы как думаете - что происходит ?

Z1 писал(а) 26. Ноября 2009 :: 07:47:
Цитата:
думаю уже пора переходить на 2008 скуль

чем sql2008 лучше  sql2005 относительно subj ?


не знаю, может там не будет такой проблемы Улыбка
  
Наверх
 
IP записан
 
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] 
ОтправитьПечать