Переключение на Главную Страницу Страницы: 1 2 3 [4] 5  ОтправитьПечать
Очень популярная тема (более 25 ответов) Прошу помощи на коммерческих условия по настройке MSSQL (число прочтений - 19921 )
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Прошу помощи на коммерческих условия по настройке MSSQL
Ответ #45 - 20. Апреля 2015 :: 08:04
Печать  
Как вообще можно оптимизировать запросы, когда самые-самые тяжелые запросы при проведении - зашиты в библиотеку лицензирования, и нет возможности даже исходники поглядеть. Смотрю в трассировщике - просто ужас а не запросы, руки бы оторвать за:

SELECT ... FROM (SELECT ... FROM (SELECT ... WHERE AAA IN (SELECT ... WHERE BBB IN (SELECT ... WHERE CCC IN (SELECT ...)))))
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Прошу помощи на коммерческих условия по настройке MSSQL
Ответ #46 - 20. Апреля 2015 :: 09:56
Печать  
maljaev писал(а) 20. Апреля 2015 :: 08:04:
Как вообще можно оптимизировать запросы, когда самые-самые тяжелые запросы при проведении - зашиты в библиотеку лицензирования, и нет возможности даже исходники поглядеть. Смотрю в трассировщике - просто ужас а не запросы, руки бы оторвать за:

SELECT ... FROM (SELECT ... FROM (SELECT ... WHERE AAA IN (SELECT ... WHERE BBB IN (SELECT ... WHERE CCC IN (SELECT ...)))))

)))
Жму руку собрат по несчастью!  Круглые глаза
Что касаемо "зашиты в библиотеку" - была мысля - создать свою обработку в базе, и вместо
Код
Выбрать все
		LM3 = Новый ("AddIn.LM3");
 


вызывать
Код
Выбрать все
		LM3 = Обработки.ПодменаГлюков.Создать();
 


И продублировать внутри все методы. А уже внутри метода или переписанный кусок, или же обращаться к оригинальному коду из ключа.
  
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Прошу помощи на коммерческих условия по настройке MSSQL
Ответ #47 - 21. Апреля 2015 :: 15:00
Печать  
Да... еще вспомнил - тоже бывало сильно тормозило из-за того, что сервак с ключем защиты (он у нас стоит отдельно) или тупил, или доменная авторизация на нем тормозила, из-за чего каждое обращение к ключу шло с задержкой.
А так - проверил - у меня самая  долгая операция при проведении Z-ки - это запрос в "ОмУчетНДС.СписаниеПоНДСПродукция" - 65% времени
Убрал из последнего подзапроса фильтры на Партии и стало оно занимать 55% времени. Еще в Регистре "НДСПродукция" думаю поставить Индекс на эту самую Продукцию.

  

NDS.png ( 55 KB | Загрузки )
NDS.png
Наверх
ICQ  
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Прошу помощи на коммерческих условия по настройке MSSQL
Ответ #48 - 22. Апреля 2015 :: 11:38
Печать  
Посмотрел слегка библиотеку "lm3addin.dll" - это модуль защиты Астора, который проверяет лицензии, а заодно и выполняет какие-то запросы. Запросы она выполняет, судя по всему, через "v8.COMConnector", то есть по сути формирует на какой-то стадии нормальный удобоваримый запрос на языке запросов 1С, но после его выполнения следов текста запроса не остается, возвращается только "РезультатЗапроса".

Вопрос: можно как-то перехватить текст запроса до его компиляции? Технологический журнал запрос записывает, к сожалению, уже после его компиляции.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Прошу помощи на коммерческих условия по настройке MSSQL
Ответ #49 - 22. Апреля 2015 :: 18:04
Печать  
maljaev писал(а) 22. Апреля 2015 :: 11:38:
Посмотрел слегка библиотеку "lm3addin.dll" - это модуль защиты Астора, который проверяет лицензии, а заодно и выполняет какие-то запросы. Запросы она выполняет, судя по всему, через "v8.COMConnector", то есть по сути формирует на какой-то стадии нормальный удобоваримый запрос на языке запросов 1С, но после его выполнения следов текста запроса не остается, возвращается только "РезультатЗапроса".

Вопрос: можно как-то перехватить текст запроса до его компиляции? Технологический журнал запрос записывает, к сожалению, уже после его компиляции.

Про это я не в курсе, но может скинешь - какой фрагмент кода вызывает у тебя самые большие тормоза? Посмотрю как у меня сделано, т.к. основные вопросы по производительности я решал пару лет назад. Сейчас уже толком и не вспомню, а по коду - могу посмотреть...
  
Наверх
ICQ  
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Прошу помощи на коммерческих условия по настройке MSSQL
Ответ #50 - 12. Мая 2015 :: 10:28
Печать  
Salimbek писал(а) 14. Апреля 2015 :: 07:45:
Кроме того - 16 на гиг ОЗУ поднят РАМ-диск, куда часть temp.db выкинута. Все это дает свои результаты, но больше всего прирост был, когда запрос из "А" превращаешь в "Б".

Два вопроса: какую программу используешь для ram-диска и как указать MSSQL чтобы писал в первую очередь в tempdb в памяти а не на HDD?
  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Прошу помощи на коммерческих условия по настройке MSSQL
Ответ #51 - 12. Мая 2015 :: 16:20
Печать  
Цитата:
как указать MSSQL чтобы писал в первую очередь в tempdb в памяти а не на HDD?

На курсах по mssql рассказывают, что при использовании нескольких файлов транзакций, скуль пытается распараллелить данные записываемые в лог по всем файлам, именно поэтому не рекомендуется делать файлов транзакций много, т.к. когда их слишком много то падает производительность.
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Прошу помощи на коммерческих условия по настройке MSSQL
Ответ #52 - 13. Мая 2015 :: 08:10
Печать  
1. Для RAM использовал ImDisk: http://www.ltr-data.se/opencode.html/#ImDisk
только у него нет "автоподнятия" после рестарта, поэтому запускается скрипт через шедулер, поднимает вирт, диск и уже потом запускает SQL
2. Никак, просто создал доп. файлы с заранее фиксированным размером на вирт. диске и 1 файл на HDD, а SQL сам разбирается - куда что. Сейчас вот, например, tempDB кроме 16 гБ на RAM еще и 115 гБ на HDD занимает. Количество файлов tempDB делал по статье с инфостарта, что кол-во файлов должно быть равно количеству используемых процессоров, типа SQL распараллеливает нагрузку/процы/файлы, но я тут не спец.
  

imDisk.png ( 8 KB | Загрузки )
imDisk.png
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Прошу помощи на коммерческих условия по настройке MSSQL
Ответ #53 - 13. Мая 2015 :: 08:15
Печать  
ev-kov писал(а) 12. Мая 2015 :: 16:20:
Цитата:
как указать MSSQL чтобы писал в первую очередь в tempdb в памяти а не на HDD?

На курсах по mssql рассказывают, что при использовании нескольких файлов транзакций, скуль пытается распараллелить данные записываемые в лог по всем файлам, именно поэтому не рекомендуется делать файлов транзакций много, т.к. когда их слишком много то падает производительность.

Файл транзакций - это LDF, а тут разговор про несколько файлов MDF
Вот эту статью много читал, комментарии тоже: http://infostart.ru/public/147259/
  
Наверх
ICQ  
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Прошу помощи на коммерческих условия по настройке MSSQL
Ответ #54 - 13. Мая 2015 :: 15:45
Печать  
Salimbek писал(а) 13. Мая 2015 :: 08:15:
Файл транзакций - это LDF, а тут разговор про несколько файлов MDF

Вы правы, конечно я имел ввиду несколько файлов базы данных, а не лог транзакций
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Прошу помощи на коммерческих условия по настройке MSSQL
Ответ #55 - 13. Мая 2015 :: 16:38
Печать  
Оптимизирую потихоньку... Сервера уже в принципе изучили вдоль и поперек, узкие места все известны (часть устранили), но не все из них можем прямо сейчас устранить. На всё деньги нужны. Улыбка Ну а пока денег не дают, занимаюсь оптимизацией того что есть, а именно конфигурации. Оптимизировал как мог открытые запросы, код, объекты - те что были связаны именно с пакетной загрузкой документов. Даже перехватил один из тяжелых запросов, зашитых в библиотеку - "Execute9" (по взаиморасчетам), через технологический журнал в SDBL, "расшифровал" его по идентификаторам и guid-ам, потом переписал с нуля. Принятые меры кардинально изменили ситуацию с загрузкой данных, теперь обмен с магазинами "летает", даже здоровые z-отчеты загружаются-проводятся за пару секунд каждый. Дальше буду переписывать модули интерактивного проведения. Чрезвычайно сложно расшифровывать и переписывать логику и запросы, зашитые в библиотеку, но тоже нужно - хороший прирост дает. В общем сервер сервером, но оптимизация конфигурации намного более весомый прирост дает.
  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Прошу помощи на коммерческих условия по настройке MSSQL
Ответ #56 - 13. Мая 2015 :: 16:58
Печать  
Salimbek писал(а) 21. Апреля 2015 :: 15:00:
А так - проверил - у меня самая  долгая операция при проведении Z-ки - это запрос в "ОмУчетНДС.СписаниеПоНДСПродукция" - 65% времени
Убрал из последнего подзапроса фильтры на Партии и стало оно занимать 55% времени. Еще в Регистре "НДСПродукция" думаю поставить Индекс на эту самую Продукцию.

Я вообще все фильтры виртуальной таблицы убрал и стало намного лучше чем с ними. Видимо в данном случае для MSSQL достаточно ключей внутреннего соединения чтобы фильтровать измерения. Теперь у меня запрос по НДС продукции вообще на N-ное место ушел и несущественен, а был 85% времени проведения. Индексы по регистру НДСПродукция я поставил Продукция и ПартияПродукции, УчетПартий дополнительно не индексировал - ни к чему.

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

  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Прошу помощи на коммерческих условия по настройке MSSQL
Ответ #57 - 13. Мая 2015 :: 20:47
Печать  
maljaev писал(а) 13. Мая 2015 :: 16:38:
... В общем сервер сервером, но оптимизация конфигурации намного более весомый прирост дает.

Дык, а я о чем с самого начала говорил Подмигивание
С другой стороны - приехал на неделе новый сервер с памятью на ДДР4. По тестам на скорость работы с памятью в Аида - на 1-м месте с 89000 мБ/с, что в 4 раза лучше любой из текущих топовых конфигураций на предприятии. Сервер с Астор-ом уныло плетется в хвосте с 16000 мБ/с. А в статье, что я приводил чуть выше, выводили практически линейную зависимость производительности 1С от этого параметра. Т.е., чисто теоретически, прирост должен быть в 5-6 раз.
С другой стороны - при кратном повышении производительности можно упереться в другое "узкое место", да и по этому тесту тоже есть вопросы, может все данные теста тупо уместились в кэш процессоров и только поэтому показало такие высокие результаты.
Думаю на неделе тест Гилева погонять на разных серваках для сравнения. Потом отдадим сервак под бухгалтерию и зарплатные базы. А то в прошлый раз декларация по НДС формировалась у нас 8 часов, едва успели сдать вовремя. Но если прирост хотя бы в 2 раза новое железо покажет, то буду и себе пробивать апгрейд.
  
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Прошу помощи на коммерческих условия по настройке MSSQL
Ответ #58 - 13. Мая 2015 :: 20:57
Печать  
maljaev писал(а) 13. Мая 2015 :: 16:58:
Salimbek писал(а) 21. Апреля 2015 :: 15:00:
А так - проверил - у меня самая  долгая операция при проведении Z-ки - это запрос в "ОмУчетНДС.СписаниеПоНДСПродукция" - 65% времени
Убрал из последнего подзапроса фильтры на Партии и стало оно занимать 55% времени. Еще в Регистре "НДСПродукция" думаю поставить Индекс на эту самую Продукцию.

Я вообще все фильтры виртуальной таблицы убрал и стало намного лучше чем с ними. Видимо в данном случае для MSSQL достаточно ключей внутреннего соединения чтобы фильтровать измерения. Теперь у меня запрос по НДС продукции вообще на N-ное место ушел и несущественен, а был 85% времени проведения. Индексы по регистру НДСПродукция я поставил Продукция и ПартияПродукции, УчетПартий дополнительно не индексировал - ни к чему.

Я тестировал этот запрос в консоли с установленным фильтром только по Номенклатуре и без него - разницы не заметил, но выборка с фильтром может быть существенно меньше, поэтому оставил так. Индекс должен был сказаться существенно больше. А вообще - рад за вас, что успешно получается разгребать эти кучи мусора.  Класс
  
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Прошу помощи на коммерческих условия по настройке MSSQL
Ответ #59 - 14. Мая 2015 :: 13:11
Печать  
Salimbek писал(а) 13. Мая 2015 :: 20:47:
...приехал на неделе новый сервер с памятью на ДДР4...

Чуда не свершилось, по тесту Гилева 22,94 (текущий серв) против 29,7 (новый)
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 3 [4] 5 
ОтправитьПечать