Как ускорить выборку данных по периодическому реквизиту (MS SQL)? #112553


#0 by Justname
Всем доброго дня!Мне неободимо выбирать данные из одного регистра, и у одного из связанных справочниковесть периодический реквизит. В результирующем запросе его значение мне также нужно. Я сделал так:CREATE FUNCTION dbo.select_pr(@objid CHAR, @id int, @setdate datetime)RETURNS VARCHARASBEGIN   from _1SConst   where id = @id and objid = @objidENDGOselect j.docno, convert(datetime, left(j.date_time_iddoc, 8), 104) as docdate, t.typeop,       g.descr as grka,       k.code as k_code, k.id as k_id, k.descr as k_name,       s.code as s_code, s.id as s_id, s.descr as s_name,       f.descr as fil,       a.code as a_code, a.id as a_id, a.descr as a_name, a.SP7832 as a_fio,       r.SP6440 as t_id,from RA6439 rleft join _1SJourn j on j.iddoc=r.iddocleft join SC46 k on k.id=r.SP6442 --контрагентыleft join SC46 g on g.id=k.parentid --группы контрагентовleft join SC31 s on s.id=r.SP6444 --складleft join SC13 f on f.id=r.SP6885 --филиалleft join SC7838 a on a.id=r.SP7913 --агентleft join typeop1 t on t.iddocdef=j.iddocdefleft join SC7660 seb on seb.parentext = r.SP6440where (r.date_time_iddoc > '20050531Z' and r.date_time_iddoc < '20050701')GODROP FUNCTION dbo.select_prБаза достаточно большая (>30 Гб) и выборка данных за один месяц (примерно 900 000 записей) производится за 30 мин. А хотелось бы побыстрее.Может, кто подскажет?
#1 by www.perlscript.ru
План запроса нужен.
#2 by www.perlscript.ru
а вообще возможно из-за используемых функций "dbo.select_pr"
#3 by Матрейя
Если нужно выбрапть данные регистра + периодические значения - то юзай двумя-одним запросами 1с. Уверяю - будет быстрее.
#4 by Justname
"юзай двумя-одним запросами 1с" - речь идет о средствах самой 1С? Есть отчет, выбирающий указанные данные из регистра, написанный в самой 1С. Он выполняется больше трех часов... Поэтому я и решил сделать его по-другому.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С