Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Ускорение запросов (число прочтений - 3038 )
idw
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 29
Зарегистрирован: 08. Июня 2007
Ускорение запросов
03. Апреля 2008 :: 10:38
Печать  
Можно ли как-нибудь ускорить выполнение запроса на SQL сервере?
Я использую в форме списка справочника Номенклатура ТП, которое заполняется документами в которых есть данная номенклатура.
Заметил такую особенность, что время первого выполнении запроса примерно 5 секунд, а потом при повторном выполнении запроса, но с другими данными время составляет уже 0.2 секунды. Аналогично ведет себя РасширенныйЖурнал. Он тоже долго открывается, хотя если его закрыть не выходя из базы и заново открыть, то он уже быстро откроется.
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Ускорение запросов
Ответ #1 - 03. Апреля 2008 :: 11:01
Печать  
При повторном выполнении скуль берет план запроса из кэша.
А что касается ускорения - засвети запросы. Скорее всего в индексы не попал.
  
Наверх
 
IP записан
 
idw
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 29
Зарегистрирован: 08. Июня 2007
Re: Ускорение запросов
Ответ #2 - 03. Апреля 2008 :: 11:08
Печать  
Вот мой запрос:

Код
Выбрать все
Для ъ=1 По спВидыДокументов.РазмерСписка() Цикл

  ВидДок = спВидыДокументов.ПолучитьЗначение(ъ);
  Если ъ<>1 Тогда
	  ТекстЗапроса=ТекстЗапроса+"
	  |UNION ALL";
  КонецЕсли;

  ТекстЗапроса=ТекстЗапроса+"
  |Select
  |$ВидДокумента36."+ВидДок+"+"+ВидДок+".IDDOC [ДокументСсылка $Документ]  
  |From $Документ." +ВидДок+" as " +ВидДок+"
  |Inner Join $Справочник.Номенклатура as Номенклатура
  |ON ($"+ВидДок+".Номенклатура = Номенклатура.ID) and (Номенклатура.id = :ВыбТовар)";

КонецЦикла;  

  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Ускорение запросов
Ответ #3 - 03. Апреля 2008 :: 11:13
Печать  
Извини, конечно, но какой скорости ты от такого запроса хочешь?
Посмотри на план запроса и пожалей скуль...
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Ускорение запросов
Ответ #4 - 03. Апреля 2008 :: 11:18
Печать  
А из журнала документов нельзя выбрать?
Что за подозрительное соединение с номенклатурой? Это графа отбора?
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
idw
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 29
Зарегистрирован: 08. Июня 2007
Re: Ускорение запросов
Ответ #5 - 03. Апреля 2008 :: 11:23
Печать  
В журнале нет графы отбора Номенклатура, а соединяю в запросе с Номенклатурой, чтобы сделать условие по ней. Хотя для быстродействия наверное надо сделать её.
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Ускорение запросов
Ответ #6 - 03. Апреля 2008 :: 11:27
Печать  
А правильно было бы сделать UNION всех таблиц табличных частей документов с определением поля ДокументСсылка как $ВидДокумента36.ВидДокумент+ТабличнаяЧасть.IDDOC с фильтром по номенклатуре, ну и конечно применить DISTINCT?
(сказано образно - могу изобразить запросом)
и конечно же параметризированный запрос использовать с параметром Номенклатура.
При это если надо, то делать INNER JOIN во всех UNION-ах с таблицей _1sjourn по дате?
  
Наверх
IP записан
 
idw
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 29
Зарегистрирован: 08. Июня 2007
Re: Ускорение запросов
Ответ #7 - 03. Апреля 2008 :: 11:34
Печать  
У меня в табличных частях нет Номенклатуры. У меня почти во всех документах один реквизит шапки Номенклатура.
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Ускорение запросов
Ответ #8 - 03. Апреля 2008 :: 11:36
Печать  
idw писал(а) 03. Апреля 2008 :: 11:34:
У меня в табличных частях нет Номенклатуры. У меня почти во всех документах один реквизит шапки Номенклатура.


Тогда почему у тебя Номенклатура не общий реквизит с галкой Отбор?
  
Наверх
 
IP записан
 
idw
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 29
Зарегистрирован: 08. Июня 2007
Re: Ускорение запросов
Ответ #9 - 03. Апреля 2008 :: 11:38
Печать  
sadovnikov писал(а) 03. Апреля 2008 :: 11:36:
Тогда почему у тебя Номенклатура не общий реквизит с галкой Отбор?


Да не было не обходимости отбирать по номенклатуре. Да и она используется не во всех документах.
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Ускорение запросов
Ответ #10 - 03. Апреля 2008 :: 11:42
Печать  
sadovnikov дело говорит насчет общего реквизита с отбором.
  
Наверх
IP записан
 
idw
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 29
Зарегистрирован: 08. Июня 2007
Re: Ускорение запросов
Ответ #11 - 03. Апреля 2008 :: 11:44
Печать  
Думаю так и сделаю, но вот хотел еще журнал сделать расширенный, но из-за 5 секундных задержек при открытии наверное придется отказаться от этого. Будет много не довольных.
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Ускорение запросов
Ответ #12 - 03. Апреля 2008 :: 11:46
Печать  
idw писал(а) 03. Апреля 2008 :: 11:44:
Думаю так и сделаю, но вот хотел еще журнал сделать расширенный, но из-за 5 секундных задержек при открытии наверное придется отказаться от этого. Будет много не довольных.

Пусть не закрывают Подмигивание
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать