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

Откуда: Moscow
Сообщений: 610
Доброго времени суток!

СУБД: Microsoft SQL Server 2005 - 9.00.5000.00 (X64) Dec 10 2010 10:38:40 Copyright (c) 1988-2005 Microsoft Corporation Developer Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1)

БД:около 600Гб, таблиц порядка 9000, индексов около 30 000

Есть такой запрос:
INSERT INTO master.dbo.index_defrag_statistic (
    proc_id, 
    database_id, 
    [object_id], 
    table_name, 
    index_id, 
    index_name, 
    avg_frag_percent_before, 
    fragment_count_before, 
    pages_count_before, 
    fill_factor, 
    partition_num)
SELECT 
   -- @currentProcID, 
    dm.database_id, 
    dm.[object_id], 
    tbl.name, 
    dm.index_id, 
    idx.name, 
    dm.avg_fragmentation_in_percent, 
    dm.fragment_count, 
    dm.page_count, 
    idx.fill_factor, 
    dm.partition_number
FROM sys.dm_db_index_physical_stats(5, null, null, null, null) dm
    INNER JOIN sys.tables tbl ON dm.object_id = tbl.object_id
    INNER JOIN sys.indexes idx ON dm.object_id = idx.object_id AND dm.index_id = idx.index_id
WHERE page_count > 8
    AND avg_fragmentation_in_percent > 5
    AND dm.index_id > 0
	  AND dm.index_id > 0
	and tbl.name not like 'p%' and tbl.name not like '%seed'


Запрос в среднем выполняется около 20 мин. Просмотрев план выполнения запроса я увидел что 92% занимает Remote scan. Но откуда он берется? Запускаю напрямую на нужной БД, без всяких линк серверов.

К сообщению приложен файл. Размер - 39Kb
21 ноя 12, 15:54    [13508463]     Ответить | Цитировать Сообщить модератору
 Re: sys.dm_db_index_physical_stats and remote scan  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Приложу еще план выполнения запроса, может кому интересно будет

К сообщению приложен файл (166.sqlplan - 48Kb) cкачать
21 ноя 12, 15:55    [13508472]     Ответить | Цитировать Сообщить модератору
 Re: sys.dm_db_index_physical_stats and remote scan  [new]
Crimean
Member

Откуда:
Сообщений: 13148
а вопрос в чем?
21 ноя 12, 15:56    [13508485]     Ответить | Цитировать Сообщить модератору
 Re: sys.dm_db_index_physical_stats and remote scan  [new]
andrew shalaev
Member

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

Откуда взялся Remote Scan и можно ли без него обойтись. тем самым сократив время выполнения запроса.
21 ноя 12, 16:01    [13508522]     Ответить | Цитировать Сообщить модератору
 Re: sys.dm_db_index_physical_stats and remote scan  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
andrew shalaev
Crimean,

Откуда взялся Remote Scan и можно ли без него обойтись. тем самым сократив время выполнения запроса.
Уберите sys.dm_db_index_physical_stats, сократите время запроса.
21 ноя 12, 16:07    [13508587]     Ответить | Цитировать Сообщить модератору
 Re: sys.dm_db_index_physical_stats and remote scan  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Гавриленко Сергей Алексеевич,

Насколько я понимаю кроме как через sys.dm_db_index_physical_stats по другому фрагментацию индекса не узнать или я не прав? Но я не пойму куда удаленно это представление может обращаться.
21 ноя 12, 16:17    [13508668]     Ответить | Цитировать Сообщить модератору
 Re: sys.dm_db_index_physical_stats and remote scan  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
andrew shalaev
Гавриленко Сергей Алексеевич,

Насколько я понимаю кроме как через sys.dm_db_index_physical_stats по другому фрагментацию индекса не узнать или я не прав? Но я не пойму куда удаленно это представление может обращаться.
Это "представление" сканит ваши индексы на предмет определения возвращаемых показателей. Читайте про последний параметр.
21 ноя 12, 16:19    [13508686]     Ответить | Цитировать Сообщить модератору
 Re: sys.dm_db_index_physical_stats and remote scan  [new]
Glory
Member

Откуда:
Сообщений: 104760
andrew shalaev
Но я не пойму куда удаленно это представление может обращаться.

Это обертка. Специально для того, чтобы скрыть ответ на такой вопрос.
21 ноя 12, 16:20    [13508696]     Ответить | Цитировать Сообщить модератору
 Re: sys.dm_db_index_physical_stats and remote scan  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Вообще, лучше сначала определить список таблиц и индексов, а потом гонять по каждой таблице циклом (cross apply не выйдет, ага). Получится быстрее.

Сообщение было отредактировано: 21 ноя 12, 16:25
21 ноя 12, 16:25    [13508738]     Ответить | Цитировать Сообщить модератору
 Re: sys.dm_db_index_physical_stats and remote scan  [new]
Crimean
Member

Откуда:
Сообщений: 13148
andrew shalaev,

оно так работает. ремоут скан = скан внутренних таблиц сервера
еще и актуализирует эту инфу прежде чем отдать, что небыстро
21 ноя 12, 16:33    [13508841]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить