Имя: Пароль:
1C
1С v8
Какой рейд оптимален под SQL на котором крутится УПП
0 BigShmax
 
25.02.13
18:10
В УПП  около 130-150 аткивных пользователей - размер БД 180 гигов.   сейчас вижу тонкое  место именно дисковое пространство.

PS:    оперативы  сейчас 32 Гига. планирую прокачать до 128.
1 Джинн
 
25.02.13
18:10
10, 50
2 rs_trade
 
25.02.13
18:21
(0) разнести mdf и ldf по разным дискам. каждый диск это отдельный рейд контроллер.
3 ssh2006
 
25.02.13
18:22
10
4 thargon
 
25.02.13
18:26
10 под mdf, и отдельный 10 (для настоящих мачо - 0) под ldf и tempdb.
5 МихаилМ
 
25.02.13
18:26
контроллер с >=512 мегабайтами кэш + 6 рейд.
+ озу >=24 гига озу для ms sql

для 1c все остальное - ерунда: отдельные контролеры; диски
под temp.

кэширование все нивелирует.

как в фильме денди3 : все вымывает кофе.
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
настроил  - пособирал 5 минут

http://s1.ipicture.ru/uploads/20130226/aAVYSrmf.jpg
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 тысяч   толпу запросов  я разберусь хотя бы  более полумиллиона :-)