Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема ИТ.ВыполнитьЗапрос() в базе на sql (число прочтений - 2283 )
strady
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 8
Зарегистрирован: 23. Сентября 2013
ИТ.ВыполнитьЗапрос() в базе на sql
01. Октября 2013 :: 09:55
Печать  
Не нашел иного раздела, поэтому спрошу сдесь.
Есть база бухаглтерская на семерке. Была на дбф. В последнее время стали вылетать странные ошибки. Админ, покапавшись, выдал вердикт, что пора переносить базу на sql (свертка не подойдет). Максимальный дбф около 1.7 гб. С танцами поставили на Win server 2008+SQL2008, режим совместимости sql2000. Вроде все работает. Но есть пару критичных проблем по производительности. дело в том, что справочник "номенклатура" содержит около 600 000 записей.
1) в форме списка долго происходит поиск по колонке штрихкода. Т.е. ставим крусор в колонку ШК и начинаем вводить с клавиатуры. В ДБФ базе поиск отрабатывает мгновенно, в sql это растягиваетсяна секунд 15-20.
2)  ИТ.ВыполнитьЗапрос(Дата1,Дата2,СчетПоКоду("41")) по счету 41 с отбором только по складу по отладчику выполняет условно 2 секунды (ДБФ база 20-40 секунд), но стоит выбрать отбор по группе номенклатуры и ИТ.ВыполнитьЗапрос() выполняется уже 800 секунд (в ДБФ быстрее, чем без отбора).
Проводили тест на виртуальной машине Win Server 2003+SQL2000. Ситуация та же.
Видно, что sql "тяжело" работать с справочником "Номенклатура".
В интернете много инфы, что 1C7 на SQL "тормозит", но похожего случая, как у нас не нашел.
Ковырять profiler? Настраивать правильно sql server? Переписывать все ИТ.ВыполнитьЗапрос() на прямые запросы?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИТ.ВыполнитьЗапрос() в базе на sql
Ответ #1 - 01. Октября 2013 :: 10:20
Печать  
Начни с переиндексации средствами сервера и обновления статистики. Убери с формы списка все вычисляемые поля. Дальше - профайлер и счётчики производительности.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
strady
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 8
Зарегистрирован: 23. Сентября 2013
Re: ИТ.ВыполнитьЗапрос() в базе на sql
Ответ #2 - 01. Октября 2013 :: 11:58
Печать  
Спаисбо!
exec sp_dbreindex
и
exec sp_updatestats
не помогли. буду c profiler разбираться
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ИТ.ВыполнитьЗапрос() в базе на sql
Ответ #3 - 01. Октября 2013 :: 16:25
Печать  
strady писал(а) 01. Октября 2013 :: 09:55:
2)  ИТ.ВыполнитьЗапрос(Дата1,Дата2,СчетПоКоду("41")) по счету 41 с отбором только по складу по отладчику выполняет условно 2 секунды (ДБФ база 20-40 секунд), но стоит выбрать отбор по группе номенклатуры и ИТ.ВыполнитьЗапрос() выполняется уже 800 секунд (в ДБФ быстрее, чем без отбора).

да просто когда папка товаров то 1с генерит неоптимальный запрос вот и все.
Т.е. для начала хотя бы увидеть что меняется в sql запросе
при изменении товара элемента на товар папку.

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ИТ.ВыполнитьЗапрос() в базе на sql
Ответ #4 - 01. Октября 2013 :: 16:31
Печать  
strady писал(а) 01. Октября 2013 :: 09:55:
С танцами поставили на Win server 2008+SQL2008, режим совместимости sql2000. Вроде все работает.

надо ставить уровень базы 10 + секретный релиз.

просто ( это как бы мое мнение ) пред режимы баз 80 оставлены
в sql2008 только для совместимости и никто (в MS ) не будем обработчик запросов оптимизировать для режима 80.
  
Наверх
 
IP записан
 
strady
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 8
Зарегистрирован: 23. Сентября 2013
Re: ИТ.ВыполнитьЗапрос() в базе на sql
Ответ #5 - 03. Октября 2013 :: 07:39
Печать  
поставил win server 2003+SQL server 2005 (без режима совместимости)+серектный релиз
Проблемы остались.
Буду разбираться с трассировками, но в SQL не силен. Похоже от прямых запросов не уйти.
В прикреплении трассировки
  

____________001.rar ( 6 KB | Загрузки )
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать