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

Откуда:
Сообщений: 34
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4279.0 (X64) Mar 26 2013 17:33:13 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

В мониторе активности во вкладке ресурсоёмкие запросы присутствует запрос:
fetch hC into @agent_type, @agent_name, @status
Число выполнений в минуту - несколько сотен тысяч, доходило до 10 000 000.
Также велико число логических операций чтения в секунду.
Цифры плавют (сейчас, пока пишу Число вып. в мин. - 180 000, логич. чтен. - 13 000), но запрос и не собирается заканчиваться.

Странно:
В колонке с названием БД для этого запроса пусто.
В процессах его найти не удаётся.

Есть проблемы с производительностью, но пока непонятно почему. Как раз когда есть проблемы этот запрос выполняется. Убивается только перезапуском скуля.

Хотелось бы, конечно, понять, связано ли это с производительностью, но, хотя бы, что это за процесс, как его найти, как его убить, почему не отображает БД.

план состоит из одного элемента, текст запроса в плане:
create procedure sys.sp_MSinit_replication_perfmon
as
begin
    declare @return_code int,
                @agent_type int,
                @agent_name nvarchar(100),
                @status int,
                @all_but_misc_agents int

    select @all_but_misc_agents = -1

    -- drop the temp table 
    if object_id('tempdb.dbo.#tmp_replication_status') is not null
    begin
        drop table #tmp_replication_status
    end

    -- create the temp table	
    create table #tmp_replication_status
    (
        publisher sysname,
        publisher_db sysname, 
        publication sysname, 
        publication_type int,
        agent_type int, 
        status int,
        agent_id int,
        agent_name sysname,
        job_id uniqueidentifier null,
        time_stamp datetime null,
        publisher_srvid int null
    )
    
    create clustered index ctmpreplicationstatus on #tmp_replication_status (publication, publisher_db, publisher)
    create index nc1tmpreplicationstatus on #tmp_replication_status (publisher, publisher_db)
    create index nc2tmpreplicationstatus on #tmp_replication_status (agent_type)

    -- Remove all existing instances
    dbcc deleteinstance ("SQL Replication Agents", "%")
    dbcc deleteinstance ("SQL Replication Snapshot", "%")
    dbcc deleteinstance ("SQL Replication Logreader", "%")
    dbcc deleteinstance ("SQL Replication Distribution", "%")
    dbcc deleteinstance ("SQL Replication Merge", "%")
    dbcc deleteinstance ("SQL Replication Queuereader", "%")

    -- Add and initialize Perfmon SQL Replication Agents instances
    dbcc addinstance ("SQL Replication Agents", "Snapshot")
    dbcc addinstance ("SQL Replication Agents", "Logreader")
    dbcc addinstance ("SQL Replication Agents", "Distribution")
    dbcc addinstance ("SQL Replication Agents", "Merge")
    dbcc addinstance ("SQL Replication Agents", "Queuereader")
    dbcc setinstance ("SQL Replication Agents", "Running", "Snapshot", 0)
    dbcc setinstance ("SQL Replication Agents", "Running", "Logreader", 0)
    dbcc setinstance ("SQL Replication Agents", "Running", "Distribution", 0)
    dbcc setinstance ("SQL Replication Agents", "Running", "Merge", 0)
    dbcc setinstance ("SQL Replication Agents", "Running", "Queuereader", 0)

	-- load tmp replication_status table
	exec @return_code = sys.sp_MSload_tmp_replication_status @agent_type = @all_but_misc_agents
	if @@error <> 0 or @return_code <> 0
		return 1			

    -- Add instances for each agent currently in the status table
    declare hC CURSOR LOCAL FAST_FORWARD for 
    	select agent_type, 
    			agent_name, 
    			status 
    		from #tmp_replication_status for read only
    open hC
    fetch hC into @agent_type, @agent_name, @status


логического окончания нет, на чём застрял, до туда и написал.
28 май 13, 12:05    [14358277]     Ответить | Цитировать Сообщить модератору
 Re: не найти процесс, хотя знаю какой запрос  [new]
Lavrov_Yura
Member

Откуда:
Сообщений: 34
жаль, что ни у кого нет мыслей (((
5 июн 13, 16:07    [14395514]     Ответить | Цитировать Сообщить модератору
 Re: не найти процесс, хотя знаю какой запрос  [new]
pio777
Member

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

Попробуйте воспользоваться процедурой sp_WhoIsActive
http://sqlblog.com/files/folders/beta/entry42453.aspx
5 июн 13, 18:25    [14396456]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить