|
Какой рейд оптимален под SQL на котором крутится УПП | ☑ | ||
---|---|---|---|---|
0
BigShmax
25.02.13
✎
18:10
|
В УПП около 130-150 аткивных пользователей - размер БД 180 гигов. сейчас вижу тонкое место именно дисковое пространство.
PS: оперативы сейчас 32 Гига. планирую прокачать до 128. |
|||
6
Fynjy
25.02.13
✎
18:28
|
10+
|
|||
7
BigShmax
25.02.13
✎
18:29
|
(1) 10 это рейд, а что такое 50?
|
|||
8
Ёпрст
25.02.13
✎
18:30
|
(0)
0,10 |
|||
9
BigShmax
25.02.13
✎
18:31
|
(5) вот это непонятно : "контроллер с >=512 мегабайтами кэш + 6 рейд." ОЗУ уже сейчас как я понимаю уписывается в норму :-) но я думаю что 32 мало для таких объемов БД. но если прироста от увеличения ОЗУ не будет скажите я лучше дисков больше куплю.
|
|||
10
MadHead
25.02.13
✎
18:32
|
На данные 10. темп дб 10, лог можно на 0. Патом можно индексы вынести на отдельный массив
|
|||
11
MadHead
25.02.13
✎
18:33
|
(9) Есть же счетчик хит кєш рейтинг который показывает достаточно ли ОЗУ
|
|||
12
Lama12
25.02.13
✎
18:34
|
(7) 5+0
Так же как и 10 = 1+0 У нас 1+0. Вроде довольны. |
|||
13
Эстет хренов
25.02.13
✎
18:36
|
(7) бгг, а ты кто вообще админ или уборщица?
|
|||
14
МихаилМ
25.02.13
✎
18:40
|
(9)
тогда уж кэш до гига докупите. при таких объемах конфигурация рэйда любая просто 6-й престраивается быстрее.+ незабыть запасной диск нужно читать форумы о контроллерах. есть варианты при дисках > 4 либо > 8 > 16 тормозящих. |
|||
15
gallam
25.02.13
✎
19:59
|
(11) +1
(0) только поправка - надо проверить насколько эффективен кеш для скл, диски скорее следствие и не факт что сможете рейд Ом закрыться. Не надо соотносить размер бд и размер озу, это неправильно. П.с. вы видите узкое место, но почему то не ищите причину |
|||
16
ilpar
25.02.13
✎
20:17
|
2 рэйд 10. Если бабки есть.
ССд из дисков еще прикольнее. Но там запасных сразу купить штуки 3 |
|||
17
ilpar
25.02.13
✎
20:19
|
почему 2 рэйда? под данные и логи разные.
Для темпа наверное уже жирно еще один. |
|||
18
ilpar
25.02.13
✎
20:19
|
ну и система на рэйд 1
|
|||
19
100kg
25.02.13
✎
20:27
|
(0) я думаю 10 вполне достаточно
|
|||
20
BigShmax
26.02.13
✎
12:14
|
(11) а где сие чудо (хит кєш рейтинг) посомтреть
(13) я админю 1с мне тяжеловато с конфигурацией. (15) с удовольствием поучусь искать причину, как проверить " проверить насколько эффективен кеш" ? |
|||
21
Галахад
гуру
26.02.13
✎
12:21
|
(14) А чем 6 уровень лучше 10?
|
|||
22
krbIso
26.02.13
✎
12:26
|
(0)а как тс определил что узкое место диски?
|
|||
23
BigShmax
26.02.13
✎
12:29
|
(22) в мониторе скорость обмена достигает 180 Мб/с кажется и упирается.
|
|||
24
Галахад
гуру
26.02.13
✎
12:34
|
(23) А сейчас-то как организована дисковая система?
|
|||
25
BigShmax
26.02.13
✎
12:48
|
(24) админ утверждает что зеркало
|
|||
26
floody
26.02.13
✎
12:54
|
(25) в перфмоне счетчики "cache hit ratio" и "buffer cache hit ratio" в разделе SQL:memory manager
|
|||
27
BigShmax
26.02.13
✎
13:01
|
нашел perfmon - я как лох пользховался монитором ресурсов :-( а вот : счетчики "cache hit ratio" и "buffer cache hit ratio" в разделе SQL:memory manage не нашел :-( подскажит еплз как найти
|
|||
28
floody
26.02.13
✎
13:07
|
||||
29
BigShmax
26.02.13
✎
13:24
|
(26) это конечно круто :-), но как найцти эти данные у меня - вот в чем был вопрос :-)
|
|||
30
floody
26.02.13
✎
13:27
|
(29) на скуль сервере - добавить счетчики - дальше по скриншоту
|
|||
31
BigShmax
26.02.13
✎
13:35
|
(30) ок. а можно узнать что из этих цифирь следует?
|
|||
32
х86
26.02.13
✎
13:36
|
(0)
1.система на отдельный массив дисков 2. данные на отдельный масив 3. лог на отдельный массив 4. темп на отдельный массив 5. бекап на отдельный массив |
|||
33
floody
26.02.13
✎
13:43
|
(31) первая должна быть в идеале 100, но в самых плохих случаях не меньше 96-97-98.. как-то так.
вторая - просто общий объем памяти, который sql забрал под себя |
|||
34
floody
26.02.13
✎
13:44
|
вообще, если первая меньше 100, то уже означает, что оперативки для текущих объемов баз - не хватает
|
|||
35
BigShmax
26.02.13
✎
14:42
|
(32) 1,2,3 и 5 понятно , а где настраивается расположение tempdb ?
|
|||
36
gallam
26.02.13
✎
15:01
|
(31) Найдите счетчик Page life expentancy - его значение (в первом приближении) равно средней длительности нахождения страницы данных в кеше (в секундах). Чем больше, тем лучше - когда все хорошо выглядит пилообразно (рост, потом небольшое падение и т.д.) Значение не должно опускаться и быть долгое время менее 300 с (5 минут) - следовательно, кто-то из кеша страницы выдавливает.
|
|||
37
BigShmax
26.02.13
✎
15:31
|
||||
38
gallam
26.02.13
✎
16:36
|
(37) Интересна динамика (график) и где Page life expentancy?
|
|||
39
Trusty
26.02.13
✎
16:56
|
(0) настраиваешь из максимума количества дисков (которое поддерживает рейд-контроллер и позволяет бюджет) один рейд 1+0, его делишь на LUNы каждый для своей нужды, например как в (32). Вообще рекомендую почитать теорию про рейды, от чего в них зависит скорость чтения и записи - станет все намного яснее, масса вопросов уйдет.
|
|||
40
Trusty
26.02.13
✎
17:00
|
+(39) тут еще надо учитывать важный момент про соотношение операций записи или чтения, которое у тебя будет с базой, то есть от того, что пользователи больше делают в УПП.
И еще про дисковую подсистему много написано в MS TechNet в документации по MS SQL, также рекомендую ознакомиться, чтобы понимать принципы, а не гадать на кофейной гуще. |
|||
41
BigShmax
26.02.13
✎
17:19
|
(38) ща все будет
|
|||
42
BigShmax
26.02.13
✎
17:24
|
(38)
http://s1.ipicture.ru/uploads/20130226/ZxUhUIw9.jpg Page life expentancy (39)(40) хотелось бы знать вообще из практики сколько оперативы нужно и как понять что она нужна tit? и сколько ее нужно. диски нужны оператива нужна, но и того и второго в достатке не пробью я сейчас. |
|||
43
BigShmax
26.02.13
✎
17:42
|
про рейды все понял, какую инфу, где искать и что читать. как определить минимальный и нормальный объем ОЗУ на SQL сервере?
|
|||
44
Trusty
26.02.13
✎
18:46
|
(42), (43) - про память для SQL читай там же. Хотя принцип простой - чем больше, тем лучше. Хотя с другой стороны еще крайне важный момент скорость процессора.
На самом деле лучше тебе в поисковиках посмотреть про обзоры, сравнения, тесты и т.п. Есть масса информации о влиянии конкретных параметров железа на быстродействие и в общем и применительно к 1с. Возможно необходимо поработать над сервером 1с, а не над sql, ведь все работает в связке. |
|||
45
MMM9000
26.02.13
✎
18:58
|
зеркальный рейд
|
|||
46
gallam
27.02.13
✎
09:01
|
(42) Это PLE - на картинке другие счетчики?
Но если у PLE такие значения минимальные, то теперь надо проанализировать какие запросы приводят к этому (то есть вытесняют данные из кеша). Для этого профайлер SQL запустить надо и в запросах ориентироваться на колонку Reads (логические чтения). Чем число больше для запроса, тем он существеннее на кеш влияет. Из профайлера SQL должен собрать информацию по таким запросам и их анализировать (по индексам, плану выполнения). Из практики: отбираешь запросы с большим 1 млн. reads. |
|||
47
VladZ
27.02.13
✎
09:09
|
(32) локальный бэкап можно хранить на обычном диске.
|
|||
48
Галахад
гуру
27.02.13
✎
09:10
|
Нифига не понимаю, зачем смотреть счетчики, когда и так понятно,
что УПП на > 100 пользователей, на зеркале работать нормалаьно не может. |
|||
49
pmb
27.02.13
✎
09:13
|
Кроме файлов своей базы 1С может нехило грузить tempdb на больших запросах. По сути в ней хранятся временные таблицы и при выполнении запроса идет запись в эту БД.
|
|||
50
VladZ
27.02.13
✎
09:23
|
+47 Подробнее так:
1. система - на зеркале (2 диска). 2. данные - на 10м рейде (4 диска). 3. лог - на 10м рейде (4 диска). 4. темп - на отдельном рейде. Тут возможны варианты. Можно на обычный диск. Можно прикрутить РАМ-диск и в настойках SQL указать в качестве первого пути - рам-диск. В качестве второго - диск. (считаем по-максимум, 4 диска). 5. бекап на отдельный диск. (Один диск). Итого: 16 дисков (один запасной). |
|||
51
ptiz
27.02.13
✎
09:25
|
(23) Очередь к HDD есть? Уверен на 100%, что есть.
128 оперативы на сервер в наше время - это минимум. 32 - это обычный десктоп. |
|||
52
Галахад
гуру
27.02.13
✎
09:25
|
(50) Чем два 10-х раида по 4 диска, лучше 1 1-го раида на 8 дисках?
|
|||
53
Галахад
гуру
27.02.13
✎
09:26
|
(52)+
Чем два 10-х раида по 4 диска, лучше одного 10-го раида на 8 дисках? |
|||
54
gallam
27.02.13
✎
10:04
|
(48) Счетчики смотрят, чтобы как раз понимать что происходит и что необходимо делать. "УПП и количество пользователей больше 100" - слишком большой уровень и не о чем не говорит, кроме организации работы.
На мой взгляд план анализ должен быть следующий: 1. Смотрим на счетчики (показатели системы) по диску, процессору, сети, памяти (кеш). 2. Если диск узкое место (очереди огромные), это не значит что надо покупать новое СДХ (не на этом этапе анализа), посмотреть причину. 3. На сервере СУБД (как правило) причина в "проседании" кеша (по графику PLE выше), но пока из этого нельзя сказать, что надо покупать ОЗУ дополнительное. 4. Посмотреть кто вытесняет данные из кеша, окажется есть ряд запросов, которые неоптимальны по READS. Останется оптимизировать запросы. А дальше: - Не запросов тяжелых, кеш не проседает, диск не тормозит. Я не говорю, что покупка диска или доп. ОЗУ не повлияет на ситуацию, но большая вероятность, что улучшение с таким подходом будет недостаточное. Другая ситуация - если все оптимально по запросам и алгоритмам, но информационный поток на сервер БД огромный и диски не выдерживают, то оптимизируют СДХ и прочее. 1С создает 95% нагрузки на чтение, 5% на запись. Скорость чтения очень сильно зависит от кеша СКЛ, а скорость записи - от диска. |
|||
55
Галахад
гуру
27.02.13
✎
10:14
|
(54) Для такой работы квалификации ТС может и не хватить, значит нужно будет привлекать исполнителя. Возможно его придется привлекать при каждом обновлении УПП.
С другой стороны разовое вложение в железо. Если ТС в столице, то можно взять сервер на прокат и провести нагрузочное испытание. |
|||
56
BigShmax
27.02.13
✎
10:49
|
(55) ни понял при чем тут обновление УПП.
квалификация такая вещь , ее можно наращивать. Подскажите какие счетчики поставить чтобы определить очередь на чтение с дисков? замерю выложу данные (46) на картинке PLE некрасиво? займусь профайлером сейчас. |
|||
57
ssh2006
27.02.13
✎
10:58
|
Вовсе не обязательно систему, логи на отдельное зеркало, массивы сажать. Лучше все эти диски включить в общий массив, увеличив тем самым его скорость - больше шпинделей-> больше скорость. А нарезку нужную этого одного массива из всех дисков уже как надо сделать средствами рейд контроллера.
|
|||
58
Trusty
27.02.13
✎
11:05
|
(57) поддерживаю, именно об этом я и говорил еще в (39).
|
|||
59
skeptik_m
27.02.13
✎
11:19
|
(57) Теоретически все верно, но есть ньюансы (с). Тут встает вопрос что там за контролер и как он настроен. Вполне возможна ситуация, когда число шпинделей увеличили вдвое, а скорости чтения и записи не возрасли (а возможно даже упали), потому что узким местом является сам контролер (или слабый сам по себе или настройки выставлены кривые). В мощных контролерах настроек чуть менее чем дофига, многие уникальны для данной фирмы и модели. Настройка "крутых" дисковых массивов - это отдельная специальность, причем с заточкой под конкреного производителся, помимо "общей теории рэйдов" требуется изучение фич и багов конкретных моделей девайсов - в обшем все как у всех.
А вот поставив еще один точно такой же контролер и распредлив файлы между ними, ты рискуешь только в призводительность системной шины уперется, а так хоть какой-то эффект гарантирован. |
|||
60
Галахад
гуру
27.02.13
✎
11:22
|
(59) Не обязательно RAID-контроллер самому настраивать.
Пусть поставщик настраивает. |
|||
61
skeptik_m
27.02.13
✎
11:26
|
(60) А тут все как в 1С - бесплатно потавщик настраивать не будет, оплата почасовая, причем за деньги может прислать хорошего спеца, а может стажера или раздолбая, и если Вы сами не спец, то отличить первого от второго сходу будет сложно.
|
|||
62
skeptik_m
27.02.13
✎
11:30
|
Ну еще одна засада с настройками контролеров - с изменением характера нагрузки оптимальные настройки могут стать неоптимальными. То есть нужно мониторить и иногда перенатсраивать, а не чисто разовое мероприятие.
Если доступа к спецам нет, то наращивать число контролеров - менее рискованная стратегия, чем наращивать число шпинделей на одном контролере. |
|||
63
Галахад
гуру
27.02.13
✎
11:38
|
(62) Ну если брать с IP KVM, проблем с доступом к специалисту не будет.
|
|||
64
ssh2006
27.02.13
✎
11:47
|
(62) имхо - через >|<опу как-то - наращивание числа контроллеров.
|
|||
65
skeptik_m
27.02.13
✎
11:48
|
(64) Наличие IP KVM - возможность удаленного доступа, что не гарантирует
1) Наличия бюджета на оплату специалиста. 2) Доступа к грамотному и ответсвенному специалиста. 3) Наличия разрешения от безопасников на удаленный доступ. |
|||
66
skeptik_m
27.02.13
✎
11:50
|
(64) Я не спорю что через попу. но вжизни много чего приходится делать через попут потому что правильные и красивые решения по тем или иным причинам недступны. Пиричем эти причины проистекают, как правило, из того что что-то еще сделано через попу кем-то еще.
|
|||
67
BigShmax
27.02.13
✎
12:09
|
отсортировал в Profiler reads на более миллиона
за 15 минут вылезло 10 строк. 7 из них статусом - Audit Logout 2 SQL:BathCompleted и на этот момент уже 3 RPC:Completed уже 5 - RPC:Completed 2,1 миллиона записей : exec sp_executesql N'INSERT INTO #tt146 (_Q_000_F_000RRef, _Q_000_F_001) SELECT T1._Fld21426RRef, T1._Fld21422 FROM _InfoRg21421 T1 WHERE (T1._Fld21424RRef = P1)',N'P1 varbinary(16)',0xA09D9FE5517B4DF649D47CC439FDDCA4 |
|||
68
BigShmax
27.02.13
✎
12:10
|
вот пример SQL:BathCompleted на 3 миллиона записей, вопрос как выдернуть этот запрос в 1с
exec sp_executesql N'INSERT INTO #tt3 (_Q_007_F_000RRef, _Q_007_F_001RRef, _Q_007_F_002RRef, _Q_007_F_003RRef, _Q_007_F_004) SELECT T1._Q_000_F_000RRef, T1._Q_000_F_001RRef, T1._Q_000_F_002RRef, T1._Q_000_F_003RRef, CASE WHEN (ISNULL(CAST(T2.Q_006_F_002_ AS NUMERIC(38, 8)),0.0) >= ISNULL(CAST(T2.Q_006_F_003_ AS NUMERIC(27, 3)),0.0)) THEN (T1._Q_000_F_004 + CAST((CAST(ISNULL(CAST(T2.Q_006_F_003_ AS NUMERIC(27, 3)),0.0) AS NUMERIC(38, 8)) - ISNULL(CAST(T2.Q_006_F_002_ AS NUMERIC(38, 8)),0.0)) AS NUMERIC(38, 8))) ELSE T1._Q_000_F_004 END FROM #tt2 T1 WITH(NOLOCK) LEFT OUTER JOIN (SELECT T3.Q_001_F_000RRef AS Q_006_F_000RRef, T3.Q_001_F_001RRef AS Q_006_F_001RRef, CAST(SUM((T3.Q_001_F_002_ + CAST(ISNULL(CAST(T5.Q_003_F_002_ AS NUMERIC(21, 3)),0.0) AS NUMERIC(38, 8)))) AS NUMERIC(38, 8)) AS Q_006_F_002_, CAST(SUM(ISNULL(CAST(T9.Q_005_F_002_ AS NUMERIC(21, 3)),0.0)) AS NUMERIC(32, 8)) AS Q_006_F_003_ FROM (SELECT T4._Q_000_F_000RRef AS Q_001_F_000RRef, T4._Q_000_F_001RRef AS Q_001_F_001RRef, CAST(SUM(T4._Q_000_F_004) AS NUMERIC(38, 8)) AS Q_001_F_002_ FROM #tt2 T4 WITH(NOLOCK) GROUP BY T4._Q_000_F_000RRef, T4._Q_000_F_001RRef) T3 LEFT OUTER JOIN (SELECT T8._Fld21906RRef AS Q_003_F_000RRef, T8._Fld21907RRef AS Q_003_F_001RRef, CAST(SUM(T8._Fld21913) AS NUMERIC(26, 8)) AS Q_003_F_002_ FROM (SELECT T7._Q_000_F_000RRef AS Q_002_F_000RRef, T7._Q_000_F_001RRef AS Q_002_F_001RRef FROM #tt2 T7 WITH(NOLOCK) GROUP BY T7._Q_000_F_000RRef, T7._Q_000_F_001RRef) T6 INNER JOIN _AccumRg21903 T8 ON ((T6.Q_002_F_000RRef = T8._Fld21906RRef) AND (T6.Q_002_F_001RRef = T8._Fld21907RRef)) GROUP BY T8._Fld21906RRef, T8._Fld21907RRef) T5 ON ((T3.Q_001_F_000RRef = T5.Q_003_F_000RRef) AND (T3.Q_001_F_001RRef = T5.Q_003_F_001RRef)) LEFT OUTER JOIN (SELECT T12._Fld22228RRef AS Q_005_F_000RRef, T12._Fld22229RRef AS Q_005_F_001RRef, CAST(SUM(T12._Fld22233) AS NUMERIC(26, 8)) AS Q_005_F_002_ FROM (SELECT T11._Q_000_F_000RRef AS Q_004_F_000RRef, T11._Q_000_F_001RRef AS Q_004_F_001RRef FROM #tt2 T11 WITH(NOLOCK) GROUP BY T11._Q_000_F_000RRef, T11._Q_000_F_001RRef) T10 INNER JOIN _AccumRg22225 T12 ON (((T10.Q_004_F_000RRef = T12._Fld22228RRef) AND (T10.Q_004_F_001RRef = T12._Fld22229RRef)) AND (T12._RecordKind = P1)) GROUP BY T12._Fld22228RRef, T12._Fld22229RRef) T9 ON ((T3.Q_001_F_000RRef = T9.Q_005_F_000RRef) AND (T3.Q_001_F_001RRef = T9.Q_005_F_001RRef)) GROUP BY T3.Q_001_F_001RRef, T3.Q_001_F_000RRef) T2 ON ((T1._Q_000_F_000RRef = T2.Q_006_F_000RRef) AND (T1._Q_000_F_001RRef = T2.Q_006_F_001RRef)) WHERE (CASE WHEN (ISNULL(CAST(T2.Q_006_F_002_ AS NUMERIC(38, 8)),0.0) >= ISNULL(CAST(T2.Q_006_F_003_ AS NUMERIC(27, 3)),0.0)) THEN (T1._Q_000_F_004 + CAST((CAST(ISNULL(CAST(T2.Q_006_F_003_ AS NUMERIC(27, 3)),0.0) AS NUMERIC(38, 8)) - ISNULL(CAST(T2.Q_006_F_002_ AS NUMERIC(38, 8)),0.0)) AS NUMERIC(38, 8))) ELSE T1._Q_000_F_004 END > P1)', N'P1 numeric(1,0)', 0 |
|||
69
Sorm
27.02.13
✎
12:12
|
(0) Зеркало на систему, 10-ку на файлы бд, SSD или 0 на TempDB
|
|||
70
BigShmax
27.02.13
✎
12:25
|
сейчас вот пробежал Audit Logout с 13 миллионов записей !!
что это за чудо событие с таким кол-вом чтений |
|||
71
gallam
27.02.13
✎
12:42
|
(70) Audit Logout собирать не надо, это READS всей сессии.
Надо собирать только RPC:Complete и Batch:Complete. "На 3 млн. записей" - это в колонке READS 3 млн.? |
|||
72
gallam
27.02.13
✎
12:43
|
"exec sp_executesql N'INSERT INTO #tt146 (_Q_000_F_000RRef, _Q_000_F_001) SELECT
T1._Fld21426RRef, T1._Fld21422 FROM _InfoRg21421 T1 WHERE (T1._Fld21424RRef = P1)" Какого размера таблица _InfoRg21421 ? + Duration, CPU - тоже интересны колонки по нему. |
|||
73
ptiz
27.02.13
✎
12:47
|
Один хрен запросы в 1С встречаются чудовищные, всё не перепишешь.
В любом случае - добавлять ОЗУ и ставить RAID 10 с кэшем. |
|||
74
BigShmax
27.02.13
✎
12:56
|
(71) конечно READS сказали куда обращать внимание туда и смотрю.
сейчас гляну на таблицу "_InfoRg21421" |
|||
75
gallam
27.02.13
✎
12:56
|
(73) практически всегда из-за того, что не могут обнаружить запрос - покупают оборудование. Потратить 2 часа на анализ, проиндексировать поле и проблема будет решена.
Все переписывать не надо (и все запросы), обычно проблемы сосредоточены в очень ограниченном списке запросов (3-5), на них направить силы и ресурсы. Это как в медицине: болит голова у человека (возможно это следствие), вместо того, чтобы найти причину - ну, так давление улучшить, сердце полечить, пьют таблетки от головы и "вроде" как не болит. Эффективность такого "лечения" похоже с рассматриваемой ситуацией. |
|||
76
gallam
27.02.13
✎
12:58
|
(74)
Тогда пишите корректнее (68) "вот пример SQL:BathCompleted на 3 миллиона записей, вопрос как выдернуть этот запрос в 1с " - ваша фраза. При чем тут записей? Запись если что Write, а чтение Read))) |
|||
77
ХочуСказать
27.02.13
✎
12:59
|
О_о
через 10 лет, 1Сики понял, что нужен 10 рейд это успех |
|||
78
Галахад
гуру
27.02.13
✎
13:00
|
(77) Ну, 10 лет назад и зеркала хватало.
|
|||
79
BigShmax
27.02.13
✎
13:01
|
RPC:Completed
CPU - 13353 Reads - 3.3 миллиона Duration - 2340 exec sp_executesql N'SELECT T1._IDRRef FROM _Reference263 T1 WHERE T1._Fld3686RRef IN (SELECT CASE WHEN T2._Q_001_F_000_TYPE = P1 AND T2._Q_001_F_000_RTRef = @P2 THEN T2._Q_001_F_000_RRRef ELSE @P3 END AS Q_002_F_000RRef FROM #tt67 T2 WITH(NOLOCK)) GROUP BY T1._IDRRef',N'P1 varbinary(1),@P2 varbinary(4),@P3 varbinary(1)',0x08,0x0000016F,0xFF |
|||
80
gallam
27.02.13
✎
13:02
|
+ (76)
SELECT T1._Fld21426RRef, T1._Fld21422 FROM _InfoRg21421 T1 WHERE T1._Fld21424RRef = 0xA09D9FE5517B4DF649D47CC439FDDCA4 Выполните в Management Studio , как долго, сколько строчек вернет и сколько READS будет (профайлер фильтруйте по спиду MS) |
|||
81
ХочуСказать
27.02.13
✎
13:02
|
(78) они 10 лет подряд 5й предлагали, если вообще понимали о чем речь
|
|||
82
BigShmax
27.02.13
✎
13:05
|
_InfoRg21421
1 621 325 записей 1 000 621 зарезервировано кб 346 800 данные 646 784 индексы 7 024 не используются |
|||
83
gallam
27.02.13
✎
13:05
|
DBCC SHOWCONTIG('_InfoRg21421')
Выполните под правами админа и скиньте эту информацию в ветку |
|||
84
gallam
27.02.13
✎
13:06
|
(82)
Там запрос надо выполнить в (80) пункте. |
|||
85
ptiz
27.02.13
✎
13:09
|
(75) "обычно проблемы сосредоточены в очень ограниченном списке запросов (3-5)"
Это какие-то совсем запущенные случаи, тогда бы автор прибежал с конкретными документами/отчетами. В УПП столько таблиц используется, что любое проведение документа - тяжелая операция с несколькими десятками таблиц. |
|||
86
BigShmax
27.02.13
✎
13:11
|
(84) ну я обещал описать объем таблицы я описал :-)
80 ща попробую исполнить, пока не совсем знаю как но приложу все усилия :-( 83 как я понимаю исполнять там же где и 80 |
|||
87
BigShmax
27.02.13
✎
13:12
|
DBCC SHOWCONTIG scanning '_InfoRg21421' table...
Table: '_InfoRg21421' (466204811); index ID: 1, database ID: 43 TABLE level scan performed. - Pages Scanned................................: 43350 - Extents Scanned..............................: 5588 - Extent Switches..............................: 7670 - Avg. Pages per Extent........................: 7.8 - Scan Density [Best Count:Actual Count].......: 70.64% [5419:7671] - Logical Scan Fragmentation ..................: 23.73% - Extent Scan Fragmentation ...................: 80.42% - Avg. Bytes Free per Page.....................: 1788.4 - Avg. Page Density (full).....................: 77.90% DBCC execution completed. If DBCC printed error messages, contact your system administrator. |
|||
88
gallam
27.02.13
✎
13:16
|
(87) Переиндексацию таблиц давно делали? Судя по статистике - давно. Надо сделать переиндексацию (в частности этой таблицы), но сначала выполнить (80) и сведения до нее мне прислать.
(85) Это иллюзия, что проблем бесконечно много, запросов конечно не единицы, но... групп запросов не много (3-5). Чтобы было понятнее - есть ряд запросов в 1С (то есть запросов одного и того же вида), которые влияют на ресурсы, в том числе и диск 20,30,40%. И к нам приходят очень большие клиенты с проблемами производительности, поэтому для меня это очевидно. |
|||
89
gallam
27.02.13
✎
13:18
|
+ (88) - переиндексацию только в нерабочее время)
|
|||
90
gallam
27.02.13
✎
13:18
|
+ (88) с ребилдом
|
|||
91
BigShmax
27.02.13
✎
13:20
|
(80) отработал 3 секунды вернул 494958 строк. reads не отловил. не проскочил он в профайлере . там сейчас апликейшн нейм никто кроме 1cv82 server не появился. а я в студио от sa
|
|||
92
BigShmax
27.02.13
✎
13:21
|
переиндексация делается раз в неделю с субботы на воскресенье - не так давно по уму. сейчас гляну в эти выхи нормально ли закончился прорцесс
|
|||
93
BigShmax
27.02.13
✎
13:25
|
Реорганизация индекса раз в сутки
обновление статистики раз в сутки перестроение индекса раз внеделю |
|||
94
BigShmax
27.02.13
✎
13:31
|
SQL:BathCompleted - понятно это запрос
а что есть RPC:Completed ? строчек раз два и обчелся а объемыы. |
|||
95
BigShmax
27.02.13
✎
13:50
|
"InfoRg21421" "РегистрСведений.Штрихкоды"
мы с ним действительно очень активно работаем. я ведь могу индексировать время от времени именно этот регистр? как это в консоли sql сделать ? не думаю что один РС будет долго индексироваться |
|||
96
BigShmax
27.02.13
✎
14:24
|
выцепил SQL:BathCompleted на 29 миллионов записей. остались мелочи перевести его в 1с и идентифицировать :-(
|
|||
97
gallam
27.02.13
✎
14:31
|
(94) Запросы на скл можно двух видов отправлять: RPC:Completed один из них. Обычно когда sp_executesql
(95) Как часто изменяются данные в этом регистре? (96) Давайте еще раз поясню как надо поступать: 1. Собираете трассу по фильтру READS более 50000 целый день. 2. Сложно, но можно - определить по группам запросы одного вида (для этого можно использовать первую часть запроса) и оценить их затраты на READS,CPU (например, 25% READS приходится на запросы одного вида). 3. Выбираете группу с максимальным потреблением и с нее начинаете . 4. Анализируете конкретный запрос - аналогично выше рассмотренному запросу. ПО (95) Часто запрос выполняется по штрихкодам (оценить его вклад в нагрузку требуется п.2. выше)? Смысл запроса не ясен - зачем в виртуальную таблицу копировать треть всех записей!!!? |
|||
98
MSSQL
27.02.13
✎
14:46
|
3 гибридных RAID 10 (из 8 дисков каждый), один под систему, второй под базу, третий под логи. Тока понадобятся специальные контролеры которые умеют работать с SSD и HDD.
|
|||
99
MSSQL
27.02.13
✎
14:54
|
(98) + ну и естественно SAS интерфейс
|
|||
100
BigShmax
27.02.13
✎
15:23
|
(97) дописываются постоянно как при проведении заказ покупателя так и при раскрое материалов. каждому куску по штрихкоду. целесообразность попробую понять.
|
|||
101
gallam
27.02.13
✎
15:44
|
(100) если не разберетесь, то обращайтесь, есть бесплатное экспресс - обследование, можно сделать более глубокий анализ: softpoint.ru
|
|||
102
BigShmax
27.02.13
✎
15:46
|
спасибо буду иметь в виду. обращусь скорее всего в любом случае , как минимум чтобы сверить результат. квалификация как уже упоминалось :-)
|
|||
103
BigShmax
27.02.13
✎
15:50
|
хотя как я понимаю фразу : "По результатам обследования Вам представляется краткий отчет о выявленных проблемах и коммерческое предложение с указанием возможных вариантов повышения производительности"
Вы для выставления коммерческого предложения соберете статистику, рассказывать и показывать нам наши косяки Вы не будете :-( |
|||
104
BigShmax
27.02.13
✎
15:50
|
в любом случае спасибо за прямые точные ответы, я многе понял и узнал в какую сторону копать.
|
|||
105
BigShmax
27.02.13
✎
16:00
|
(97) прежде чем анализиривоать более 50 тысяч толпу запросов я разберусь хотя бы более полумиллиона :-)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |