|
v7: Постоянные транзакции и блокировки 1SJOURN | ☑ | ||
---|---|---|---|---|
0
Joshim
03.09.14
✎
18:36
|
В базе работает 30 пользователей, файловая, база тупит. Что можно сделать чтоб работало быстрее, SSD например, приветствуются любые идеи
|
|||
1
Злопчинский
03.09.14
✎
18:37
|
Терминал + отказ от массовой работы задним числом.
|
|||
2
Злопчинский
03.09.14
✎
18:38
|
убрать нафиг урбд с обменами (что-то там не сильно хорошо, наблюдаются тормоза при получении нового номера документа)
|
|||
3
Alexor
03.09.14
✎
18:44
|
Конфигурация то хоть какая?
Размер базы. Какие 3 самых крупных файла? Сервер какой, терминал? |
|||
4
Joshim
03.09.14
✎
18:46
|
(1) работа сегодняшней датой
(3) конфигурация самописная, самый крупный файл 1200 мб - таблица с заказами, при записи этих документов тупит база |
|||
5
Злой Бобр
03.09.14
✎
18:47
|
(0) Научиться пользоваться поиском.
Если сам неосилишь то пригласить специалиста. Если первые 2 варианта явно не ваш метод - запасайтесь вазелином и пользуйте метод ненаучного тыка. Бекапы при этом можно уже и не делать. |
|||
6
Joshim
03.09.14
✎
18:50
|
(3)сервер 24 ядра, 32 ОЗУ, узкого места в железе не выявили
|
|||
7
Joshim
03.09.14
✎
18:51
|
(1) Терминал, Windows Server 2008 R2 Standart
|
|||
8
MadJhey
03.09.14
✎
18:57
|
(4) 1200 метров - скоро будет белый зверёк. По сути вопроса - режьте базу или переходите на sql (правда быстрее не станет). Работу с sql могут ускорить прямые запросы к базе, но это древнее шаманство мало кто помнит.
|
|||
9
Chai Nic
03.09.14
✎
18:59
|
(6) Да хоть тыщу ядер поставь на файл-сервер - толку не будет..
|
|||
10
Chai Nic
03.09.14
✎
19:03
|
(7) Обязательно ставьте патч Ромикса vk_TerminalSleep.. Ну и оптимизацией базы займитесь.
|
|||
11
Злой Бобр
03.09.14
✎
19:07
|
(6)(7) А привести сразу все данные - несудьба?.. Хотя мне лично пофиг, можете дальше играть в угадайку.
|
|||
12
КонецЦикла
03.09.14
✎
19:08
|
(4) Мне кажется надо регистр закрыть :)
Тут способы ускорений: http://1c911.by/uskorenie-1s-77.htm#4 |
|||
13
PR
03.09.14
✎
19:10
|
(0) Перейти на восьмерку.
|
|||
14
КонецЦикла
03.09.14
✎
19:13
|
(13) Файловая восьмерка на том же железе загнется на 5 юзверях. Дальнейшие действия?
|
|||
15
Злопчинский
03.09.14
✎
19:28
|
подчистить базу вот этим
http://infostart.ru/public/180018/ |
|||
16
PR
03.09.14
✎
19:30
|
(14) Кто-то предлагал файловую? Месье мазохист?
|
|||
17
Злопчинский
03.09.14
✎
19:31
|
(4) еще раз для "тупых" ;-) (недеюсь не обидешься) - работа задним числом в сегодняшней дате - это запросто - проведение любого дока у которого позиция не совпадает с ТА - это есть работа задним числом. независимо от даты - хоть вчера, хоть сегодня.
. все массово и постоянно выполянемые проведения/операции должны исполняться в ТА. . 20 юзверей на одноядерном проце лохматой давности в файловом варианте в терминале - с транзакциями сталкивались в день эпизодически. |
|||
18
Hans
03.09.14
✎
19:33
|
насколько помню для семерки для конкретного пользователя без разницы сколько ядер вообще, использоваться будет только одно. Поэтому имее смысл брать с максимальной тактовой частотой проц.
|
|||
19
КонецЦикла
03.09.14
✎
19:34
|
(16) Просто топег прочитал "В базе работает 30 пользователей, файловая"
|
|||
20
Злопчинский
03.09.14
✎
19:34
|
(6,7) на таком сервере 30 юзверей ПРИ ИНТЕРАКТИВНОЙ РАБОТЕ - чтобы тупило и падало в блокировки - надо очень сильно псотараться... или наоборот - нифига не стараться и писать код от балды.
|
|||
21
PR
03.09.14
✎
19:35
|
(19) И что? Это означает, что предлагать можно тоже только файловую? Что за странные ограничения?
|
|||
22
Злопчинский
03.09.14
✎
19:36
|
(19) КЦ, глянь почту
|
|||
23
floody
03.09.14
✎
19:54
|
Если узкого места в железе не выявили счетчиками (т.е. SSD не очень-то и поможет), тогда можно замер производительности в отладчике например попробовать.
|
|||
24
EvgeniuXP
03.09.14
✎
19:58
|
1200 - размер маленький, у нас 5 Гб - файловая 7.7 - самописка.
|
|||
25
floody
03.09.14
✎
20:08
|
(24) тут дело не в размере базы, а в размере одного файла.. после 1гб начинаются чудеса.. на двух гигах приходит каюк
|
|||
26
КонецЦикла
03.09.14
✎
20:13
|
(16) В любом случае восьмерка прожорливее, про "функционал" и "скорость" типовых уже молчу...
И это... перейти не всегда так просто как кажется... (0) Если рассматриваете возможность привлечения сторонних трудовых ресурсов - могу помочь, почта в личке. |
|||
27
PR
03.09.14
✎
20:33
|
(26) >>В любом случае восьмерка прожорливее
>>И это... перейти не всегда так просто как кажется... У нас соревнование, кто больше напишет банальных истин, не относящихся к обсуждаемой теме? Снег белый. Земля круглая. 2 + 2 = 4. |
|||
28
КонецЦикла
03.09.14
✎
20:40
|
(27) Нет, пелять, у нас "тупой и еще тупее"
Вот скажи, твой совет по переходу на 8.х к чему в этой ветке? |
|||
29
PR
03.09.14
✎
21:00
|
(28) Мой совет — это прямая рекомендация на вопрос в (0) "Что можно сделать чтоб работало быстрее, SSD например, приветствуются любые идеи".
|
|||
30
Злопчинский
04.09.14
✎
00:52
|
(27) 2+2 = 3.9999999999999999
|
|||
31
MMF
04.09.14
✎
01:03
|
Переход на SQL + "Гибкие блокировки"
|
|||
32
NS
04.09.14
✎
01:10
|
SQL + терминал + патч Ромикса, переписать критичные места, и оторвать руки тому кто поставил это всё на 24-ядерный сервак.
|
|||
33
NS
04.09.14
✎
01:15
|
SSD естественно не нужно, ибо на SQL, при включенном AWE - всё будет в кеше.
|
|||
34
Попытка1С
04.09.14
✎
01:42
|
(32) При секретном релизе патч ромикса не нужен на сколько я помню. А ставить старый скуль смысла нет, если ставить то 2008.
|
|||
35
NS
04.09.14
✎
02:02
|
(34) И получить геммор? ИМХО если софт заточен под SQL2000, то он лучше будет работать на SQL2000.
|
|||
36
Андрюха
04.09.14
✎
02:15
|
Переписать на прямых запросах
|
|||
37
Попытка1С
04.09.14
✎
06:00
|
(35) И лишится всех прелестей новой СУБД.
|
|||
38
VladZ
04.09.14
✎
06:06
|
(6) Отсюда вывод: 1Ской занимается админ, который в 1С нифига не соображает.
|
|||
39
VladZ
04.09.14
✎
06:16
|
(27) Примеры неудачные... Если уж на то пошло, снег не абсолютно белый. А земля не круглая. Она сплюснута с полюсов.
|
|||
40
VladZ
04.09.14
✎
06:18
|
(0) По сабжу: обратитесь к специалисту. Для точного диагноза нужен физический доступ к базе.
|
|||
41
vcv
04.09.14
✎
07:03
|
В качестве мелкого увеличения быстродействия (влияет в основном на отчеты) можно сделать рам-диск и вынести на него временные файлы. Есть еще такие драйвера рам-диска, которые используют память в качестве буффера - дубрируют данные HDD на рамдиске, получается скорость рам-диска и надёжность HDD.
Можно еще отключить патчем в 1С принудительный сброс буфферов на диск и включить кеширование на запись. Но всё это только в случае, если у вас хороший и правильно настроенный UPS. Если нет - вы этих советов не видели. |
|||
42
spock
04.09.14
✎
07:05
|
(35) сомнительный вывод.
|
|||
43
PR
04.09.14
✎
09:43
|
(30) Ну у кого как, да.
У кого-то и пи в военное время равно 4. |
|||
44
PR
04.09.14
✎
09:44
|
(39) Я знал, что какой-нить педант обязательно так скажет :))
|
|||
45
NS
04.09.14
✎
10:31
|
(42) можете обосновать свое мнение?
|
|||
46
0wl
04.09.14
✎
10:37
|
(41) "Но всё это только в случае, если у вас хороший и правильно настроенный UPS..."
...А также хорошая и правильно настроенная ОС, хороший и правильно настроенный кондиционер в серверной и хорошая база, которая позволяет потерять часть вбитых данных. Все-таки рам-диск -- очень рискованная вещь, я бы побоялся в продакшне использовать. На самом деле SLQ + "гибкие блокировки" помогут избежать долгих ожиданий на записи. Если искать альтернативы -- то только ускорение физической записи (то есть, да, SSD или домоклов меч рам-диска). Но это все видится как экстенсивное решение проблемы |
|||
47
trad
04.09.14
✎
10:39
|
(35) твое ИМХО интуитивное или под ним есть что-то существенное?
Любопытство не праздное, ибо пока сам сижу на 2k. |
|||
48
КонецЦикла
04.09.14
✎
10:43
|
(47) Падения производительности не замечал на 2005 либо 2008.
Но сравнить объективно было бы интересно |
|||
49
КонецЦикла
04.09.14
✎
10:44
|
+(48) При режиме совместимости 2000 (в частности)
|
|||
50
NS
04.09.14
✎
10:56
|
(47) Вообще-то достаточно простой логики, и веток о проблемах с производительностью более поздних версий SQL.
|
|||
51
trad
04.09.14
✎
11:05
|
(50) а в этих ветках о проблемах, именно про связку поздних SQL и секретного релиза?
|
|||
52
NS
04.09.14
✎
11:08
|
(51) В секретном релизе кроме поменянных четырех байт что-нибудь есть?
|
|||
53
NS
04.09.14
✎
11:10
|
"•не использовать это решение без достаточного тестирования в вашем окружении;"
http://infostart.ru/public/82018/ ИМХО достаточно чтоб не рисковать. |
|||
54
bolder
04.09.14
✎
11:19
|
(0) Жив курилка (с)!Это к тому что 7.7 до сих пор живет, а проблемы , известные и решенные в начале 2000-х до сих пор обсуждаются.Конечно, SSD тогда не было, но 1500 накладных в 7.7 в день проводили и распечатывали)).Ищите и обрящите.
|
|||
55
КонецЦикла
04.09.14
✎
11:25
|
Использование режима совместимости позволяет юзать старшие версии СКЛ, 1С все равно не умеет с ним работать. Зато это иногда пригождается при "свое работе с сервером". Я не заморачивался секретными релизами и заказчикам их не ставил.
|
|||
56
Z1
04.09.14
✎
11:54
|
(42) в sql2005 и выше нет ошибки замедления массового проведения из-за одного этого надо переходить на sql2005
sql2005 и выше если sql 64 то используется sql сервером гораздо больше памяти чем в sql 2000 sql2005 сервер и выше гораздо лучше настраивается например у себя поставил форсированную оптимизацию для баз 1с это дает выигрыш в процентах не скажу. для баз в режиме 80 эта опция не работает. Начиная с sql2008 если есть избыточная мощность процессоров то можно некоторые таблицы (вдумчиво выбирая ) ( например rg ) упаковать. Можно и дальше копать еще глубже но это надо смотреть конкретную базу. также начиная с sql2005 новые операторы языка t-sql все сказаное относиться что база работает в родном режиме (для sql2005 - 90 , для sql2008 - 100 ) |
|||
57
ADirks
04.09.14
✎
13:07
|
+(56) у 2008 есть ещё немаловажный плюс - он бэкапы на лету сжимает, тем самым время на бэкап в разы уменьшается.
|
|||
58
NS
04.09.14
✎
13:08
|
(56) В больших управленческих базах в принципе невозможно массовое перепроведение.
|
|||
59
NS
04.09.14
✎
13:08
|
+ (58) Независимо от версии SQL.
|
|||
60
vcv
04.09.14
✎
13:18
|
(46) SQL плюс "гибкие блокировки" очень недешевое решение. Дешевле выйдет раз в несколько лет менять серверные SSD в зеркале.
|
|||
61
Salimbek
04.09.14
✎
13:53
|
Добавлю к (41) при запуске 1С-ки можно в ярлыке настроить параметр (/U) - куда будут записываться временные файлы пользователя. Желательно их тоже перевести на РАМ-диск. Иногда очень хорошо помогает.
|
|||
62
NS
04.09.14
✎
14:00
|
(61) /T наверно имел в виду?
|
|||
63
NS
04.09.14
✎
14:03
|
(60) У него файловая база, и 32 гига памяти. Зачем ему SSD?
|
|||
64
Злопчинский
04.09.14
✎
14:27
|
Еще раз настойчиво предлагаю отказаться в оперативной деятельности от работы задним числом - сей простой рецепт _существенно_снимает проблему транзакций/блокировок
|
|||
65
Ёпрст
04.09.14
✎
14:30
|
(0) узкое место одно - дисковая система. Какая она у вас хоть ?
+ дбф штатно можно разогнать.. не говоря ужо про прямые запросы, достаточно просто оптимизировать базу, хранение останков и системные параметрв |
|||
66
NS
04.09.14
✎
14:31
|
(65) Какое-же оно узкое? Перешли на SQL, дали ему нормально памяти, и вся база будет в памяти.
|
|||
67
Ёпрст
04.09.14
✎
14:39
|
(66) зачем скуль при такой мелкой базе ?
|
|||
68
Ёпрст
04.09.14
✎
14:39
|
быстрее работать не будет, смысл какой ?
|
|||
69
КонецЦикла
04.09.14
✎
14:54
|
Да, что-то скатилось к СКЛ-срачу...
|
|||
70
NS
04.09.14
✎
15:01
|
(67) Как минимум стабильность и надежность.
И если упирается в диск, то как раз будет быстрее. Тем более размер уже критичный для ДБФ. |
|||
71
NS
04.09.14
✎
15:02
|
см. (4)
|
|||
72
Z1
04.09.14
✎
19:32
|
(47,48) А что сравнивать в ms sql 2000 Standart
у вас серверу доступно 2 Гб памяти ms sql 2005 Standart (64) у Вас на современных серверах будет доступно серверу памяти от 16ГБ и выше. ну даже если у Вас используется awe ( в sql2000 ) все равно awe c косвенной адресацией будет медленней работать чем просто прямая адресация памяти в пространстве 64Х |
|||
73
КонецЦикла
04.09.14
✎
19:35
|
Еще у експрессов увеличился порог вхождения по объему базы... для кого актуально
|
|||
74
NS
04.09.14
✎
19:58
|
(72) А кто нас заставляет ставить стандарт?
|
|||
75
Gepard
05.09.14
✎
09:02
|
(70) скорости точно не будет
|
|||
76
varelchik
05.09.14
✎
09:17
|
(75) Вот тут вы глубоко ошибаетесь.
После перехода с 2000 на 2008 мало того что базы в память уходят, так и моногопроцессорность работать начинает на полную катушку. уж поверьте много экспериментов проводил. |
|||
77
dk
05.09.14
✎
10:01
|
скорости после перехода с 2000 на 2008 - не замечено
тока глюки с монопольным входом |
|||
78
NS
05.09.14
✎
10:03
|
(76) Опять двадцать пять. Если делать по-уму, то и на 2000 базы в памяти.
|
|||
79
varelchik
05.09.14
✎
10:10
|
(78)Ну ну попробуй 1С-кой заставить работать сразу все процы.
на 2000 это не проканает. |
|||
80
NS
05.09.14
✎
10:41
|
(79) а память тут при чем? Да и процы все работают.
|
|||
81
varelchik
05.09.14
✎
12:04
|
(80) А ты попробуй восстановление последовательности на 2000 и 2008 и сам увидишь, что на 2000 нагружается только один проц, а на 2008 все что выделены для SQL.
|
|||
82
NS
05.09.14
✎
12:07
|
(81) см. (58)
|
|||
83
trad
05.09.14
✎
13:36
|
(81) а потоки каких процессов нагружают эти процессоры?
|
|||
84
trad
05.09.14
✎
13:37
|
(83) sql сервера?
т.е. включен параллелелизм? |
|||
85
Gepard
05.09.14
✎
13:42
|
(76) Файловая семерка в терминале в разы быстрее семерки на ЛЮБОМ скуле.
|
|||
86
Gepard
05.09.14
✎
13:45
|
(85) + но со временем упирается в размер файла
|
|||
87
NS
05.09.14
✎
14:13
|
(85) Неправда. Не в разы. Если кривые запросы, с внешними функциями, неправильно накладываются фильтры, выборки, либо SQL на другом сервере с медленной сетью, тогда возможно в разы. А если прямые руки, то далеко не в разы.
|
|||
88
Gepard
05.09.14
✎
14:15
|
(87) если только переписать все на прямые запросы и убрать везде циклы - скорость начинает приближаться к файловой версии.
|
|||
89
NS
05.09.14
✎
14:22
|
(88) Ничего переписывать на прямые запросы не надо. Выигрыш от прямых запросов копеечный.
|
|||
90
Alexor
05.09.14
✎
14:31
|
(66) А что скуль 7.7. сейчас очень просто купить?
|
|||
91
Alexor
05.09.14
✎
14:34
|
(0) А вообще автор, полагаю у тебя проблема в конфигурации.
У меня комплексная, пользователей под 80 довольно активных. Есть файл более 1.2 гига, регистр движения партий. Не скажу, что летает, и блокировки бывают, но не часто. Дисковая система SSD + SAS |
|||
92
varelchik
05.09.14
✎
14:35
|
(89) эт хтож вам батенка такое сказал?
Вы уж извините. Но у меня родные алгоритмы переписаны на прямые запросы. Так выигрыш прямых против родных раз в двадцать. Так что не надо ля ля. |
|||
93
romix
05.09.14
✎
14:36
|
||||
94
Alexor
05.09.14
✎
14:36
|
(4) Делай замер производительности. Смотри, где тупит.
|
|||
95
Gepard
05.09.14
✎
14:49
|
(93) + реально помогает в терминале
|
|||
96
NS
05.09.14
✎
15:05
|
(92) Я из этих 20-ти получу десятикратный прирост написав на встроенном языке. Непонятно что ты хочешь доказать. Что типовая написана криво? Это и так всем известно.
|
|||
97
Попытка1С
05.09.14
✎
15:13
|
(96) Вчера колупался с одной функцией, по замеру у меня например сейчас тупит ТекущийЭлемент().ЭтоГруппа и как ты это перепишешь на встроенном языке? Любое обращение через точку считывает весь объект. Ускорить можно только переписав на запросы.
|
|||
98
NS
05.09.14
✎
15:19
|
(97) Приведи пример.
|
|||
99
NS
05.09.14
✎
15:23
|
Для примера
ТекстЗапроса="спр=справочник.контрагенты.текущийэлемент; |Наименование=справочник.контрагенты.наименование; |Группировка спр;"; Запрос.выполнить(ТекстЗапроса); ТЗ=создатьобъект("ТаблицаЗначений"); Запрос.выгрузить(ТЗ... Пока ТЗ.Получитьстроку()=1 цикл Если пустоезначение(ТЗ.наименование)=1 тогда // не поверишь, но это группа. Фича SQL. |
|||
100
Попытка1С
05.09.14
✎
15:30
|
(98) Да любая функция на форме где нужно что-либо вывести для текущего элемента, проверяется не группа ли это и соответственно выполняется код.
Грубо говоря Функция ВернутьМатрицу() стр = ""; ТекЭлемент = ТекущийЭлемент(); Если ТекЭлемент.ЭтоГруппа() = 0 Тогда Если ТекЭлемент.ТипМатрицы = Перечисление.ТипыМатриц.ОсновнаяМатрица Тогда стр = "Осн."; ИначеЕсли ПустоеЗначение(ТекЭлемент.ТипМатрицы) = 1 Тогда стр = "!Пусто!"; Иначе стр = "Внеп.."; КонецЕсли; Возврат стр; КонецЕсли; КонецФункции ТекЭлемент.ТипМатрицы -- тут полное считывание объекта, все реквизиты, периеодика и прочее |
|||
101
Злопчинский
05.09.14
✎
15:31
|
Автор топика давно слился.
. а с учетом того, что так и не последовало внятного ответа - работает база в ТА или преимущественно колбасят задним числом - фиг ли здесь обсуждать |
|||
102
Попытка1С
05.09.14
✎
15:32
|
(99) Это все замечательно, а если на каждую строчку в подборе нужна проверка?
|
|||
103
Попытка1С
05.09.14
✎
15:33
|
(101) Обсудить всегда есть что.
|
|||
104
Попытка1С
05.09.14
✎
15:39
|
Или свертка ТЗ с итогами по группировкам, какой самый быстрый способ?
|
|||
105
Chai Nic
05.09.14
✎
15:40
|
(100) При использовании 1с++ это всё кэшируется.. есть там такая фича..
|
|||
106
Попытка1С
05.09.14
✎
15:41
|
+104 простой способ группировать с помощью индексированной табличке, но если данных много начинается немного притормаживать, быстрый способ на скуле получить через with rollup
|
|||
107
Попытка1С
05.09.14
✎
15:45
|
Еще к примеру 1С применяет линейный поиск по именам. 1С++ же везде меняет это поведение на хэш.
Соответственно для конфы с 1с++ быстрее создать список значений в цикле и заполнить значениями нежели создать за циклом и установить значений. |
|||
108
КонецЦикла
05.09.14
✎
15:51
|
(97) Что значит "тупит"?
Может она вызывается 100500 раз? (104) Пробовал и виз роллап и свертку в ИТЗ - все приемлемо работало Задача то какая? С ИТЗ очень просто потом работать и универсально, если много данных надо специфически быстро обработать, а не тупо вывести - заливаю в таблицы СКЛ и там кручу. |
|||
109
Попытка1С
05.09.14
✎
15:55
|
(108).1 Понятное дело что она вызывается 100500 раз, а как иначе для функции на форме подбора? сколько вылезло товаров на экран столько и выполнилось.
(108).2 Больше 5 группировок Индексированная становится узким местом у меня, запрос по отчету выполняется 3 секунды, группировка 40 секунд грубо. "С ИТЗ очень просто потом работать и универсально" с этим никто не спорит. Сейчас речь о сравнении штатных методов против костылей. |
|||
110
Попытка1С
05.09.14
✎
15:56
|
Я правда не понял NS против только прямых запросов или любых внешних компонент и классов к коим относится 1с++.
|
|||
111
Joshim
05.09.14
✎
15:59
|
(101) база самописная, регистры не используются. Блокировки и тормоза при записи документов. Поразгонял пользователей по разным базам с обменом раз в час стало заметно полегче. Топик читаю (не слился)
SQL пробовали, падение скорости раза в 4. Возможно блокировок станет меньше и работать будет стабильно, но заметно медленнее. Руководство сразу отказалось от этой идеи, так как с падением скорости придется нанимать дополнительный персонал для обработки того же количества информации |
|||
112
varelchik
05.09.14
✎
16:02
|
(111) Переходите на 8.х тама меньше блокировок.
|
|||
113
varelchik
05.09.14
✎
16:03
|
+(112) но и железо придется крутое брать, она зараз ресурсы жреть мама негорюй!
|
|||
114
Попытка1С
05.09.14
✎
16:04
|
(111) Журнал у тебя в любом случае будет блокироваться при записи тут ничего не поделаешь. Ожидание захват табличек поставить в 0 чтобы колом все не вставало.
|
|||
115
akaBrr
05.09.14
✎
16:07
|
(111) Отказались от регистров - отказывайтесь и от документов :)
|
|||
116
varelchik
05.09.14
✎
16:22
|
Ну низнаю что у вас тама за база такая.
Но. Есть у мене база где работает порядка 100 пользователей. По аналогии с вашей регистров нет. Называется документооборот. Так вот тама все пучком документы вносятся очень активно, но блокировок практически нет. + база под управлением SQL 2008 R2. Все летает. Единственное узкое место это стал Журнал регистрации, посему пришлось его перевести на SQL. Да кстати может у вас как раз с этим и связано. Потому как после перехода с 2000 на 2008 начали странные вещи твориться. 1.Туго открывались формы. А в пике нагрузки на базу инфо в журнал регистрации вообще отказывала записываться. Вот я грешным образом и заподозрил ЖР. |
|||
118
varelchik
05.09.14
✎
16:39
|
(117) он же написал файловая.
|
|||
119
Z1
05.09.14
✎
19:05
|
(111) Опишите полностью Ваш сервер.
Особенно интересует дисковая система какие диски, есть или нет раид какое распределение по дискам операц системы и приложений. Также померьте скорость обращения к диску где база и длину очереди к этому диску. Может быть на сервере неправильно антивирус настроен или стоит например контролер домена или еще какой либо софт влияющий отрицательно на диск. 30 пользователей в терминале должна и dbf и dql версия хорошо работать. Может быть осталось несколько человек кто подключен не через терминал а если у них еще и плохая сеть то будете иметь то что написано в subj. >>>регистры не используются так может у тебя бух счета используются. Также что у Вас за текст программы в модуле(ях) проведения Например если написать в модуле проведения Вопрос("сохранять заявку","Да+Нет"); это сведет на нет любой суперсервер и симптомы будут такие как в 0. как бы можешь выложить md и как бы после такого длительного обсуждения тебе укажут на явные косяки твоей конфигурации. |
|||
120
NS
05.09.14
✎
19:48
|
(110) Я против сказок о 20-кратном приросте от прямых запросов.
|
|||
121
NS
05.09.14
✎
19:51
|
(109) Информацию по справочнику можно кешировать средствами 1С, и не вызывать дважды функцию по одному и тому-же элементу, а перед вызовом искать в кеше.
|
|||
122
КонецЦикла
05.09.14
✎
20:04
|
(116) Не знаю тоже что там у них, но когда-то занимался базой со 100 пользователями, регистры там были... и много
...и обмены, и загрузки из других баз, и роботы... и робот как-то успевал допроводить 2-3 заявки в секунду Все сам писал... не совсем оптимально, но было мало времени... |
|||
123
КонецЦикла
05.09.14
✎
20:06
|
(120) Ну и напрасно...
Вот, например, цитата из внедрения: "В результате проведенной оптимизации справочник, состоящий из почти 5000 позиций, обновляется в среднем за 2.7 сек. (время заполнения до оптимизации – 62. 4 сек.)" |
|||
124
КонецЦикла
05.09.14
✎
20:08
|
(109) Может пора на олап-кубы? Накуя вменяемому человеку больше 5 группировок по 100500 строк?
|
|||
125
NS
05.09.14
✎
20:10
|
(123) Где сравнение с оптимизацией на встроенном языке?
уже же отвечал на подобные некорректные сравнения. |
|||
126
КонецЦикла
05.09.14
✎
20:12
|
(125) Оно и было на встроенном
Да, каюсь, можно было штатно использовать транзакции пачками Но бывают чистые проигрыши, в десятки раз... тут очень много нюансов (структура данных, кривость штатных механизмов и проч.) |
|||
127
NS
05.09.14
✎
20:16
|
(126) что значит "было на встроенном"?
ты провел оптимизацию неоптимизированного кода. получил прирост скорости. Простой вопрос - каков был бы прирост скорости от оптимизации на встроенном языке? нафига сравнивать неоптимизирлванный код на встроенном языке с оптимизированным с использованием нештатных методов? Сравнивают оптимизированный код с оптимизированным. |
|||
128
Z1
05.09.14
✎
20:16
|
(120) Элементарно.
Вводиться свой индекс и прямой запрос 1с++ по этому индексу может быть и в 20 и в 100 раз лучше чем Запрос_1с = СоздатьОбъект("Запрос"); все зависит в этом случае от качества это индекса. |
|||
129
NS
05.09.14
✎
20:18
|
(128) кто мешает ввести индекс штатными методами? Просто поставив галку на нужных измерениях регистра, и сделав правильный порядок измерений для нормального использования сквозного индекса?
|
|||
130
Z1
05.09.14
✎
20:18
|
(121) Так при этом ты кешируешь все атрибуты справочника а их может быть много, а с помошью прямого запроса ты кешируешь только нужные аттрибуты.
|
|||
131
NS
05.09.14
✎
20:20
|
(130) что?
в справочнике как правило отражается инфстрока. Так её и кешируешь. если в форме списка выводятся некие показатели в многострочной части, то кешируешь и их. зачем кешировать лишнее? |
|||
132
Z1
05.09.14
✎
20:20
|
(129) Мешает 1с.не знаю додели в v8 или нет.
Расскажи как ввести составной индекс по двум полям шапки документа штатным способом и как по такому индексу сделать запрос штатным способом ? |
|||
133
Z1
05.09.14
✎
20:22
|
(131) как что
есть раника кешировать 50 атрибутов справочника ( при этом могут в качестве аттрибутов выступать и длинные фиксированные строки ) или 3 атрибута нужные именно в этот момент. об этом давным давно есть моя статья на 1с++ |
|||
134
КонецЦикла
05.09.14
✎
20:23
|
(132) Что-то НС совсем занудный стал, стареет...
|
|||
135
NS
05.09.14
✎
20:24
|
(133) Ты видимо не понял мой вопрос. Почему я штатными средствами должен кешировать ненужные реквизиты? это игра такая?
(132) повторюсь - правильно использовать сквозной индекс. |
|||
136
NS
05.09.14
✎
20:36
|
+ (135) Чтоб было понятней, о чем идет речь.
Выше говорилось о тормозах при подборе по справочнику(но тоже самое в любой многострочной части, например в журнале). Делаем кеш вычисляемых значений. Если в нем будет накапливаться не очень много данных, то например на ТЗ, если много, то на чем-нибудь индексированном, например штатный Xbase с индексами. Функция СформироватьОстатки() перем ИнфОстатки; ИнфОстатки=""; ТекНоменклатура = ТекущийЭлемент(); Если пустоезначение(текноменклатура)=1 тогда возврат ""; Конецесли; стр=""; Если ТЗОстатков.НайтиЗначение(ТекНоменклатура,стр,"Ном")=1 тогда ТЗОстатков.ПолучитьстрокуПОНомеру(стр); ИнФОстатки=ТЗОстатков.текст; Если ТЗОстатков.Цвет=1 тогда Форма.ТекстОстатки.Цвет(255); иначе Форма.ТекстОстатки.Цвет(0,0,128); конецесли; Возврат ИнфОстатки; КонецЕсли; ... ТЗОстатков.Новаястрока(); ТЗОстатков.Ном=ТекНоменклатура; ТЗОстатков.Цвет=Цвет; ТЗОстатков.Текст=Инфостатки; Возврат ИнфОстатки; ... И кто тут заставляет кешировать лишнее? |
|||
137
Z1
05.09.14
✎
20:37
|
(133) не знаю может и не понял.
Как я это понимаю когда 1с кеширует элемент справочника 1с кеширует все аттрибуты справочника при этом идет запрос к бд select * from sc31 (nolock) where id = конкретноеЗначение. Как бы моя идея заменять этот запрос с помощью 1с++ на select Атриб1,Атриб2б Атриб3 from sc31 (nolock) where id = конкретноеЗначение. выигрывая при этом и в скорости выполнения ( незначительно ) и в пространстве под хранения кеша. ну 132 ты совсем не понял на уровне штатных средст в 1с77 нет средсв построения индекса и использования этого индекса в дальнейших запросах |
|||
138
Z1
05.09.14
✎
20:39
|
(136)
строка ТекНоменклатура = ТекущийЭлемент(); уже временно кеширует много лишнего выполняя select * from sc31 (nolock) where id = конкретноеЗначение. |
|||
139
NS
05.09.14
✎
20:39
|
(137) Точно не понял.
Речь шла о многократном получении атрибутов одного и того-же элемента справочника при открытой форме списка. |
|||
140
NS
05.09.14
✎
20:44
|
(138) Эта строка выполняется за одну миллионную долю секунды.
Для теста - замер производительности, 214 исполнений, 0.0002 секунды. Вопрос - стоило ли переписывать нештатными методами, если легко штатными мы получаем моментальное выполнение? |
|||
141
Z1
05.09.14
✎
20:48
|
(139) как бы ты можешь же кэшировать данные одного справочника в форме другого. вот тогда и будет выигрыш от 137.
Не ну если считаешь что 1с++ зло и не совсем нужная вещь то как бы в этом я тебе переубеждать не собираюсь. все равно каждый останется при своем мнение. |
|||
142
Z1
05.09.14
✎
20:51
|
(140) оценить сколько дает выигрыш проблематично,
а любой выигрыш в модуле проведения ( речь о высоконагруженной базе данных ) это уже хорошо. |
|||
143
NS
05.09.14
✎
20:54
|
(141) Не считаю злом. И не считаю что никогда не нужно использовать. Но то что выше приводилось как пример когда он нужен легко решается вышеприведенным кодом. И в третий раз пишу, то что нештатные методы дают 20-кратное ускорение - сказки.
А в данном случае - у тебя будет отзывчивость и скорость работы с любым справочником с таким кешированием - ровно такая-же как и с использованием 1С++. (142) С модулями проведения такая-же история. Сравнивают как правило кривой код на встроенном языке, с оптимизированным нештатными методами. Оптимизировать же можно и штатно, и разница в скорости при этом по сравнению с нешататными получается символическая. |
|||
144
Юпитер
05.09.14
✎
21:00
|
(111)думаю там быдлокод и мы его отсюда не найдем. но sql + правильная индексация попробуйте. прямые запросы опять же. ну и хороший повод на восьмерку перейти.
|
|||
145
КонецЦикла
05.09.14
✎
21:07
|
(143) Не всегда символическая, вот же упертый, 100500 раз было и после штатных попыток
То что штатные методы часто просто не могут использовать всех возможностей сервера забыл? |
|||
146
Z1
05.09.14
✎
21:09
|
(144)
>>>И в третий раз пишу, то что нештатные методы дают 20->>>кратное ускорение - сказки. Приходные накладные. В нем есть поле ДатаСЧФ. отклонение датынакладной от датысчф может доходить до 10 месяцев. конкретнаяя задача : сформировать отсортированный реестр накладных по дате счетфактуры создаем по этому полю sql индекс получим запрос в 100 раз более эфективнSй 1С++ запрос чем перебор прихдокументов с многократным превышением диапозона дат прих накладных. как бы эфективного решения этой задачи средствами 1с 77 - нет. Если скажите что можно сделать отбор по этому полю ну это не серьезно сравнивать индекс по таблице с доп таблицей _1сsrdoc и сложный индексе в ней. |
|||
147
Z1
05.09.14
✎
21:11
|
ps 146 для 143
|
|||
148
NS
05.09.14
✎
21:14
|
(146) Почему-же? можно и нужно сравнивать именно графу отбора.
если уж скорость критична - то можно тупо создать регистр с пустым ресурсом, и использовать индекс. |
|||
149
mehfk
05.09.14
✎
21:18
|
(0) Дайте мд-шник на посмотреть. Мой ник псина народ ру.
|
|||
150
Z1
05.09.14
✎
21:28
|
(148)
Предложенные варианты будут хуже чем просто индекс по полю таблицы Приходнойнакладной. Доп регистр это еще и доп время на проведение этого документа и доп задержка блокировки -1sjourn. (как бы пустой регистр это конечно хорошо но внутри он такой же тяжелый создает все равно курсор ) т.е. решение 146 эфективней чем решения предложенные в 148 по многим показателям. так же в 146 как бы если отпадет надобность в такой задаче я просто удалю sql индекс с решениями 148 убрать это будет значительно сложнее - а штатными средствами и невозможно на большой базе. |
|||
151
NS
05.09.14
✎
21:34
|
(150) Ты забываешь, что используя нештатные возможности резко усложняешь поддержку. В большой компании одного разработчика недостаточно, и даже если разработчик один - он может уйти. А искать человека с знанием прямых запросов намного сложнее чем со знанием встроенного языка.
При этом все задачи решаемы и встроенными средствами, и в любом случае на постановку задачи времени тратится больше чем на написание кода. |
|||
152
Z1
05.09.14
✎
21:35
|
ps к 150 также задача 146 была поставлена мне задним числом когда уже были документы за пять лет назад и как бы сделать ее
через 148 очень было бы затруднительно по сравнению со 146. Вот как бы и имееем эфективность и другую затрат моего времени более чем во 100 раз ( если сравнить 146 и 148 ) также имеем и эфективность ( во сколько раз оценивать не хочу зависит от базы ) во времени исполнения запроса одно дело seek индекса таблицы другое дело соеденение (inner join ) двух таблиц. |
|||
153
NS
05.09.14
✎
21:35
|
(150) Одно движение по одному регистру с одним измерением - это не доп. время. Разницу в скорости никто и никогда не заметит.
|
|||
154
NS
05.09.14
✎
21:37
|
(152) Так это разовая задача? Тогда индекс тут явно не нужен.
|
|||
155
Z1
05.09.14
✎
21:37
|
(151) что то ты переходишь с проблемы эфектифности 1с++
к проблеме работодателя иметь или не иметь хорошего программиста. |
|||
156
Chai Nic
05.09.14
✎
21:40
|
(151) Найти разработчика со знанием прямых запросов (фактически sql) намного проще, чем разработчика, который понимает как работают стандартные "черные запросы") Ибо sql-индустриальный стандарт..
|
|||
157
NS
05.09.14
✎
21:40
|
(155) Я ни разу не говорил что 1С++ не повышает быстродействие.
Могу в четвертый раз написать свое утверждение. :) |
|||
158
NS
05.09.14
✎
21:41
|
(156) Проблема в том что будет требоваться не человек со знанием T-SQL, а 1Сник, семерочник, со знанием T-SQL. Коих намного меньше чем просто семерочников.
|
|||
159
Z1
05.09.14
✎
21:42
|
(154) не разовая а постоянная задача для наших бухгалтеров.
именно за это решение конкретный бухгалтер мне очень благодарен потому что реестр по диапозону до года делается меньше чем за секунду ( опять же при этом практически не нагружая sql сервер ) зачем им нужна такая задача тоже не тема этой ветки. ладно поеду домой уже. |
|||
160
Chai Nic
05.09.14
✎
21:42
|
(158) Да ладно. Семерочники же учились где-то. А sql на любой программистской специальности учат..
|
|||
161
Z1
05.09.14
✎
21:43
|
(158) да и не каждый семерочник предложит 148
тем более в течении 10 минут. |
|||
162
Z1
05.09.14
✎
21:44
|
(160) sql несмотря на простое описание самого языка - бесконечен.
|
|||
163
NS
05.09.14
✎
21:46
|
(161) Это плохой семерочник. Мои знакомые вроде все знают как делается быстрый аналог регистра сведений привязанный к документам на семерке.
|
|||
164
Z1
05.09.14
✎
21:56
|
(163) ну да об этом я написал статью
году в 2002 или в 2003 Регистр сведений на v7 (сайт дикого зайца ) |
|||
165
NS
05.09.14
✎
22:00
|
Я это впервые увидел в Астор-Торговый дом. В 2002-ом.
|
|||
166
NS
05.09.14
✎
22:07
|
(164) Нашел статью - февраль 2003-го. Так что это было придумано до нас :)
Фамилию автора Торгового Дома постоянно забываю. Конфа на тот момент была просто гениальная, куча крутых решений, не только аналог регистра сведений. |
|||
167
Z1
05.09.14
✎
22:18
|
(166) ну я как бы придумал регистр сведений
самостоятельно ( я не на что не предендую ) решая конкретную задачу. ну и потом Придумал РегистрСведений-2 с учетом знаний sql нигде ее не выкладовал ( может даже файл где то и есть ) но и и других ничего подобного не видел. |
|||
168
Злопчинский
05.09.14
✎
22:29
|
Вот что-то у меня штатными методами без излишеств не получилось регистр сведений сбацать.
. задача простая, есть транспортная накладная (документ) - в ней строки - реализации. Задача: фиксировать факт наличия реализации в трансепортной накладной. чтобы в другой ТН реализацию не вколотили заново... |
|||
169
NS
05.09.14
✎
22:35
|
(168)
Так регистр, одно измерение накладная, на нем отбор движений (для индекса), и ресурс любой, в который всегда пишешь ноль. Поиск элементарный - Фильтр, и выбратьдвижения. |
|||
170
NS
05.09.14
✎
22:39
|
Можно и графу отбора, но это медленней.
|
|||
171
КонецЦикла
05.09.14
✎
23:00
|
Да фигня
Если не нужна штатная миграция ср-вами УРБД - гораздо приятнее работать со своими таблицами. Кто не верит - смотрите профайлер... во что превращается запись документа, ваша выборка и проч. |
|||
172
NS
05.09.14
✎
23:13
|
(171) Если работаешь со своими таблицами - то зачем 1С?!
1С тут лишнее звено. |
|||
173
mehfk
05.09.14
✎
23:25
|
(168) Логика в общем-то простая. Нужный набор измерений. Фиктивный ресурс. И при необходимости реквизит.
|
|||
174
vcv
06.09.14
✎
08:20
|
Поддержу NS. У меня достаточно оптимизированная конфигурация, в которой широко используется кеширование штатными методами для ускорения. Понемногу переписываю отдельные места на прямые запросы. Сам-то прямой запрос, возможно, и кардинально быстрее штатного работет. Но интересует скорость работы алгоритма в целом, а не отдельного запроса. И тут, зачастую, хорошо если в полтора-два раза ускорилось. Отдельные места, где выполнение запроса занимало львиную долю времени, конечно, ускоряются кардинально, но такие места по пальцам пересчитать можно.
|
|||
175
Ёпрст
08.09.14
✎
09:24
|
(100)
Функция ВернутьМатрицу() стр = ""; // ТекЭлемент = ТекущийЭлемент(); Если ЭтоГруппа() = 0 Тогда Если ТипМатрицы = Перечисление.ТипыМатриц.ОсновнаяМатрица Тогда стр = "Осн."; ИначеЕсли ПустоеЗначение(ТекЭлемент.ТипМатрицы) = 1 Тогда стр = "!Пусто!"; Иначе стр = "Внеп.."; КонецЕсли; Возврат стр; КонецЕсли; КонецФункции |
|||
176
Ёпрст
08.09.14
✎
09:24
|
В форме списка справочника и элемента и так доступны все реквизиты, не нужен там текущийЭлемент.. вообще.
|
|||
177
NS
08.09.14
✎
12:20
|
(176) В моем коде, который ниже - нужен. Для получения остатков из регистра.
|
|||
178
NS
08.09.14
✎
12:27
|
Ну и для поиска в ТЗ, хотя в принципе код уникальный, можно искать по нему.
|
|||
179
spock
09.09.14
✎
10:18
|
(45) так обосновывать нечего. Нет никакой заточки на sql2000. Следовательно и вывод в (35) неверен.
|
|||
180
NS
09.09.14
✎
10:34
|
(179) Невозможно писать под конкретную версию SQL, и не сделать под неё заточку.
|
|||
181
NS
09.09.14
✎
10:35
|
На нем происходила отладка и тестирование огромного количества копий программы, и под ним исправлялись все глюки на протяжении почти 30-ти релизов.
|
|||
182
spock
09.09.14
✎
10:52
|
(180) такой заточки нет, код 1с написан в реалиях того времени, а все отлупы - отработка по Иначе. Конечно, можно это притянуть под логику с заточкой, но только, притянув с ушами.
|
|||
183
NS
09.09.14
✎
10:55
|
(182) Я не понимаю о чем ты пишешь. Ты хочешь сказать что SQL-ные пользователи сидели не на SQL2000, не на нем фиксировались косяки, и не под ним исправлялись?
SQL версия 1С 7.7 заточена чисто под SQL 2000, и ничего притянутого за уши тут нет, они писалась и поддерживалась чисто под него. |
|||
184
Chai Nic
09.09.14
✎
11:00
|
(183) Вообще-то заточена она была под SQL7.0, а в 2000 уже появились заморочки с неочисткой временных таблиц и как следствие прогрессирующим замедлением работы клиента)
|
|||
185
spock
09.09.14
✎
11:01
|
(183) продолжай думать все, что угодно. У меня нет задачи убеждать кого-либо.
|
|||
186
NS
09.09.14
✎
12:56
|
(185) Зачем тогда убеждать?
Я отлично знаю, что если ты пишешь и тестируешь в некотором окружении, то в любом случае идет оптимизация под это окружение. Для примера чего стоит фича в SQL2005 с резкими тормозами в журнале подчиненных документов. (184) Первые релизы - вполне возможно были заточены под 7.0, а последние явно точились под 2000. |
|||
187
Chai Nic
09.09.14
✎
14:46
|
(186) "а последние явно точились под 2000"
Вся заточка ограничилась добавлением условия проверки версии сервера, похоже. Ибо обойти тот баг с временными таблицами достаточно несложно было бы.. раз не обошли - значит не затачивали.) |
|||
188
spock
09.09.14
✎
14:49
|
(186) значит секретный релиз расточил заточку.
|
|||
189
NS
09.09.14
✎
14:51
|
(188) Секретный релиз исправляет единичные косяки в проседании производительности из огромного количества. Косяк с подчиненными просто на виду.
|
|||
190
NS
09.09.14
✎
14:52
|
(187) см. (180)
Когда у тебя в окружении стоит определенная версия скуля, хочешь не хочешь, но произойдет заточка под неё. У подавляющего большинства пользователей стоит 2000-ый, и в 1С начиная с какого-то момента явно стоял 2000-ый. |
|||
191
trad
09.09.14
✎
15:03
|
(187) "Ибо обойти тот баг с временными таблицами достаточно несложно было бы."
не подскажешь несложный способ обойти этот баг на 2000 |
|||
192
trad
09.09.14
✎
15:04
|
(187) "Ибо обойти тот баг с временными таблицами достаточно несложно было бы."
Не подскажешь несложный способ обойти этот баг на 2000? Я знаю только реконнект, но его не отнесешь к простым. |
|||
193
NS
09.09.14
✎
15:06
|
(192) Вроде мелкомягкие пишут тоже что только реконнект.
Это внутренний глюк 2000-го, а не 1С. |
|||
194
trad
09.09.14
✎
15:11
|
(192)+ Если бы 1Совцы взялись за решение этой проблемы, то им пришлось бы реализовать поддержку 2005.
Имхо не стали делать потому, что, когда проблема стала широко известна, 8ка уже была в обороте. |
|||
195
Chai Nic
09.09.14
✎
15:20
|
(192) Ну например, не использовать sp_executesql, а использовать обычное выполнение запросов. Разумеется, этот способ работает на уровне платформы. А на уровне конфигурации - только реконнект.
|
|||
196
lavalit
09.09.14
✎
15:26
|
А 32 Гига ОЗУ.. не маловато ли?
|
|||
197
Chai Nic
09.09.14
✎
16:13
|
(196) Шутите? У нас на старом сервере с 4 гигами 30 семорочников терминальщиков вполне комфортно себя чувствовали..
|
|||
198
FN
09.09.14
✎
16:21
|
(196) на 16 ГБ у меня 120 пользователей в терминале + скуль на этой же машине. Летает!
Так что не мало, хотя зависит от базы и алгоритмов |
|||
199
tgu82
09.09.14
✎
16:24
|
(0) Я уже думал что для всех этот этап пройденный. Сам намучился в свое время очень сильно. УРБД тоже имею но проблем сейчас никаких тьфу-тьфу нет. Сервер у меня примерно такой же, пользователей около 50. Использую кернел33 и кернел37 для решения проблемы с 1 ГБ и для решения проблемы со 100% загрузкой процессора. Юзеры должны быть разделены по папкам обязательно.
Злобчинский подтвердит!!! ))) |
|||
200
trad
09.09.14
✎
16:29
|
(195) там, как я вспоминаю, проблема связана не столько с sp_executesql, а сколько с выполнением любой sp в которой происходит insert в tempdb
В таком случаем им бы пришлось отказаться о использования рекурсивной хранимой процедуры для укладывания списков значений и групп в качестве фильтров. Делать обход иерархии справочника на клиенте и инсертить в темпдб элементы поштучно обычными запросами - тоже так себе выход |
|||
201
jk3
09.09.14
✎
16:41
|
(93) Зачем ставить этот патч, если можно всем юзерам выставить время ожидания на блокировку = 0 ?
|
|||
202
NS
09.09.14
✎
16:48
|
(201) Зачем получать модельное окно на экран, если можно просто поставить патч Ромикса?
|
|||
203
Злопчинский
09.09.14
✎
18:45
|
.. в лесу раздавался топор дровосека...
обсуждение скатилось в несущественные вопросы... ;-) |
|||
204
Юпитер
09.09.14
✎
19:03
|
SSD рулит )
|
|||
205
Z1
09.09.14
✎
19:57
|
(181) что же они явный косяк ВыбратьПодчиненныеДокументы не исправили
как бы к моменту выхода 27 релиза этот косяк был точно известен и причины его тоже известны. исправлять там программистам 1с от силы час максимум два. не исправили скорее не потому что не могли а не нужно было улучшать v77. (186) Проблема подчиненных документов ( уже много раз обсуждалось и на мисте в том числе ) это проблема формирования программой 1с77 к sql запроса. ошибка одна и та же как и в sql2000 так и в sql2005. Просто более качественный оптимизатор запросов sql2005 пытается оптимизировать и все равно не может плохой t-sql запрос который выдает 1с т.е. ошибка есть и там и там просто пытаясь оптимизировать некачественный sql запрос оптимизитор запросов sql2005 тратит на это гораздо больше времени. пути обхода для любой версии sql тоже известны : это или использовать 1с++ ( как бы нештатно ) или в ВыбратьПодчиненныеДокументы надо всегда ставить явно диапозон дат (как бы штатно ). |
|||
206
Злопчинский
09.09.14
✎
20:01
|
(205) а в чем там причина?
|
|||
207
Chai Nic
09.09.14
✎
20:02
|
(200) "рекурсивной хранимой процедуры для укладывания списков значений и групп в качестве фильтров"
О как! А как эта процедура называется? Что-то в списке хранимых процедур базы ничего подобного не видел.. |
|||
208
Z1
09.09.14
✎
20:13
|
(206) если не указана конечная дата в ВыбратьПодчиненныеДокументы
то 1с генерирует конечную дату = '20991230' Заметьте именно 30 декабря. |
|||
209
NS
09.09.14
✎
20:15
|
(205) Потому что на SQL2000 выборка из подчиненного справочника отрабатывает нормально.
|
|||
210
trad
09.09.14
✎
20:15
|
(207) А она временная, создается каждый раз перед укладыванием фильтра в темп
|
|||
211
NS
09.09.14
✎
20:16
|
А если бы 7.7 оптимизировали под 2005-ый, то естественно бы поправили.
|
|||
212
Z1
09.09.14
✎
20:16
|
(207) там используется рекурсивная функция, аналогичная той что и в УложитьСписокОбъектов в 1с++
|
|||
213
NS
09.09.14
✎
20:16
|
(209) Блин, подчиненных документов канешн.
|
|||
214
NS
09.09.14
✎
20:19
|
(205) Ошибка - это то что отрабатывает неверно, или ведет к снижению производительности. Под SQL 2000 - что ты укажешь второй параметр, что оставишь пустым - скорость одинакова.
То есть это не ошибка, а фича. Заточенность под конкретное окружение. |
|||
215
Z1
09.09.14
✎
20:20
|
(211) да какая оптимизация просто конкретный человек ошибся
никто ошибку до сих пор не исправил. да и оптимизация одинаковая : Если в выбратьподчиненныедокументы не указан диапозон дат то и не нужно никаких проверок на даты в sql запросе - ничего лучшего для этого запроса не придумаешь. |
|||
216
Z1
09.09.14
✎
20:23
|
(214) Ошибки есть в любой программе.
Если ошибка себя не проявляет или слабо проявляет это не значит что ошибки нет. А уж о какой то заточке этого оператора ВыбратьПодчиненгныеДокументы под sql200 даже и говорить нечего - прочтите внимательно 211 |
|||
217
Z1
09.09.14
✎
20:24
|
ps в 216 не 211 а 215
|
|||
218
Злопчинский
09.09.14
✎
20:25
|
не, я в выборке подчиненных доков всегда стараюсь меняемый период указывать...
|
|||
219
NS
09.09.14
✎
20:25
|
(215) Если бы 7.7 оптимизировалась под SQL2005, то этот косяк бы заметили и исправили. Кто знает сколько таких косяков в релизах, и где они повсплывают на крупной базе.
Могу еще раз повторить - если ты пишешь в определенной среде, и под определенное окружение, если тестеры сидят под этим окружением, пользователи - независимо от желания разработчиков происходит оптимизация под эту среду и это окружение. |
|||
220
NS
09.09.14
✎
20:26
|
Ровно так-же как когда пишешь софт под определенный компилятор, при перекомпиляции более свежим - возможны и баги, и проседания производительности. Так-же и тут.
|
|||
221
Z1
09.09.14
✎
20:30
|
(219, 220 ) ну мы что-то о разном говорит
я о конкретном операторе о конкретной ошибке, а ты обобщаешь на какие-то общие принципы создания программного продукта. |
|||
222
Chai Nic
09.09.14
✎
20:36
|
(212) Там временная процедура создается что ли?
|
|||
223
NS
09.09.14
✎
20:36
|
(221) Я ничего не обобщаю. И говорю не о принципах создания, а о принципах использования. Если оболочка 7.7 писалась под SQL2000, на ней же тестировалась, и получали сообщения об ошибках от пользователей и партнеров которые тоже использовали SQL2000, то использование под SQL2005 может выйти боком. Никто не знает какие баги выплывут, и в каких местах будут обнаружены провалы производительности.
|
|||
224
Z1
09.09.14
✎
20:38
|
(222) да
|
|||
225
Z1
09.09.14
✎
20:49
|
(223)>>>Если оболочка 7.7 писалась под SQL2000, на ней же >>>тестировалась, и получали сообщения об ошибках от >>>пользователей и партнеров которые тоже использовали >>>SQL2000, то использование под SQL2005 может выйти боком.
так t-sql sql2005 является расширением sql200. ничего они(ms) оттуда вообще не убрали только добавили. то что переход не приводит к ошибкам это явная заслуга фирмы MS и как бы на совместимость продуктов sql200 и sql2005 MS потратило тоже не мало сил и денег. да и те кто использует 1с с sql2005 и выше как бы не было описание на форумах суперпроблемм с базами из за этого перехода. плюсов же от sql2005 я уже приводил в этой ветке. и как бы плюсы будут проявляться сразу на любой конфигурации а какая-то никем еще не найденная ошибка на конкретной конфигурации может никогда и не проявиться при переходе на новый sql |
|||
226
NS
09.09.14
✎
20:53
|
(225) Только что обсуждали - изменена работа оптимизатора, что вызвало резкое падение производительности при выборке подчиненных документов с невыбранным интервалом.
в каких местах он еще может глюкнуть? |
|||
227
NS
09.09.14
✎
20:57
|
(225) для примера - мы 10 лет работаем на SQL2000, и ни разу не было критических проблем. Работа круглосуточная. Стоимость незапланированного останова от 10000 рублей в минуту. Ты предлагаешь перейти на SQL2005? Если в результате перехода фирма встанет, то твоя репутация будет безвозвратно испорчена.
У тебя есть гарантии что не будет критичных дидлоков, или проседаний производительности которые сделают невозможной работу в условиях десятка тысяч документов в день? |
|||
228
NS
09.09.14
✎
20:58
|
и косяков, если например для быстрого получения признака группы для обмена используется глюк SQL?
|
|||
229
Z1
09.09.14
✎
21:02
|
(226) В операторе ВыбратьПодчиненныеДокументы()
это ошибка программистов 1с. причем ошибка давно извесная и уже давно описанная. для кого она была критической тот ее исправил. (227) я тебе ничего не предлагаю. но и не надо других убеждать что MS в ms sql ничего не сделало в продукте ms sql за 14 лет. на каждой фирме есть люди принимающие решения и им руководство должно доверять принятие важных решений - вот и все. |
|||
230
Z1
09.09.14
✎
21:03
|
(228) вообще не понятно что сказал.
|
|||
231
Злопчинский
09.09.14
✎
21:03
|
(227) ну тут известный принцип "работает - не трожь".
я вот ща в конторе буду клюшки на скуле заупскать. ясен пень 2000 лицензхионного - хрен где нароешь, анароешь - два скуля на однйо машине держать - хз... вот будем на секретном под 2008.. посмотрим. . а все из-за чего - больше года назад предупреждал - хватить на два, может три квартала - интенсифицируйте работу - чтобы можно было обрезать базу и продолжить работать ка кработали.. приходят надысь на прошлой неделе глазенками хлоп-хлоп - у нас бяка файло 2 Гига - ну и что хотите? - сделайте чтобы работало... - обрежьте базу - не можем, работы не сделаны... .. дальше я тему не стал развивать про управление/организацию работ... . завтреца вот буду писать гендиру что техотдел ввиду того что использование клюшек предусматривалось только с Sql2000 - не может дать вообще никаких "гарантий"... |
|||
232
NS
09.09.14
✎
21:05
|
(230) при выгрузке справочников используется глюк SQL, для скорости. Что тут непонятного? :)
|
|||
233
NS
09.09.14
✎
21:06
|
см (99)
|
|||
234
Z1
09.09.14
✎
21:14
|
(233) Если пустоеЗначение(АтрибутТаблицы)
дает другой результат чем Атрибут.Выбран() то это говорит о нарушениии логической целостности базы данных. Как бы написать проверку универсальную проверку на такие условие для любой базы проблематично. Написать проверку этого условия для конкретной базы и нескольких атрибутов нескольких таблиц достаточно тривиальная задача. ну а в чем плюс пустоеЗначение перед выбран даже не хочу здесь обсуждать. |
|||
235
NS
09.09.14
✎
21:17
|
(234) а в чем плюс выбран() над пустоезначение?!
логическая целостность тут не при чем, это фича 7.7 под SQL. |
|||
236
Chai Nic
09.09.14
✎
21:37
|
(235) Выбран() дергает базу, что на несколько порядков более тормозная операция, чем просто проверка значения на заполненность..
|
|||
237
NS
09.09.14
✎
21:38
|
(236) я знаю. поэтому и пустоезначение()
|
|||
238
NS
09.09.14
✎
21:40
|
(236) там вообще тип "строка", это же наименование. :)
но вообще везде в конфе пустоезначение() вместо выбран, есно. |
|||
239
КонецЦикла
09.09.14
✎
22:24
|
(111) Автор, так какой бюджет на "сделать все ок"? :)
Я как-то с трудом представляю как можно тупить на 30 пользователях. Или все роботы? Мне кажется ключевые слова тут "база самописная" :) |
|||
240
Злопчинский
10.09.14
✎
02:50
|
(239) вот и я тоже мучаюсь этой мыслью...
|
|||
241
vcv
10.09.14
✎
05:30
|
(240) Каждому своё. А я вот мучаюсь мыслью, как бы сделать так, что бы моя "самонапереписанная комплексная" не тупила. :(
|
|||
242
VladZ
10.09.14
✎
08:32
|
(111) Можешь конфу скинуть мне на мыло? В идеале, если можно, с данными. Но можно и без них. Хочу оценить оптимальность алгоритмов.
|
|||
243
mehfk
10.09.14
✎
08:35
|
Повторю (149) Дайте мд-шник посмотреть. Мой ник псина народ ру.
|
|||
244
VladZ
10.09.14
✎
08:48
|
+242. Из личного опыта: как-то оптимизировал отчет на 7.7. Исходное время выполнения составляло 40 минут. Сократил до 6 минут.
|
|||
245
vcv
10.09.14
✎
10:50
|
(244) Да фиг с ним, с отчетом. Его хоть оптимизировать можно. А что делать, когда загрузка-выгрузка данных по УРБД тормозная? Буквально вчера: на выгрузку порядка 10000 измененных элементов справочника. Около мегабайта архив в результате выгружается. Выгрузка занимает четыре минуты.
|
|||
246
Ёпрст
10.09.14
✎
10:53
|
(245) не использовать уриб
|
|||
247
Ёпрст
10.09.14
✎
10:54
|
использовать его только для решгистрации изменений. Выгружать другими средствами, например, по правилам МОД-а.
|
|||
248
Злопчинский
10.09.14
✎
12:28
|
(241) я вот мучаюсь мыслью - как бы в своих дописках подчистить всякое и до ума довести ряд пунктов...
|
|||
249
Ёпрст
10.09.14
✎
12:43
|
(241) очень просто - кастрировать аналитику на 41 счете, это для начала.
|
|||
250
Ёпрст
10.09.14
✎
12:44
|
она там лишняя
|
|||
251
vcv
10.09.14
✎
19:56
|
(249) Тут и без тонкостей с аналитиками хватает тормозов. Например (пока не разобрался с причинами), если одна база запущена в терминале, интерфейс работает отзывчиво. Не быстро, но и без откровенных тупняков. Если открыто еще две базы, которые ничего не делают, работа начинает напоминать слайд-шоу. Аналогичный эффект, похоже, возникает, когда в одной базе открыто много форм. Общее количество пользователей на терминальном сервере тоже, похоже, аналогично влияет.
|
|||
252
Юпитер
10.09.14
✎
20:08
|
(0)ну вы хоть выяснили что именно тормозит?
если нет то придется кому-то заплатить ))) |
|||
253
Юпитер
10.09.14
✎
20:11
|
(231)начиная с 2008r2 уже можно ничего не резать
настроить скуль + регламенты |
|||
254
Chai Nic
10.09.14
✎
20:14
|
(253) Ну почему.. ограничение осталось, только изменился размер.
|
|||
255
Keyn
11.09.14
✎
03:15
|
для файловой базы 30 юзеров это много. переход на серверный вариант. я так считаю))
|
|||
256
Злопчинский
11.09.14
✎
03:18
|
(255) для файловой базы 30 юзверей - это так, чуть выше средненького. с учетом того, что обычно из 30 юзверейгенерят трафик и нагрузку гораздо меньше...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |