Имя: Пароль:
1C
1С v8
Оптимизация 1с на уровне SQL Server.
0 antihacker
 
19.02.15
09:04
Всем привет! У кого какие коменты. Конфига самописная.

Что мне удалось добыть. Тут конечно речь не идет о аппаратных мощностях. Так на программном уровне.

1) Базы, логи и tempdb на разные диски. По ходу 1С tempdb грузит не плохо.
2) Создать из ОЗУ диск RAM Drive и кинуть tempdb туда. Те есть диск сидит в ОЗУ.
3) Так как конфига самописная, то при создание объекта можно выбирать. С индексом или без.
а) С индексом. Так как SQL индекс читает по 8 кб, то индекс положить на диск , где рзамер кластера диска равно 8 кб. А сами таблицы на другой диск где размер кластера 64 кб.
б) Без индекса. Делить не зачем базу ложем на диск , где размер кластера 64 кб. Потому что SQL читает таблицы по 64 кб. То есть full scan.

Еще что ?
1 Fragster
 
гуру
19.02.15
09:08
(0) в топку, а на рамдрайв - темпы 1с-сервера ;)
2 vde69
 
19.02.15
09:09
>>>1) Базы, логи и tempdb на разные диски. По ходу 1С tempdb грузит не плохо.
+1


>>>2) Создать из ОЗУ диск RAM Drive и кинуть tempdb туда. Те есть диск сидит в ОЗУ.
-1 ты не видел темпдб в 100гигов? а я видел :) (лучше всю память скулю дать), лучше купить отдельный SSD дису под темдб


дальше я не понял....
3 Fragster
 
гуру
19.02.15
09:09
если скуль и 1с - не на одном сервере, то между ними какой-нить инфинибэнд или 10Г прямой трубой
4 Fragster
 
гуру
19.02.15
09:10
(2)(0) кто вам сказал, что 1с при наличии памяти прямо вот фиксирует результаты операций с темпбдб на диск?
5 Fragster
 
гуру
19.02.15
09:10
скуль фиксирует, да
6 vde69
 
19.02.15
09:12
(4) я видел файл размером темп дб 100 гигов...
7 ShoGUN
 
19.02.15
09:13
(0) Насчёт размеров кластера - прирост если и будет, то мизерный. Кэширование же.
8 Fragster
 
гуру
19.02.15
09:13
(6) т.е. "при налиции памяти" тебя не смутило? ну и да, Выбрать * из РегистрБухгалтерии.Хозрасчетный,РегистрБухгалтерии.Хозрасчетный тебе и не такое даст
9 vde69
 
19.02.15
09:14
(8) сервер 128 гигов памяти, по идее хватало...
10 antihacker
 
19.02.15
09:50
ShoGUN, так я не про прирост. Оптимизированное чтение. То есть быстрее что бы читал
11 antihacker
 
19.02.15
09:55
vde69, Я про особенности движка сикла. Сикл читает индексы таблицы по 8 кб. А индексы- это просто ссылки на таблицу. А  если таблица без индекса, то сикл читает сразу саму таблицу полностью и ищет там нужную строку. По этому называют- full scan. И он читает таблицу по 64 кб. В этом и оптимизация.
12 ShoGUN
 
19.02.15
09:56
(10) Это называется "экономия на спичках". Перенос TempDB на другой диск куда лучше тебе всё оптимизирует.
13 vde69
 
19.02.15
10:01
(11) я давным давно читал про выравнивание страниц скуля с кластерами диска, но приведенные в статье графики не говорят о существенном улучшении производительности.

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

начните с общей оценки, например ЦУП или http://wiki.mista.ru/doku.php?id=it:analiz_sql_block
14 ShoGUN
 
19.02.15
10:05
(11) Проблема в том, что в случае кластерного индекса ты не сможешь отделить индекс от таблицы. А кучи 1С по-моему вообще не использует, везде есть первичный ключ.
15 H A D G E H O G s
 
19.02.15
10:34
(0) Купите ssd диск и настройте бэкапы на соседний hdd. и не ипите мозх.
16 celentano
 
19.02.15
11:12
(15) "Тут конечно речь не идет о аппаратных мощностях. Так на программном уровне."
Видимо денег нет,какой уж тут ССД. Ну и работать не очень хочется,это ведь нужно выискивать и перерабатывать узкие места а уж в самописке которую без оглядки на производительность пилили таких мест может быть много. Отсюда и желание путём магических настроек снизить время простоя системы.
17 Stein
 
19.02.15
11:20
TempDb на SSD диск. Его потеря не критична.
Использовать Shared Memory.
Оптимизация регламентных заданий, если пользователи работают круглосуточно использовать скрипты аля "умной реиндексации".
18 antihacker
 
19.02.15
11:21
celentano, очередной ясновидящий.  У нас тут вот SUN ящики стоят. Вообщем ресурсов хватает. И что ? Я должен сказать покупайте мощные аппараты вот и вся оптимизация ?
19 Maxus43
 
19.02.15
11:27
(18) начинать оптимизацию, тем более в самописке, надо начинать с кода, там 90% косяков как правило
20 H A D G E H O G s
 
19.02.15
11:27
(19) 99%
21 Maxus43
 
19.02.15
11:29
(20) в типовых 100% :)
22 H A D G E H O G s
 
19.02.15
11:29
(21) В типовых - все практически прекрасно.
23 vde69
 
19.02.15
11:30
(19) есть 2 подхода

1. от общего к частному
2. от частного к общему

ты сейчас про второй подход, но он для оптимизации клиент серверных систем практически не подходит....
24 Maxus43
 
19.02.15
11:32
(23) >>но он для оптимизации клиент серверных систем практически не подходит
это основной затык в производительности, кривой код и не оптимальные решения.
Собери хоть супер компьютер, но всего 1 запрос положит всю мощь серверов
25 H A D G E H O G s
 
19.02.15
11:35
(24) Нет. Это мелочи.
Гораздо страшнее сотни мелких неоптимальных запросов, размазанных по конфе.

Даже не так.

Еще страшнее ~дублирующиеся~ достаточно сложные запросы в модуле проведения для абсолютно несвязных блоков, которые связать можно только через ВременныеХранилища.
26 Maxus43
 
19.02.15
11:38
(25) про один запрос - для наглядности.
Есно куча неоптимальных вещей в сумме и создают ощущение (и не только ощущения) что "база тормозит, программа не работает"
27 antihacker
 
19.02.15
11:56
Мдяяя как всегда не в ту степь. Вопрос на уровне сикул сервера был. А не оптимальный 1С код оставим на совесть программиста.
28 Maxus43
 
19.02.15
11:57
(27) пункт 3 выкинь, остального уже достаточно, не считая настроек самого скуля. по железу достаточно
29 antihacker
 
19.02.15
12:10
ОК !
30 rsv
 
19.02.15
12:11
(0) Базы, логи и tempdb на разные диски

Temp разбить на разные файлы .  Да и собственно диски сами должны быть щутсрыми. Ибо без последнего все настройки ничего не  дадут.
31 antihacker
 
19.02.15
12:14
Кстати,  при SSD дисках размер кластера должен быть каким ? 8,16,32,64 кб. или как ?
32 rsv
 
19.02.15
12:16
Имха кластеры мимо (не один ли ..) - а вот сама конструкция СХД (что и кто там и за какие деньги)
33 vde69
 
19.02.15
12:17
(31) пофиг, так как запись и чтение физически идет блоками на размер которых ты влиять не можешь, зависит от чипсетов...
34 vde69
 
19.02.15
12:18
ты-бы всеже с (13) начал....
35 antihacker
 
19.02.15
12:25
Ну как. Размер одного сектора на ССД 128 кб. Вроде.
36 ShoGUN
 
19.02.15
13:33
(35) Похрену. Не там ты копаешь. Я больше чем уверен, что если ты проведёшь эксперимент, то скорость если и будет изменяться, то в пределах погрешности.
http://www.sql-server-performance.com/forum/threads/ntfs-cluster-size.15387/
Вот размер страйпа в рейде может влиять, но дефолтный там и так обычно нормальный стоит(64-128Кб).
37 vlandev
 
19.02.15
14:02
Кстати SSD инициализировать надо с выравниванием , а то некоторые разметят в какой нибуть виндовс-2003.
38 kihor
 
19.02.15
17:42
(0) Немного не понял по поводу пункта 3. Что-то я не помню объектов 1С, которые бы создавались без индексов. Можно создать дополнительные - это да. Но индексы по умолчанию же всегда создаются.
Но, ИМХО, самое правильное, если есть проблемы, это смотреть в код/запросы (ЦУП-ом, профайлером и т.п.). Если есть избыточные ожидания на блокировках, то никакие администраторские "пляски с бубном" не помогут.
39 Salimbek
 
19.02.15
18:22
(1) А можно подробнее про темпы сервера на рам-драйв, ну там - какой прирост, какой размер рекомендуешь, да и ключики запуска не помешают, чтоб два раза не вставать...
З.Ы. У СКЛ-я темпы на РАМ вынесены, плюс один файл на физическом, именно на случай вырастания за пределы
40 Andrewww123
 
20.02.15
02:10
(0) С "max degree of parallelism" поиграться можно. У себя изменил с 0 на 1, вроде как пошустрее стала 1С.
41 1976vas
 
20.02.15
08:31
(25) А можно пример, на пальцах, какой-нибудь неоптимального запроса и пример его исправления или почитать можно где?
42 y22-k
 
20.02.15
08:41
(41) на сайте гилева посмотри
43 Andrewww123
 
20.02.15
08:51
(41) Самый распространенный вариант: есть поле составного ссылочного типа и ты к нему в запросе обращаешься "Поле.Какой-тоРеквизит". При этом на уровне SQL происходит соединение с таким количеством таблиц, сколько типов имеет реквзит. Правильный вариант: "Выразить(Поле Как Документ.ПоступлениеТоваровУслуг).Какой-тоРеквизит"
44 1976vas
 
20.02.15
08:53
(42) Я там неделю уже, примеров не нашел.
(43) Спасибо!
45 1976vas
 
20.02.15
09:12
(43) Заинтересовался. Вот здесь хорошо описана ситуация http://zapros-1c-8.ru/interest/11-express
46 ShoGUN
 
20.02.15
09:17
(43) Можно явное соединение ещё сделать.
47 kosts
 
20.02.15
09:18
(45) В статье ошибка или как. Написано число обрезается, у меня же округляется...
ВЫБРАТЬ    ВЫРАЗИТЬ(1100.68794 КАК число(10,0)) => 1101
48 Адимр
 
20.02.15
09:20
(2) Пункт 2 из разряда городских легенд.
Производительность не возрастает, я тестил.
49 vde69
 
20.02.15
09:23
(47) ВЫРАЗИТЬ - округляет
50 Зеленый пень
 
20.02.15
09:37
(0) tempdb и ldf на SSD - это хорошо.
Основную базу - на хороший raid-10, если нет денег на корпоративные SSD.
Побольше памяти SQL.
Вот и вся оптимизация.
51 vde69
 
20.02.15
09:47
(50) а как-же параллелизм, лимиты по памяти/камням и т.д.
52 Gepard
 
20.02.15
09:51
1С-ники забывают про индексирование полей в 80% случаев
53 1976vas
 
20.02.15
09:55
(52) А как определить, что, допустим, для той или иной таблицы нужен индекс?
54 1976vas
 
20.02.15
09:55
(53) По размеру таблицы?
55 Господин ПЖ
 
20.02.15
09:56
(54) покурить запрос и его план в QA
56 Лефмихалыч
 
20.02.15
09:57
(0) может начать с замеров производительности, чтобы не тыкать пальцем куда попало, а сразу начать оптимизировать именно то, что требует оптимизации?
57 vde69
 
20.02.15
09:58
(53) по преспективам использования...
58 1976vas
 
20.02.15
10:04
Сложен путь оптимизации... Мне говорили, что у нас SQL супер настроена, в итоге ни объем памяти не выделен, ни параллелизм не выставлен, ни автоувеличение, tempdb вместе с базой. Завтра внесем изменения, посмотрим производительность.
59 Господин ПЖ
 
20.02.15
10:05
надеюсь хоть бэкапы формируются корректно
60 Гёдза
 
20.02.15
10:06
Начинать нужно с ЗАМЕРОВ!!!
61 Гёдза
 
20.02.15
10:08
(53) скуль обычно собирает статистику и сам знает каких индексов не хватает
62 1976vas
 
20.02.15
10:08
(60) Замеры у Гилева денег стоять )), буим пока на глаз, по бухам.
63 1976vas
 
20.02.15
10:09
(61) А как у него спросить?
64 Гёдза
 
20.02.15
10:09
(62) разве? замеры вроде бесплатны - интерпретация  стоит денег
65 1976vas
 
20.02.15
10:10
(59) Не формируются бэкапы, вся система админом моментальным снимком копируется по ночам, сказали не лезть мне в бэкапы )
66 1976vas
 
20.02.15
10:11
(64) Самый важный, анализ загруженности оборудования - платный.
67 Гёдза
 
20.02.15
10:12
А как торможение то проявляет себя?
68 Господин ПЖ
 
20.02.15
10:12
>сказали не лезть мне в бэкапы

х.вно вопрос... тогда пусть обеспечивают поднятие копии базы на любой день/час/секунду по свистку за мин. время
69 Гёдза
 
20.02.15
10:12
(66) счетчики оборудования настроить - можно самому
70 1976vas
 
20.02.15
10:13
(64) Или имеется ввиду, что на клиенте логи создадутся и их читать? Дык это пока для меня на уровне фантастики.
71 Господин ПЖ
 
20.02.15
10:14
начни с счетчиков
72 1976vas
 
20.02.15
10:14
(68) Не достанут, делается раз в сутки и не проверяется.
73 ShoGUN
 
20.02.15
10:14
(65) Дебилизм. Только место впустую жрать. Это не хостинг, который россыпями файлов оперирует, надо копировать всего ничего, зато очень тщательно, а не раз в сутки.
74 Гёдза
 
20.02.15
10:14
(72) это не твои проблемы. Зачем тебе за них переживать?
75 Господин ПЖ
 
20.02.15
10:14
может там диск банально захлебывается очередью
76 Господин ПЖ
 
20.02.15
10:15
(72) они там у вас не акуели?...
77 Гёдза
 
20.02.15
10:16
Порядок действий по оптимизации:
0. ВЫЯСНИТЬ КАК ПРОЯВЛЯЮТСЯ ТОРМОЗА И ПОЛЬЗОВАТЕЛЕЙ
1. Сделать замеры подтверждающие 0
2. оптимизировать узкие места
78 Господин ПЖ
 
20.02.15
10:16
(74) >это не твои проблемы.

когда база навернется а востанавливаться будет не с чего - будут друг другу эти басни рассказывать на бирже труда
79 1976vas
 
20.02.15
10:16
Самое интересное - потом мне говорит мой начальник, сисадмин - посмотри там что-то с 1с)
(78) Согласен, а может и я один
80 Господин ПЖ
 
20.02.15
10:17
>вся система админом моментальным снимком копируется по ночам

дебилы...
81 ShoGUN
 
20.02.15
10:17
(77) +1
82 1976vas
 
20.02.15
10:19
Системный монитор и справка помогут мне для анализа?
83 1976vas
 
20.02.15
10:21
(77) Для этого подключил сервис Гилева - анализ долгих запросов, получил данные, но что мне с ними делать не знаю.
84 Господин ПЖ
 
20.02.15
10:24
(82) еще инет есть
85 Гёдза
 
20.02.15
10:33
(83) если сам не можешь - то позовите специалиста
86 1976vas
 
20.02.15
10:38
(85) Такая корова нам нужна самому)), надо учиться.
87 ShoGUN
 
20.02.15
10:43
(86) Ну учись. Обращайся, если что. Я конечно не супер-спец по оптимизации, но опыт кое-какой есть. К тому же тут есть vde69, который на скуле собаку съел.
88 Гёдза
 
20.02.15
10:43
какие запросы самые долгие то?
89 1976vas
 
20.02.15
10:53
(87) Спасибо большое!
90 1976vas
 
20.02.15
10:54
(88) Счас, зайду в облако
91 Гёдза
 
20.02.15
10:56
давай сюда логин - пароль, поможем
92 vde69
 
20.02.15
10:57
(62)>>>Замеры у Гилева денег стоять )), буим пока на глаз, по бухам.


я тебе давал ссылку на бесплатный анализатор...
93 1976vas
 
20.02.15
10:57
94 1976vas
 
20.02.15
10:59
(92) Да, спасибо, я не знаю как его запустить, там текст запроса, а потом строка запуска и как их увязать - не знаю.
95 1976vas
 
20.02.15
11:00
(93) + Это я на своем компе, на копии запускал Расчет себестоимости.
96 ShoGUN
 
20.02.15
11:04
(94) Management Studio открой, подключись к базе master, там выполни код, сначала первый, затем
EXEC track_waitstats 300, 1
97 1976vas
 
20.02.15
11:05
(96) Спасибо, сейчас попробую.
98 Господин ПЖ
 
20.02.15
11:05
Сидорова надо выпилить... от него вся бесовщина
99 1976vas
 
20.02.15
11:06
(98) Эт я )), не надо меня пилить...
100 Господин ПЖ
 
20.02.15
11:06
(99) попался сукин сын прелюбодей Якин...
101 Гёдза
 
20.02.15
11:09
У тебя запись тормозит. Вангую большое количество блокировок.
Проведение по партиям онлайн?
102 Гёдза
 
20.02.15
11:10
(101) Когда я занимался оптимизацией - эта проблема была в 99% случаев
103 Гёдза
 
20.02.15
11:10
Собственно это была одна из причин по которой я больше этим не занимаюсь )))
104 1976vas
 
20.02.15
11:11
(101) Это один документ Расчет себестоимости проводился, он не провелся, не выдержал я, вырубил.
105 ShoGUN
 
20.02.15
11:14
(101) Запись там конечно тоже тормозит, но самый длительный запрос - SELECT. Вангую Table Scan :)
106 Гёдза
 
20.02.15
11:15
(105) Этот селект относится к 1 строчке: набор.Записать()
107 1976vas
 
20.02.15
11:15
(105) Если тормозит запись, тогда переход на более скоростной диск даст прирост производительности?
108 ShoGUN
 
20.02.15
11:15
+(105) Либо джоины неявные из-за точки.
109 Гёдза
 
20.02.15
11:16
(107) на ссд должно помочь
110 Гёдза
 
20.02.15
11:16
Собственно причина тормозов  - это расчет себестоимости параллельно с остальными. Переходите на ночное
111 1976vas
 
20.02.15
11:18
(110) Я просто замеры делал, а так бухи такие длительные делают по выходным и ночам.
112 1976vas
 
20.02.15
11:19
(108) Сообщение 2714, уровень 16, состояние 3, процедура get_waitstats, строка 1
В базе данных уже существует объект с именем "get_waitstats".
Сообщение 2714, уровень 16, состояние 3, процедура track_waitstats, строка 28
В базе данных уже существует объект с именем "track_waitstats".

Это сообщил первый запрос, второй висит на выполнении запроса уже минут 5
113 ShoGUN
 
20.02.15
11:20
(106) Да, прав.
(111) Так жалуются на расчёт себестоимости, или на что-то ещё, помимо него?
114 ShoGUN
 
20.02.15
11:20
(112) Он должен висеть 300 минут))
115 ShoGUN
 
20.02.15
11:20
То есть 5 часов.
116 ShoGUN
 
20.02.15
11:21
Замеры раз в минуту.
117 Гёдза
 
20.02.15
11:21
Так вроде статистика сама по себе собирается по умолчанию, е сли специально не отключать
118 Гёдза
 
20.02.15
11:22
(111) тогда возьми паузу 1 день. Запрети бухам в этот день рассчитывать себестоимость.
Посмотришь статистику и спросишь: А были ли тормоза?
119 1976vas
 
20.02.15
11:24
(114) ))
(113) Нет, у меня была тема Конфликт блокировок при выполнении транзакции. , участились взаимоблокировки при выполнении транзакции.
120 1976vas
 
20.02.15
11:26
(119) + даже не при расчете себестоимости, обычные операции - Отчет производства за смену, Реализация, формировании отчетов.
121 Гёдза
 
20.02.15
11:27
(119) поставь сервис по блокировкам
122 Гёдза
 
20.02.15
11:27
(120) проводки, партии он-лайн пишешь?
123 Гёдза
 
20.02.15
11:28
Ничто тебе не поможет, если ты партии онлайн пишешь.
Никакой сервер и никакие диски
124 1976vas
 
20.02.15
11:29
(121) Ставил, что-то я недопетрил как его настроить, данные не приходят. Нашел скрипт небольшой, который показывает виновника, по нему нашел зависший удаленный сеанс, отрубил и все заработало. Пока больше не было блокировок.
125 1976vas
 
20.02.15
11:29
(123) Как понять онлайн?
126 ShoGUN
 
20.02.15
11:29
(119) см (123). Делай отложенное проведение по партиям
127 Гёдза
 
20.02.15
11:29
в момент проведения документа
128 Зеленый пень
 
20.02.15
11:44
(51) Параллелизм не так страшен, как его малюют.
У нас был один мегаотчет, который до отключения параллелизма грузил все ядра сервака до 100%. Уменьшили параллелизм - грузит меньше. Но обычные запросы, как правило, и так грузят 1 ядро.

Вся "тонкая настройка" железа нужна, когда уже отлажена логика в 1С. А тот, кто сумел её отладить, он и в SQL понимает и сам подскажет, что и как настроить в железе.
129 1976vas
 
20.02.15
11:55
(128) Учиться и учиться, мне это нравится.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой