Имя: Пароль:
1C
1C 7.7
v7: 1c и sgl 2000
0 Zina_zp
 
19.03.14
16:10
Здравствуйте! Прошу помощи у спецов 1с7.7 на sgl 2000.
Описание проблемы : есть БД  1с 7.7 (бух+опер.учет) около 50 гб , инф за период 2006-2014 гг.
Было решено сделать свертку БД за 2006-2010гг.Были созданы опер с остатками, помечены на удал доки и средствами 1с были удалены помеченные на удаление доки.
Отчет ОСВ по счету за 4кв 2013 г с разворотом по аналитике до свертки
выполнялся 48 сек, 4сек сам запрос (Ит.ВыполнитьЗапрос(Дата1, Дата2, Счет) ) и 44сек дальнейшая выборка. после свертки этот же отчет (данные те же) выполняется 81 сек( 18сек запрос и 63 сек выборка).
Для оптимизации работы БД сделали след. процедуры ( средствами скл ):
  дефрагментация индексов
  обновление статистики
  очистка процедурного кэша
  шринк БД
Отчет по-прежнему выполняется 81 сек.
Пожалуйста, помогите советом как ускорить работу программы, sgl  знаю плохо , только учу.
  Заранее благодарю.
1 Кир Пластелинин
 
19.03.14
16:18
в каком порядке выполняли
" дефрагментация индексов
  обновление статистики
  очистка процедурного кэша
  шринк БД"?
2 МихаилМ
 
19.03.14
16:29
+ дефрагментация файла бд.
3 Zina_zp
 
19.03.14
16:35
Действия выполнялись в описанном порядке
4 Zina_zp
 
19.03.14
16:36
Подскажите  правильный порядок
5 Кир Пластелинин
 
19.03.14
16:46
могу ошибаться, но шринк приводит к фрагментации индексов, поэтому все операции по перестроению и дефрагментации индексов нужно выполнять уже после шринка.
6 Zina_zp
 
19.03.14
16:54
Значит надо так
шринк лога
шринк БД
Дефрагментация индексов
дефрагментация БД
Обновление статистики
очистка процедурного кэша
?
DBReindex  устраняет дефрагментацию индексов или нет?
7 ДенисЧ
 
19.03.14
16:54
(6) да.
Но эти процедуры вряд ли спасут.
8 Zina_zp
 
19.03.14
16:58
что же делать? в чем причина?
9 ДенисЧ
 
19.03.14
17:02
нужно на месте глазами смотреть...
10 Zina_zp
 
19.03.14
17:05
Подскажите, пожалуйста, на что обратить внимание.
Какие возможны варианты проблем?
11 ДенисЧ
 
19.03.14
17:08
Я бы начал с профайлера, поймал запросы и покрутил их в скуле. Чтобы понять, где тормоза
12 Z1
 
19.03.14
17:16
(10) С подробного описания  железа sql сервера , сколько пользователей работает в базе, какой sp установлен на ms sql
и.т.д

ну и 50 гб это до шринка или после ?
13 Z1
 
19.03.14
17:19
+ 12 ну и если сам сервер до 2010 года то может имеет
смысл расссмотреть купить и новый сервер (железо )
и новый ms sql ( софт )
14 Z1
 
19.03.14
17:21
(11) выложи также результат запроса по твоей базе

select  count(*) from _1sentry (nolock)
union all
select  count(*) from _1sjourn (nolock)
15 Z1
 
19.03.14
17:22
(14) адресовано к 10
16 Zina_zp
 
19.03.14
17:59
Сейчас вопрос не в том как заставить скл работать быстрее вообще ( хотя и это у нас большая проблема ), а в том почему на одном железе ( для тестов взяли отдельный комп винда 7, установили  sgl  2000,на компе работает только один админ),
на одном сервере sgl две базы 1c выполняют   один отчет ( стандартная оборотно-сальдовая ведомость по счету) так по разному,до свертки 48 сек, после обрезки 81 сек, после всех оптимизаций те же 81 сек . В чем может быть причина?
17 Z1
 
19.03.14
18:02
(16) на этот вопрос Вы ответели в (0) выпонив шринк,
а насколько это фатально  и могут дать Ваши ответы на 12-15
18 Z1
 
19.03.14
18:12
(16) ну что то не понял 16 Вы сравниваете работу одной мощной рабочей станции с работой всего sl сервера, ну подключите к этой рабочей станции 30 пользователей и запустите тоже самое.

на одном sql сервере две базы могут давать разные результаты из-за разного распределения баз по дискам.

т.е. я запутался задайте более короткий определенный Ваш вопрос.
19 Zina_zp
 
19.03.14
18:36
Попробую сформулировать вопрос еще раз.
Мне надо было обрезать базу ( свернуть доки за 5 лет).
Для тренировки был взят отдельный комп с виндой7. На нем поставили скл 2000. На этом компе пользователи не работают.
К серверу присоединили нашу базу 1с. Проверили время выполнению оборотно-сальдовой по опред. счету. Время выполнения 48 сек ( запускали отчет неоднократно).  Эту базу оставили как эталон. Дальше к серверу присоединили вторую базу такую же.Проверили оборотку - 48 сек. Во второй базе средствами 1с сделали свертку( внесли остатки и удалили помеченные на удаление доки средствами 1с ). Проверили отчет- 81 сек. Начали делать второй базе дефрагментации , шринки. Ничего не помогло.Те же 81 сек. Вопрос что надо сделать со второй базой, чтобы отчет выполнялся  48 сек, как и в первой базе?( а надеялись. что после свертки будет быстрее )
20 Zina_zp
 
19.03.14
18:36
Базы находятся на одном диске.
21 Zina_zp
 
19.03.14
18:43
по запросу (14 )
7783609
496625
22 ДенисЧ
 
19.03.14
18:55
Если ничего не помогает, попробуйте выгрузку-загрузку :-)
23 Belomor
 
19.03.14
19:01
(19) "после свертки будет быстрее" - это вы зря. SQL для 7.7 при стандартном использовании дает возможность держать базы хоть терабайтного объема, а для увеличения быстродействия надо использовать 1С++ либо прямые SQL-запросы
24 Belomor
 
19.03.14
19:03
(22) Ему нужно патченный релиз искать, где снимается ограничение на объем файла выгрузки, при таких объемах-то
25 Belomor
 
19.03.14
19:06
+(22)
Плагин для лечения выгрузки и загрузки больших баз в 1С 7.7

Описание проблемы:
http://www.kb.mista.ru/article.php?id=493

Файл для скачивания:
http://x-romix.narod.ru/Unload_Dat_Fix.rar
26 Z1
 
19.03.14
19:57
(25) да нет скорее всего они  sql базу скопировали целиком
без всякой загрузки выгрузки.
27 Z1
 
19.03.14
19:59
(19) опишите диски вашего другого сервера,
процентов на 90% там не сделано выравнивание секторов.
также скорее всего там с точки зрения sql сервера практически никакая дисковая система.

Создав и обрезав вторую базу Вы на ней получили внешнюю
файловую фрагментацию и большую внутреннюю фрагментацию страниц.
Избавившись от обоих пунктов Вы получите одинаковое время выполнения вашего запроса.
28 Z1
 
19.03.14
20:15
(19) Вот Вам еще легко выполнимый совет - поставьте 1с++
даже если Вы его не испоьзуете получите улучшение производительности.
29 ДенисЧ
 
19.03.14
20:16
(28) на запросе - не получит...
30 ДенисЧ
 
19.03.14
20:17
И так ещё раз...
Сервер SQL, на котором лежат быстрая и медленная базы - один и тот же?
31 Z1
 
19.03.14
20:18
(29) на отдельно взятом запросе(черном,нечерном) не получит,
а на том же самом обходе результа этого запроса получит.
32 Belomor
 
19.03.14
21:36
(26) Автору и посоветовали сделать выгрузку-загрузку штатными средствами 1С
33 Z1
 
19.03.14
21:54
(32) Да на базе 50 гб и 8 милионов проводок  это нереально
и не нужно.
34 Belomor
 
19.03.14
22:16
(33) С (25) вполне реально, только долго :)
35 Z1
 
19.03.14
22:49
(34) Во первых после обрезания и что сделанов (0)
получишь снова subj
во вторых могут повылазить косяки базы с которыми тоже придеться разбираться
в третьих большая потеря времени
36 Zina_zp
 
20.03.14
10:46
Спасибо за внимание к нашей проблеме.
Отвечаю на вопросы:
базы находятся на одном компе, одном сервере скл, одном диске.
Создавались абсолютно одинаково (новая база и Restore  из архива рабочей БД,которая на другом компе).
Замедление началось после удаления помеч. объектов.
Потом начались манипуляции в скл (дефрагметации, шринки).
И я думаю, что эти манипуляции были сделаны или не так или не те или не в той последовательности что надо.Но со знанием sgl  пока слабовато, вот и прошу помощи какими командами что надо сделать.
1с++ у нас стоит.
Выгрузку данных запустили с плагином ( иначе ошибка чтения архива ), пока идет, часики крутятся, но после появления спец. сообщения в трее  информационные сообщения о выгрузке застряли на Верификация процедур: 161. Ждем чем закончится.
37 МихаилМ
 
20.03.14
11:09
(0)
что такое "sgl" ? Что за бред ?

может ms sql ?
38 Zina_zp
 
20.03.14
11:42
именно так ms sql
39 Lionee
 
20.03.14
12:24
удалили помеченные на удаление доки средствами 1с
а в таблицах sql они так и остались висеть , вот время и увеличилось
40 Zina_zp
 
20.03.14
13:07
Как их убрать
41 Zina_zp
 
20.03.14
13:17
Выгрузка ( с плагином ) базы закончилась успешно.А с загрузкой проблема. Window7 , файл  OrdNoChk.prm есть и каталоге BIn и в каталоге конф. БД. Выдает сообщение "порядок сортировки , установленный для БД,  не совпадает с системным".
Такое сообщение еще было, когда пытались протестировать БД средствами 1с.
42 kupec
 
20.03.14
14:21
Zina_zp а сколько времени заняла пометка на удаление документов в базе данных такого объема ???? Имеется такая же задача по свертке базы, размер правда около 30 Гб, последний раз год удалялся почти сутки, теперь надо удалить 3 года....
43 Zina_zp
 
20.03.14
15:41
Свертку делали по след схеме:
1. копия базы
2.создание док. остатков
3. обработка по записи период. реквизитов, созданных доками, которые будут удалены
4.  перенести ТА назад подальше,до первого дока, который будет удаляться.
  далее в цикле по-квартально в монопольном режиме
1. обработка снятие с проведения доков
( делали сразу по 2 квартала от4 до 8 часов)
  2. выход из 1с ( обязательно )
  и подождать минут 10, иначе сервер не дает доступ к базе
  ( нельзя опять войти под тем же пользователем)
  2. копия log  файла  ( иначе растет непомерно )
  и так все 3 года.
Потом перести ТА на нужную дату (текущую), провести операции с остатками, сверить итоги.
Если все в порядке, то идем дальше по-квартально или по полгода:
1. Помечаем на удаление все непроведенные доки ( за выб. период),  Это быстро.
Потом помечали на удаление партии ( у нас в спр. партии есть реквизит, содержащий документ, который создал эту партию).Просто проверили,если этот док помечен на удаление, то и партию помечали на удаление( около 1ч.). Потом запускали обработку удаление помеченных объектов (2-3 ч если период полгода).
После обработки каждого периода ВЫХОДИТЬ из 1с, делать копию лога. Замечено, быстрее сделать по частям, чем за большой период.
З года сделали за выходные.Помечать на удаление можно и позже.
Основная теорема систематики: Новые системы плодят новые проблемы.