Файловый и клиент серверный вариант - откуда такая разница?!

Новая тема
Показывать по 10 20 40 сообщений
Так сказать вторая, но не меньшая, проблема к https://buh.ru/forum/thread.jsp?id=452544..

Платформа:
8.1.13.41
Конфигурация: Бухгалтерия предприятия, редакция 1.6.11.7
Сервер 1С: HP DL160G5, 5Gb, аппаратный raid-1, Windows Server 2003 R2 Enterprise Edition
Сервер БД: 2*Intel Xeon, 8Gb, raid-5, Windows Server 2003 Standart Edition x64, MS SQL 2005 x64
Сервер 1С и БД в одном 100Mb/sec switch-е, про рекомендацию в 1Gb знаю, но пока работаем на том, что есть.
Размер базы: меньше 1Gb

Проблема:
Очень долгое проведение документа "Закрытие месяца", а именно операции "Закрытие счетов 20, 23, 25, 26 и корректировка себестоимости выпуска" в том случае, если выполняется операция по НУ. Привожу ~ результаты времени проведения документа:
База на локальной машине (БУ и НУ): 12 мин
Клиент сервер (только БУ): 05 мин
Клиент сервер (только НУ): 40 мин - как узнать почему так долго?

Для эксперемента поставил MS SQL 2005 на обычную машину (P4, 1.5Gb, 80Gb SATA диск) и сделал закрытие 20 и 26 счета (БУ и НУ) в клиент-серверном и файловом варианте - как говорится почувствуйте разницу: 65 мин с MS SQL и 6 мин в файловом. Что может быть с SQL или сервером 1С? Я могу многое понять, но чтобы в 10-ть раз..
1) Нужно смотреть что происходит в момент закрытия месяца на сервере (загрузка процессоров, памяти, активность диска, загрузка сети).
2) Сравнивать версию SQL и файловую нужно на одном и том же сервере, что бы точно определить что это не аппаратная проблема.
3) Как у Вас обстоят дела с регламентными процедурами по обслуживанию SQL-я?
1) Добавлял все счетчики в perfmon, критической загрузки нет ни на одном счетчике..
2) Сравнивал - разница больше чем в 5-ть раз не в пользу SQL-сервера..
3) Обновление статистики базы данных, очистка процедураного кэша СУБД, реиндексация и shrink выполняются..
Там запрос не оптимален и именно при корректировке стоимости по НУ! Поэтому SQl выбирает неоптимальный план выполнения и отсюда все задержки!
Спрошу, с надеждой в голосе, а варианты решения есть? Если не секрет - в каком месте модуля все так плохо с точки зрения SQL-сервера?
...в добавление к сообщению Prikum-а (а так же к Вашему "я все могу понять, но...") скажу, на ИТС есть статья про анализ производительности запросов SQL. Там нужно хорошо "порыть", что бы определить "чё и как", но если понять... (*многозначительно поднимает вверх указательный палец*)
сейчас точно сказать не могу, но пробегала информация на партнерском форуме! Попозже могу посмотреть решение вопроса!
Был бы очень признателен
Это "Анализ блокировок с помощью SQL Trace" или другая статья?

Edit:
Также возник вопрос - 1С:ЦУП может помочь в поисках узкого места?
"Вот нашел, не мое ! Релиз уонфигурации у вас какой?

6. В общем модуле КорректировкаСтоимости исправить строку № 789 на эту, это не обязательно, но сократит значительно время проведения:

Если СтруктураДопПараметров.Учет = "Нал"  И (НЕ СтруктураДопПараметров.Свойство("ТаблицаПеремещений")) Тогда      // создание таблицы для информации о корректируемых документах у перемещений МПЗ

7. И еще можно, но не обязательно исправить запрос находящийся внутри этого условия, так же влияет на скорость:

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


8. Готово

"
Читают тему
(гостей: 1)

Быстрый переход