|
1C 8.2 SQL vs. 1C 8.2 файловый - тормоза в 10x | ☑ | ||
---|---|---|---|---|
0
ВагонНеЗнаний
19.07.13
✎
12:28
|
Привет 1эснеги! У меня к вам вопрос по производительности 1с, как сисадмина. Вот есть файловый вариант базы 3,3Гб (УТ 11.0). Она лежит на сервере с 20Гбайт ОЗУ, крутится это все на ESXi 5 на железном RAID1. В базе 10 пользователей. Ту же самую базу разворачиваю на чистой Server 2012 (т.е. нет тормозящей прослойки в виде гипервизора) с 24Гбайт ОЗУ, процом корка i7 980x в SQL варианте (SQL 2008R2 SP1, сервер предприятия 1С 64бит, на том же сервере, файл транзакций 100Мбайт, база оптимизирована в Maintenance Plan). База лежит физически (и файл транзакций тоже (хотя транзакции разносил на другой RAID - ничего не меняется в принципе)) на железном RAID-1, собранном на SSD (430 Мбайт/с чтение, 90 Мбайт/с запись), ОС лежит на другом железном RAID-1 (правда на SATA).
Отчет "Анализ доступности товаров" с фильтром по 1 товару в первой, файловой версии, выполняется за 1 сек, в SQL 6-8-10сек. Запускаю параллельно оснастку производительность, смотрю узкое горлышко по дисковой подсистеме, процу, памяти. Никаких средних длин очереди диска более 2х и т.д. не наблюдаю. Что за х..я спрашивается? Это что, нормально да? |
|||
1
ВагонНеЗнаний
19.07.13
✎
12:29
|
Рабочих процессов в сервере довел до количества ядер проца, установил лимит в 6Гбайт в кластере.
|
|||
2
skunk
19.07.13
✎
12:33
|
это нормально ... скул один на один проигрывает файловой ... и начинает выигрывать когда увеличивается количество пользователей
|
|||
3
ВагонНеЗнаний
19.07.13
✎
12:35
|
Ну т.е. по-любому, SQL ведь быстрее не будет выполнять отчет, если в базе будет 10 зверьков? И что тут делать-то? Писать прямые запросы как в семерке (если такое возможно)?
|
|||
4
skunk
19.07.13
✎
12:36
|
(3)зависит от базы ... но скорее всего да ... 10 пользователей сфориуют отчет на скуле быстрее, чем в файловой
|
|||
5
Живой Ископаемый
19.07.13
✎
12:37
|
2(3) тебе говорят, что когда в файловой будет 10 зверьков, она будет строить отчет в 2 раза медленней чем СКЛ
|
|||
6
Fragster
гуру
19.07.13
✎
12:38
|
скуль выигрывает в параллельности.
запусти www.forum.mista.ru/topic.php?id=658180 увидишь, что максимальная скорость будет раз в 10 больше, чем скорость одного потока (т.е. условно 10 юзеров будут работать с той же скоростью, что и один). на файловой при активной работе умрете быстро. уже 2 _активных_ пользователя вызывают проблемы. |
|||
7
Fragster
гуру
19.07.13
✎
12:39
|
ну и у скуля кэш наполнится, статистика актуализируется - твой отчет во второй и дальнейшие разы будет выполняться бстрее
|
|||
8
Fragster
гуру
19.07.13
✎
12:39
|
||||
9
vogenut
19.07.13
✎
12:55
|
Оключи параллельность при выполнении запросов
|
|||
10
ВагонНеЗнаний
19.07.13
✎
12:59
|
(9) Max Degree of Parallelism?
|
|||
11
Fragster
гуру
19.07.13
✎
13:01
|
(10) да. =1 для 1са хорошо в 95% случаев
|
|||
12
skunk
19.07.13
✎
13:01
|
(10)неотключай
|
|||
13
Fragster
гуру
19.07.13
✎
13:01
|
причем на 2012 скульсервере как-то вообще сильно влияет
|
|||
14
ВагонНеЗнаний
19.07.13
✎
13:04
|
У меня сейчас 1 стоит. В комментах народ пишет, что скуль 2005 поживей ворочается. Еще: вот сейчас в файловой базе 14 зверьков, а отчет все равно, выполняется за 1 секунду. Практически мгновенно, и это при том, что дисковая подсистема гораздо медленнее рейдов на новом сервере.
|
|||
15
skunk
19.07.13
✎
13:07
|
(14)поставь 2005 и сравни
|
|||
16
Живой Ископаемый
19.07.13
✎
13:08
|
2(14) не интересно
|
|||
17
andreymongol82
19.07.13
✎
13:16
|
(14) А пусть эти 14 человек одновременно запустят отчет и какую-нить тяжелую операцию. Тогда разница почувствуется
|
|||
18
Kreont
19.07.13
✎
13:19
|
(0) да, так нормально.
Погугли разницу между файл.любыми базами и СЮЛ-ными любыми.1С тут ни при чем :) + обрати внимание на: а) целостность/устойчивость б) паралелность чтения/записи в обоих вариантах |
|||
19
Maxus43
19.07.13
✎
13:29
|
Ну и никто не видит запрос, может он кривой, для скуля надо оптимизировать
|
|||
20
ВагонНеЗнаний
19.07.13
✎
13:49
|
(7) опыт показал, что угол прямоты пальца, нажимающего на кнопку сформировать отчет в 10 итерациях не повлиял на скорость получения данных.
(17) представим себе ситуация, что база пользуется в не очень активном режиме. Но позвонил клиент и хочет знать, сколько такого товара в остатке и менеджер, как ужаленный (т.е. за 1-2 сек), должен сказать вот столько-то... (18) нет, ну я понимаю, что такое блокировка на уровне таблицы/строки таблицы и как это влияет на скорость проведения Что-то мне подсказывает, наскоро руку сваянный отчет в 1эс плюс плюс (в 7.7) получит данные за 0,2 мсек... |
|||
21
acsent
19.07.13
✎
13:51
|
6-10 секунд при первом запуске или при любом?
|
|||
22
Fragster
гуру
19.07.13
✎
13:52
|
(20).1 а сколько скуль памяти скушал?
(20).2 так это оно с отбором столько работает? походу запрос кривой (20).3 запросы 1с8 вполне грамотно транслируются в скуль, в отличии от 7.7 |
|||
23
ВагонНеЗнаний
19.07.13
✎
13:55
|
(21) 8-10 сек при любом
(20) 1. ~4Гбайт (20) 2. С отбором |
|||
24
Fragster
гуру
19.07.13
✎
14:03
|
(23) текст запроса в студию
|
|||
25
H A D G E H O G s
19.07.13
✎
14:06
|
(23) Бред Питт какой-то. Не верю.
|
|||
26
ВагонНеЗнаний
19.07.13
✎
14:12
|
(24) стандартный отчет Анализ доступности товаров.
Вот его запрос: ВЫБРАТЬ РАЗРЕШЕННЫЕ График.Номенклатура КАК Номенклатура, График.Характеристика КАК Характеристика, График.Склад КАК Склад, -МИНИМУМ(График.КоличествоКонечныйОстаток) КАК Количество Поместить ВтРезервыПоГрафику ИЗ РегистрНакопления.ГрафикДвиженияТоваров.ОстаткиИОбороты( {КОНЕЦПЕРИОДА(&ТекущаяДата, ДЕНЬ)}, {КОНЕЦПЕРИОДА(&ОкончаниеПериода, ДЕНЬ)}, День, ДвиженияИГраницыПериода, Склад.ВариантКонтроля = ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроля.ОстаткиСУчетомГрафика) {(Номенклатура).* КАК Номенклатура, (Склад).* КАК Склад, (Характеристика).* КАК Характеристика} ) КАК График ГДЕ ВЫБОР КОГДА График.Склад.ГраницаГрафикаДоступности >= &ТекущаяДата ТОГДА График.Период <= График.Склад.ГраницаГрафикаДоступности КОГДА График.Склад.СрокПоставки > 0 ТОГДА График.Период <= ДОБАВИТЬКДАТЕ(&ТекущаяДата, ДЕНЬ, График.Склад.СрокПоставки) ИНАЧЕ ЛОЖЬ КОНЕЦ И График.КоличествоКонечныйОстаток < 0 СГРУППИРОВАТЬ ПО График.Номенклатура, График.Характеристика, График.Склад ИНДЕКСИРОВАТЬ ПО Номенклатура, Характеристика, Склад ; //////////////////////////////////////////////////////////////////////////////// // Построение отчета // ВЫБРАТЬ РАЗРЕШЕННЫЕ СвободныеОстатки.Номенклатура КАК Номенклатура, СвободныеОстатки.Характеристика КАК Характеристика, СвободныеОстатки.Склад КАК Склад, СвободныеОстатки.ВНаличииОстаток КАК ВНаличии, ВЫБОР КОГДА СвободныеОстатки.Склад.ВариантКонтроля = ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроля.ОстаткиСУчетомРезерва) ТОГДА СвободныеОстатки.ВРезервеОстаток КОГДА СвободныеОстатки.Склад.ВариантКонтроля = ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроля.ОстаткиСУчетомГрафика) ТОГДА ЕСТЬNULL(РезервыПоГрафику.Количество, 0) ИНАЧЕ 0 КОНЕЦ КАК Резерв, СвободныеОстатки.ВНаличииОстаток - ВЫБОР КОГДА СвободныеОстатки.Склад.ВариантКонтроля = ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроля.ОстаткиСУчетомРезерва) ТОГДА СвободныеОстатки.ВРезервеОстаток КОГДА СвободныеОстатки.Склад.ВариантКонтроля = ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроля.ОстаткиСУчетомГрафика) ТОГДА ЕСТЬNULL(РезервыПоГрафику.Количество, 0) ИНАЧЕ 0 КОНЕЦ КАК Свободно ИЗ РегистрНакопления.СвободныеОстатки.Остатки(, {Номенклатура.* КАК Номенклатура, Характеристика.* КАК Характеристика, Склад.* КАК Склад}) КАК СвободныеОстатки ЛЕВОЕ СОЕДИНЕНИЕ ВтРезервыПоГрафику КАК РезервыПоГрафику ПО СвободныеОстатки.Номенклатура = РезервыПоГрафику.Номенклатура И СвободныеОстатки.Характеристика = РезервыПоГрафику.Характеристика И СвободныеОстатки.Склад = РезервыПоГрафику.Склад И (СвободныеОстатки.Склад.ВариантКонтроля = ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроля.ОстаткиСУчетомГрафика)) ГДЕ СвободныеОстатки.ВНаличииОстаток <> 0 ИЛИ ВЫБОР КОГДА СвободныеОстатки.Склад.ВариантКонтроля = ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроля.ОстаткиСУчетомРезерва) ТОГДА СвободныеОстатки.ВРезервеОстаток КОГДА СвободныеОстатки.Склад.ВариантКонтроля = ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроля.ОстаткиСУчетомГрафика) ТОГДА ЕСТЬNULL(РезервыПоГрафику.Количество, 0) ИНАЧЕ 0 КОНЕЦ <> 0 |
|||
27
Fragster
гуру
19.07.13
✎
14:13
|
а итоги рассчитаны?
|
|||
28
Fragster
гуру
19.07.13
✎
14:15
|
вот это для начала перенести в формирование ВТ:
СвободныеОстатки.Склад.ВариантКонтроля = ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроля.ОстаткиСУчетомГрафика) |
|||
29
Fragster
гуру
19.07.13
✎
14:16
|
вот это: ВЫБОР
КОГДА График.Склад.ГраницаГрафикаДоступности >= &ТекущаяДата ТОГДА График.Период <= График.Склад.ГраницаГрафикаДоступности КОГДА График.Склад.СрокПоставки > 0 ТОГДА График.Период <= ДОБАВИТЬКДАТЕ(&ТекущаяДата, ДЕНЬ, График.Склад.СрокПоставки) ИНАЧЕ ЛОЖЬ КОНЕЦ в параметры виртуальной таблицы |
|||
30
Fragster
гуру
19.07.13
✎
14:17
|
а, не. не перенести это, если только руками не формировать таблицу...
|
|||
31
ВагонНеЗнаний
19.07.13
✎
14:18
|
господа, нужно уходить, вечером проведу тестирование (8) на старом файловом сервере в сравнение с новым.
|
|||
32
ВагонНеЗнаний
19.07.13
✎
14:18
|
спасибо!
|
|||
33
КонецЦикла
19.07.13
✎
14:19
|
Епать, SSD-диски, 20 Гиг ОЗУ при смешном объеме базы и 10 калеках.
Что дальше-то будет? |
|||
34
Fragster
гуру
19.07.13
✎
14:19
|
(31) он пока в файловом варианте не работает, времени нету запилить фичу
|
|||
35
hhhh
19.07.13
✎
14:31
|
(34) в файловом тоже кстати во второй раз запрос выполняется раз в 5 быстрее, чем в первый.
|
|||
36
fisher
19.07.13
✎
14:48
|
Господа, какой нафиг, "выигрыш SQL в параллельности"? Не, это само собой, но скорость формирования отчетности обычно при переходе с файловой на скульную возрастает! А такая фигня как в (0) - абсолютно ненормальна.
ЗЫ. Может, это конечно конкретный прикол с этим отчетом на этих настройках. Я бы попробовал и другие отчеты тоже, в т.ч. более ресурсоемкие. Которые и на файловой не одну секунду формируются. |
|||
37
Fragster
гуру
19.07.13
✎
14:54
|
здесь важно (27). ну и на файловой может быть выключен РЛС, а на скулевой - включен...
|
|||
38
Reaper_1c
19.07.13
✎
14:54
|
(0) Да, нормально.
(1) А вот это ты зря. (36) Не надо так кричать о своих заблуждениях. Поработайте хотя бы сутки. |
|||
39
fisher
19.07.13
✎
18:47
|
(38) Ну, сутками я уже давно не работаю.
И предпочитаю остаться в своей реальности, где переход на промышленный сервер БД не дает десятикратного замедления на обычной выборке. |
|||
40
Defender aka LINN
19.07.13
✎
19:24
|
(36) Запусти сотню юзеров в файловую.
|
|||
41
banco
19.07.13
✎
19:39
|
(1) если сервер 1С 64 битный, то рабочий процесс оставь 1. в клиент серверном варианте отчет в ут 11 формируется в фоновом задании, если 1 процесс то результат выполнения фонового задания вернется быстрее.
|
|||
42
Grobik
19.07.13
✎
19:42
|
С темы прочитал только 20 гигабайт. 20 Не является степью двойки. И не является степенью двойки умноженной на число каналов. Вывезите на карьер ИТ директора.
|
|||
43
Либерал
19.07.13
✎
19:42
|
(0) а еще тупо поставь на сервере режим энергосбережения на мкс.производительность вместо сбалансированного
|
|||
44
КонецЦикла
19.07.13
✎
19:43
|
(43) + и перестань смотреть порнуху на серваке
|
|||
45
Fragster
гуру
19.07.13
✎
19:44
|
(42) 20 - это там, где файловая, где серверная - 24
|
|||
46
Grobik
19.07.13
✎
19:45
|
Заставь админа или началька ИТ почитать Гилева.
|
|||
47
Grobik
19.07.13
✎
19:46
|
Вроде все просто, а много вопросов по производительности скуля решается.
|
|||
48
vde69
19.07.13
✎
20:03
|
сделай на скульной базе 10 отчетов, потом сделай обновление статистики и будешь удивлен на сколько скуль ускорится...
|
|||
49
Reaper_1c
19.07.13
✎
20:07
|
(39) тебе результат нужен, или свои предпочтения отстоять?
|
|||
50
Demiurg
19.07.13
✎
20:11
|
||||
51
fisher
19.07.13
✎
21:57
|
(49) Мне тут ничего не нужно. "Мне за державу обидно". Даже у того же Гилева упоминается, что при нормальных раскладах сиквел примерно в ДВА раза медленнее. На операциях ЗАПИСИ (тот же нагрузочный тест Гилева, тестирующий запись регистров на сервере). И это соответствует действительности. Общеизвестно, что монопольное перепроведение на файловой значительно быстрее. Но речь не о записи. В реальной жизни я несколько раз на личном опыте наблюдал как скорость ВЫБОРКИ данных УВЕЛИЧИВАЛАСЬ при переходе на клиент-сервер. А тут замедление в ДЕСЯТЬ раз. Ты говоришь, что это нормально. Я говорю, что нет.
|
|||
52
Demiurg
19.07.13
✎
22:06
|
(51) если более точно, скуль примерно в 3 два раза больше выполняет различных функциональных и сервисных вещей во время записи: функции обеспечения целостности данных, контроль безопасности, возможность восстановления после сбоя, обеспечение коллективной работы...
(0) если честно, нет уверенности что отчет строящийся 10 секунд - это трагедия какой бы вы бюджет потратили на устранение этой КОНКРЕТНОЙ проблемы? думаю это и будет ответ ) |
|||
53
shuhard
19.07.13
✎
22:16
|
(51)[В реальной жизни я несколько раз на личном опыте наблюдал как скорость ВЫБОРКИ данных УВЕЛИЧИВАЛАСЬ при переходе на клиент-сервер]
легко, если речь о переходе с файл-северной на клиент-серверную(за счет медленного транспорта данных), для маленьких баз на локальном диске не характерно |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |