0
megabax
25.01.19
✎
16:26
|
Коллеги, подскажите, плз, почему может долго выполнятся такой вот запрос:
UPDATE dbo.Quotations
SET open = open*1.57535823,
close = close*1.57542158,
high = high*1.58550314,
low = low*1.57174708
WHERE ticker='MPI/BTC' and stock_id = 1 and period='1m' and _datetime >= CAST('20170906 23:00:00' as datetime) and
_datetime < CAST('20171205 11:58:00' as datetime)
ОН выполнялся 20 минут, я не дождался и отменил
хотя вот такой зарос
select * from Quotations
WHERE ticker='MPI/BTC' and stock_id = 1 and period='1m' and _datetime >= CAST('20170906 23:00:00' as datetime) and
_datetime < CAST('20171205 11:58:00' as datetime)
выполняться всего за 3 секунды
?
|
|
4
megabax
25.01.19
✎
16:42
|
(2) С дугой стороны, база большая. В таблице, к которой запрос, десятки миллионов записей. В выборке, которую нужно обновить - 127000 примерно строк.
Если я пытаюсь апдейтить только одну строку, тоже долго выполняется (ждал 6 минут и прервал).
|
|
6
trad
25.01.19
✎
16:53
|
select
procs.spid,
rtrim(procs.hostname) as Хост,
object_name(lock.rsc_objid) Объект,
db_name(lock.rsc_dbid) БД,
req_mode Режим
from master..syslockinfo lock (nolock)
join master..sysprocesses procs (nolock) on procs.spid = lock.req_spid
where object_name(lock.rsc_objid) is not null
--and lock.rsc_objid = OBJECT_ID('Quotations')
|
|