Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
11 Дек 2017, 20:21
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Длительное формирование простого самописного отчета 1С 8.2  (Прочитано 4059 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Lefont

  • *
  • Сообщений: 17
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-12-06
  • Сайт: 
  • Профессия: Программист 8.1
Имеем: 1.) "Сервер": Pentium 4 3Ghz (478 сокет), 768Mb ОЗУ, старенький жесткий диск на 20 Гб. На "сервере" стоит debian 6.0.6, с самбой.
             2.) Сеть 100 Мб/с. 
             3.) Самописную конфигурацию, и соответственно самописные отчеты. Файловый вариант. Размер базы всего ни чего 70 Мб.

При формировании по сети простенького отчета, необходимо времени примерно с полминуты. При переносе БД на рабочий компьютер, и формировании на нем, не более 1-1.5 сек. С помощью встроенных средств замера производительности, было выяснено, что наибольшее время отнимает запрос (код ниже), все остальные действия занимают ничтожно малое время (хорошо если в совокупности набежит 1 с.). Как я понял, это происходит из-за того, что при выполнении этого запроса несколько раз, он каждый раз обращается к HDD по сети, что сильно замедляет работу.

Вопрос, что может помочь в данном случае лучше:
1.) Переписывание/переделывание конфигурации под клиент-серверный вариант, с последующей заменой "сервера" на более мощный. Если правильно понимаю, это позволит убрать проблему постоянного обращения запроса по сети к HDD, и все запросы будут выполнятся на нормальном железе, что так же увеличит быстродействие.
2.) Переписывать все отчеты/запросы, таким образом, что бы они одним обращением к HDD получили все необходимые данные, и уже "внутри себя" формировали нужные данные для подсчета (очень плохо себе это представляю, т.к. мало работал с компоновкой данных в запросе).
3.) Или же что то не так в коде? При необходимости предоставлю целиком весь код отчета.

Код запроса:
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               | ИсторииБолезни.НомерИБ,
               | ИсторииБолезни.НомерИБОтделения,
               | ИсторииБолезни.СрокЛечения
               |ИЗ
               | РегистрСведений.ИсторииБолезни КАК ИсторииБолезни
               |ГДЕ
               | ИсторииБолезни.ДатаВыписки >= &Дата1
               | И ИсторииБолезни.ДатаВыписки < &Дата2
               | И ИсторииБолезни.Исход <> &Исход
               | И ИсторииБолезни.НаходитсяВОтделени = &НаходитсяВОтделени
               | И ИсторииБолезни.Контингент = &Контингент";
   
Запрос.УстановитьПараметр("Дата1", Отчет.Дата1);
Запрос.УстановитьПараметр("Дата2", Отчет.Дата2);
Запрос.УстановитьПараметр("Исход", Перечисления.Исход.ПустаяСсылка());
Запрос.УстановитьПараметр("НаходитсяВОтделени", НаходитсяВОтделени);
Запрос.УстановитьПараметр("Контингент", Контингент);

РезЗапроса = Запрос.Выполнить();


Оффлайн SlazZy

  • ***
  • Сообщений: 149
  • РЕПУТАЦИЯ: 15
  • КПД: 10%
  • Регистрация: 2012-04-28
  • Сайт: 
  • Профессия: Программист 1С
Честно говоря хотя запрос и можно немного оптимизировать, но в целом ничего критичного в нем нет. Покажите структуру измерений регистра, это важно.

Оффлайн Lefont

  • *
  • Сообщений: 17
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-12-06
  • Сайт: 
  • Профессия: Программист 8.1
Разобрался в чем дело, регистр не был проиндексирован:bleh:

Оффлайн SlazZy

  • ***
  • Сообщений: 149
  • РЕПУТАЦИЯ: 15
  • КПД: 10%
  • Регистрация: 2012-04-28
  • Сайт: 
  • Профессия: Программист 1С
Разобрался в чем дело, регистр не был проиндексирован:bleh:
примерно про это я и хотел сказать когда спрашивал про структуру регистра :)

Оффлайн anonimous

  • *
  • Сообщений: 21
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-03-19
  • Сайт: 
примерно про это я и хотел сказать когда спрашивал про структуру регистра
капитан очевидность как всегда все знал, однако не сказал, великий учитель наверное, и причем здесь структура регистра и индексация в запросе


Оффлайн SlazZy

  • ***
  • Сообщений: 149
  • РЕПУТАЦИЯ: 15
  • КПД: 10%
  • Регистрация: 2012-04-28
  • Сайт: 
  • Профессия: Программист 1С
апитан очевидность как всегда все знал, однако не сказал, великий учитель наверное, и причем здесь структура регистра и индексация в
ну, учитывая то, что вы это спрашиваете - для вас ни при чем:) весь смысл вашего поста это троллинг, посему мне лень отвечать как связана структура регистра и индексация...
За инфой гуглите "кластерный индекс".


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
163 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
56 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
36 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
28 Сообщений
BuhRust
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 325
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal