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

Откуда:
Сообщений: 506
Добрый день.
Не могу выполнить банальный скрипт по определению фрагментации
DECLARE @db_name varchar(50) = N'LEAD5',
                @table_name varchar(250) = N'db_name.dbo.tbl_name'

SELECT  IndStat.database_id,
                IndStat.object_id,
                QUOTENAME(s.name) + '.' + QUOTENAME(o.name) AS [object_name],
                IndStat.index_id,
                QUOTENAME(i.name) AS index_name,
                IndStat.avg_fragmentation_in_percent,
                IndStat.partition_number,
                (SELECT count (*) FROM sys.partitions p
                        WHERE p.object_id = IndStat.object_id AND p.index_id = IndStat.index_id) AS partition_count
FROM sys.dm_db_index_physical_stats
    (DB_ID(@db_name), OBJECT_ID(@table_name), NULL, NULL , 'LIMITED') AS IndStat
        INNER JOIN sys.objects AS o ON (IndStat.object_id = o.object_id)
        INNER JOIN sys.schemas AS s ON s.schema_id = o.schema_id
        INNER JOIN sys.indexes i ON (i.object_id = IndStat.object_id AND i.index_id = IndStat.index_id)
WHERE IndStat.avg_fragmentation_in_percent > 10 AND IndStat.index_id > 0



Запрос просто замирает и все.
По процессам смотрю Wait_Info PAGEIOLATCH_SH
Подскажите,как с этим бороться?
TempDB лежит на 1 диске с рабочими(SAS кажется 10-й рейд)
Осталные системные на диске С,там где система

Сообщение было отредактировано: 15 дек 19, 01:14
14 дек 19, 23:11    [22040522]     Ответить | Цитировать Сообщить модератору
 Re: Пробблема Buffer IO  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
Максим Александровитч
Запрос просто замирает и все.
"Замирает" - это какой статус?
15 дек 19, 00:03    [22040537]     Ответить | Цитировать Сообщить модератору
 Re: Пробблема Buffer IO  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 506
alexeyvg
Максим Александровитч
Запрос просто замирает и все.
"Замирает" - это какой статус?


Текущий wait_info PAGEIOLATCH_SH
Запрос же просто постоянно в статусе выполняется..
15 дек 19, 13:42    [22040655]     Ответить | Цитировать Сообщить модератору
 Re: Пробблема Buffer IO  [new]
архивариус
Member

Откуда:
Сообщений: 150
Максим Александровитч
DECLARE @db_name varchar(50) = N'LEAD5',
                @table_name varchar(250) = N'db_name.dbo.tbl_name'


возможно поправить 2 строчку надо:
@table_name varchar(250) = N'LEAD5.dbo.tbl_name'
16 дек 19, 14:44    [22041237]     Ответить | Цитировать Сообщить модератору
 Re: Пробблема Buffer IO  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Максим Александровитч

По процессам смотрю Wait_Info PAGEIOLATCH_SH
...
TempDB лежит на 1 диске с рабочими(SAS кажется 10-й рейд)

темпдб каким тут местом?
чтобы узнать фрагментацию, надо прочесть таблицу/индекс с диска.
ваши ожидания и показывают, что с диска читает
16 дек 19, 14:54    [22041254]     Ответить | Цитировать Сообщить модератору
 Re: Пробблема Buffer IO  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
архивариус
Максим Александровитч
DECLARE @db_name varchar(50) = N'LEAD5',
                @table_name varchar(250) = N'db_name.dbo.tbl_name'


возможно поправить 2 строчку надо:
@table_name varchar(250) = N'LEAD5.dbo.tbl_name'

и что будет, если передавать латиницу не юникодом,
да еще и в неюникодную же переменную?
с диска перестанет начитывать?
16 дек 19, 15:00    [22041269]     Ответить | Цитировать Сообщить модератору
 Re: Пробблема Buffer IO  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Yasha123
архивариус
пропущено...

возможно поправить 2 строчку надо:
@table_name varchar(250) = N'LEAD5.dbo.tbl_name'

и что будет, если передавать латиницу не юникодом,
да еще и в неюникодную же переменную?
с диска перестанет начитывать?

извиняюсь.
там написано, что базу надо передать, а не N подставить.
вроде и красным выделено...
16 дек 19, 15:04    [22041283]     Ответить | Цитировать Сообщить модератору
 Re: Пробблема Buffer IO  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
не в мастере случаем запускаете?
выполните там же
select OBJECT_ID(@table_name)

если выдает null (в этой базе нет такого объекта), вы же по всем объектам запустили.
это и хотел сказать архивариус,
а тут я с дурацким комментарием,
который еще и узалить нельзя...
16 дек 19, 15:21    [22041309]     Ответить | Цитировать Сообщить модератору
 Re: Пробблема Buffer IO  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 506
Да,норм,спс
16 дек 19, 21:49    [22041618]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить