|
Оптимизация 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) Учиться и учиться, мне это нравится.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |