Файловый и клиент серверный вариант - откуда такая разница?!
Показывать по
10
20
40
сообщений
- 1
- 2
20.02.2009
13:02
#1
Так сказать вторая, но не меньшая, проблема к 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.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-ть раз..
20.02.2009
13:35
#2
1) Нужно смотреть что происходит в момент закрытия месяца на сервере (загрузка процессоров, памяти, активность диска, загрузка сети).
2) Сравнивать версию SQL и файловую нужно на одном и том же сервере, что бы точно определить что это не аппаратная проблема.
3) Как у Вас обстоят дела с регламентными процедурами по обслуживанию SQL-я?
2) Сравнивать версию SQL и файловую нужно на одном и том же сервере, что бы точно определить что это не аппаратная проблема.
3) Как у Вас обстоят дела с регламентными процедурами по обслуживанию SQL-я?
20.02.2009
14:26
#3
1) Добавлял все счетчики в perfmon, критической загрузки нет ни на одном счетчике..
2) Сравнивал - разница больше чем в 5-ть раз не в пользу SQL-сервера..
3) Обновление статистики базы данных, очистка процедураного кэша СУБД, реиндексация и shrink выполняются..
2) Сравнивал - разница больше чем в 5-ть раз не в пользу SQL-сервера..
3) Обновление статистики базы данных, очистка процедураного кэша СУБД, реиндексация и shrink выполняются..
20.02.2009
14:44
#4
Там запрос не оптимален и именно при корректировке стоимости по НУ! Поэтому SQl выбирает неоптимальный план выполнения и отсюда все задержки!
20.02.2009
14:50
#5
Спрошу, с надеждой в голосе, а варианты решения есть? Если не секрет - в каком месте модуля все так плохо с точки зрения SQL-сервера?
20.02.2009
14:53
#6
...в добавление к сообщению Prikum-а (а так же к Вашему "я все могу понять, но...") скажу, на ИТС есть статья про анализ производительности запросов SQL. Там нужно хорошо "порыть", что бы определить "чё и как", но если понять... (*многозначительно поднимает вверх указательный палец*)
20.02.2009
14:56
#7
сейчас точно сказать не могу, но пробегала информация на партнерском форуме! Попозже могу посмотреть решение вопроса!
20.02.2009
15:02
#9
Это "Анализ блокировок с помощью SQL Trace" или другая статья?
Edit:
Также возник вопрос - 1С:ЦУП может помочь в поисках узкого места?
Edit:
Также возник вопрос - 1С:ЦУП может помочь в поисках узкого места?
20.02.2009
15:57
#10
"Вот нашел, не мое ! Релиз уонфигурации у вас какой?
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. Готово
"
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
- 2
Получение отчетности при установленном диске ИТС.1С 7.7 ЗИК о дополнительных страховых взносах на накопительную часть трудовой пенсии
Читают тему
(гостей: 1)