Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Зависает процедура  [new]
verve
Member

Откуда:
Сообщений: 375
Помогите! Стала зависать простая процедура на UPDATE, может и другие заисают, но селективные отрабатывают нормально.
БД приличная 40 ГБ, ошибка при выполнение плана обслуживания, но не знаю как посмотреть на каком этапе. (там всего их три сжатие, реорганизация индексов - очистка после выполнения)
5 апр 12, 09:41    [12368625]     Ответить | Цитировать Сообщить модератору
 Re: Зависает процедура  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
verve,

1. Успокоиться.
2. Меньше сумбура.
3. Больше фактов: что исполняется (текст), ошибки (текст), и т.д.
5 апр 12, 09:45    [12368637]     Ответить | Цитировать Сообщить модератору
 Re: Зависает процедура  [new]
verve
Member

Откуда:
Сообщений: 375
Ошибок при выполнении процедуры нет, просто истекло время ожидания из программы, вчера поставил вечером выполняться, а утром она все еще выполняется это в SMS. До вчерашнего дня процедура выолнялась максимум 2 минуты
5 апр 12, 09:56    [12368689]     Ответить | Цитировать Сообщить модератору
 Re: Зависает процедура  [new]
verve
Member

Откуда:
Сообщений: 375
update Recom_price
set rp_price=(select sp_price_in*1.18
              from suppliers_price
              where sup_kod=6
              and sp_price_in>0
              and sp_num=rp_num)
where rp_num in (select sp_num
                 from suppliers_price
                 where sup_kod=6
                 and sp_price_in>0)  ;

  



insert into Recom_price (rp_brand, rp_num, rp_price, rp_group)
select  rp_brand,sp_num,sp_price_in*1.18, sp_group
from suppliers_price
where sup_kod=6
and sp_num not in (select rp_num
                   from Recom_price') 	
5 апр 12, 10:01    [12368711]     Ответить | Цитировать Сообщить модератору
 Re: Зависает процедура  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
verve,

Для начала запустите
SELECT * FROM sys.dm_exec_requests
, чтобы посмотреть, что у вас там реально выполняется.
5 апр 12, 10:03    [12368725]     Ответить | Цитировать Сообщить модератору
 Re: Зависает процедура  [new]
verve
Member

Откуда:
Сообщений: 375
Это когда надо запустить?
5 апр 12, 10:04    [12368736]     Ответить | Цитировать Сообщить модератору
 Re: Зависает процедура  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Во время работы Вашей процедуры.
5 апр 12, 10:27    [12368844]     Ответить | Цитировать Сообщить модератору
 Re: Зависает процедура  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Или лучше в таком виде:
SELECT     session_id, DB_NAME(database_id) AS [Database],start_time, status, command, (select text from sys.dm_exec_sql_text(sql_handle)) AS query,
                      (select substring(p.text, (r.statement_start_offset/2)+1 , case r.statement_end_offset when -1 then 2147483647 else ((r.statement_end_offset - r.statement_start_offset)/2) + 1 end ) from sys.dm_exec_sql_text(sql_handle) as p
						FOR XML RAW('Query'), ELEMENTS, TYPE) AS sql_text,
					  database_id, user_id, USER_NAME(r.user_id) AS UserName,					 
                      blocking_session_id, wait_type, wait_time, last_wait_type, wait_resource, open_transaction_count, open_resultset_count, 
                      transaction_id, percent_complete, estimated_completion_time, cpu_time/1000 as [cpu_time in sec], total_elapsed_time/1000 [total_elapsed_time in sec], scheduler_id, reads, writes, 
                      logical_reads, text_size, language, date_format, date_first,
                      transaction_isolation_level, lock_timeout, deadlock_priority, row_count, prev_error, nest_level, 
                      granted_query_memory, executing_managed_code, 
					  (select p.query_plan from sys.dm_exec_query_plan(plan_handle) as p) AS exec_plan
FROM         sys.dm_exec_requests as r
WHERE  (sql_handle IS NOT NULL) AND session_id <> @@SPID

Увидите, кто блокирует, процедуру, типы ожиданий, планы выполнения и т.п.
А потом детализировать.
5 апр 12, 10:32    [12368870]     Ответить | Цитировать Сообщить модератору
 Re: Зависает процедура  [new]
verve
Member

Откуда:
Сообщений: 375
После обновления статистики вроде работает нормально, но план обслуживания все-равно с ошибкой...
И в лане выполнения процедуры пишет, что отсутствует индекс, но он есть... странно
5 апр 12, 10:58    [12369069]     Ответить | Цитировать Сообщить модератору
 Re: Зависает процедура  [new]
verve
Member

Откуда:
Сообщений: 375
CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
ON [dbo].[Recom_price] ([rp_brand])
INCLUDE ([rp_num])


Или что это значит, проясните?

на rp_num есть индекс, на rp_brand тоже
5 апр 12, 11:03    [12369133]     Ответить | Цитировать Сообщить модератору
 Re: Зависает процедура  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
verve
Или что это значит, проясните?


Поясняем: Index with Included Columns.
5 апр 12, 11:57    [12369549]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить