powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Обслуживание MSSQL(Проблема с alter index)
25 сообщений из 28, страница 1 из 2
Обслуживание MSSQL(Проблема с alter index)
    #39881774
KOD_BILL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
База на данный момент весить около 7ТБ
Я написал на C# ежедневное обслуживание которое собирает индексы с фрагментацией >30%
И разбивает на коллекции где уникальные таблица и индекс для нее. Коллекции нужны что бы не запускались одновременно несколько инексов по одной таблице.
В итоге я получаю около 5-7 коллекций.

При выполнении пачки запросов ( https://prnt.sc/po5730) alter index я вижу что индекцы начали перестраиваться но спустя 2-3 минуты они просто сбрасываются. И соответственно не чего не происходит и индекс не перестраивается(

подскажите в чем может быть проблема или в какую сторону смотреть.
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39881777
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KOD_BILLя вижу что индекцы начали перестраиваться но спустя 2-3 минуты они просто сбрасываютсяКоманда либо завершается с ошибкой, либо выполняется успешно.
Что такое "просто сбрасываются", непонятно.
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39881778
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KOD_BILL,

Напишите в своем приложении обработчик ошибок, который сохранит ошибки в текстовый журнал. Просмотрите errorlog SQL сервера и Windows приложений.
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39881780
KOD_BILL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,

В том то и дело. Я блюжу процессы в студии. Вижу их 30. И через 2-3 минуты просто "Заканчивают работать" все разом. Проверяю индексы которые попали в первую коллекцию. Но фрагментация не изменяется(
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39881781
KOD_BILL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов,

Приложение не возвращает не каких исключений. Про журнал что то я не подумал. Сейчас гляну.
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39881782
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KOD_BILLalexeyvg,
И через 2-3 минуты

Это стандартный клиентский таймаут.
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39881784
KOD_BILL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,

Вот пример
Старт https://prnt.sc/po5ni7
Якобы все закончило работать
https://prnt.sc/po5m73

Но я прекрасно понимаю что за такое время не реально отработать(

В логах ошибок нет( В Виндовых логах тоже инфа отсутствует( На момент завершения работы команд в SQL
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39881786
KOD_BILL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222KOD_BILLalexeyvg,
И через 2-3 минуты

Это стандартный клиентский таймаут.
Не понятно. А почему сбрасывает выполнение то?
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39881791
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KOD_BILLaleks222Это стандартный клиентский таймаут.
Не понятно. А почему сбрасывает выполнение то?Это же всё вопросы по вашему клиенту.

Проблема сиквела начинается тогда, когда команда возвращает ошибку. Или когда ошибки нет, но результат выполнения не соответствует вашим ожиданиям.

В данном случае варианта 3:
1. Команды завершаются с ошибкой, но клиент их не показывает.
2. Клиент разрывает коннект, команды завершаются с ошибкой (принудительное завершение), но вы этого не видите
3. Команды выполняются правильно, но вы не считаете результат правильным.

Тут тематика этого раздела форума относится к варианту 3, в общем то.
Можете выложить сюда, например, данные по какой то таблице (фрагментацию и статистику), можно посмотреть, что с ней.

А варианты 1 и 2 - это всё в сторону клиента.

Да, разве что, можно посоветовать профайлером посмотреть на команды - там будет видна вся статистика выполнения, ну и результат - ошибка, разрыв коннекта или ещё что то.
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39881795
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgМожете выложить сюда, например, данные по какой то таблице (фрагментацию и статистику), можно посмотреть, что с ней.Например:
Код: sql
1.
select * from sys.dm_db_index_physical_stats(DB_ID(N'база'), OBJECT_ID(N'таблица'), NULL, NULL , 'DETAILED');  
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39881829
KOD_BILL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgalexeyvgМожете выложить сюда, например, данные по какой то таблице (фрагментацию и статистику), можно посмотреть, что с ней.Например:
Код: sql
1.
select * from sys.dm_db_index_physical_stats(DB_ID(N'база'), OBJECT_ID(N'таблица'), NULL, NULL , 'DETAILED');  



Пример одной из таблиц которая попала в выборку.

Я вчера попробовал вызывать не пачками а по одной строке. результат такой же.
Хм.
Если же со студии вызвать команду которая отправляется приложение. То все успешно исполняется
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39881831
KOD_BILL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ТОже самое только изображением
http://prntscr.com/pobdvf

Модератор: Вы еще гифку анимированную забацайте, а то вдруг кто-то не заметит?
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39881914
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KOD_BILLПример одной из таблиц которая попала в выборку.
Да, похоже, действительно команда не выполняется.
KOD_BILLЯ вчера попробовал вызывать не пачками а по одной строке. результат такой же.
Хм.
Если же со студии вызвать команду которая отправляется приложение. То все успешно исполняетсяНу, тут неважно, пачка или по одной. Понятно, раз пачка не выполнилась, то и одна не выполнится.

Это уже проблема в приложении. Причин, понятно, может быть много.
Может, у вас вообще запросы больше ННН секунд не выполняются? Проверьте запрос с waitfor.

В общем, обычная отладка - профайлер в руки, и дебаггер...
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39881987
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может "сброшенные" индексы слишком мало страниц занимают?
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39882006
KOD_BILL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,

что то мне пожсказывает не все тут так просто. Я решил проверить что будет если выполнить команду из PS.
результат тот же.

https://prnt.sc/pomzjh

Я уже начинаю думать что где то какая настройка в сервере SQL не дает выполнять команду(
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39882007
KOD_BILL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Критик,
Не уверен в условия указываю что "page_count > 1000"

сам запрос выбора индексов

SELECT tab.name as TableName,idx.Name as IndexName, sum(idx_stat.page_count) as page_count
FROM sys.dm_db_index_physical_stats(DB_ID('бд'),NULL, NULL, NULL , 'LIMITED') idx_stat
join бд.sys.tables tab on tab.object_id = idx_stat.object_id
join бд.sys.indexes idx on idx.index_id = idx_stat.index_id and idx.object_id = idx_stat.object_id
Where idx_stat.page_count > 1000 and tab.name not in (список такбличек которые не трогаем)
and idx.is_disabled = 0
and idx_stat.avg_fragmentation_in_percent > 30.0
and idx.Name is not null
Group by tab.name,idx.Name
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39882075
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KOD_BILLЯ уже начинаю думать что где то какая настройка в сервере SQL не дает выполнять команду(Вы же говорите, что из SSMS команда выполняется.
А SSMS - такой же клиент, как PS, или как ваше приложение.
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39882077
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KOD_BILLНе уверен в условия указываю что "page_count > 1000"

сам запрос выбора индексовНеважно, какой запрос, и какие критерии.

Вот, есть пример таблицы 22003101 нужно по ней смотреть, как выполняется команда из SSMS, из PS и из приложения (SSMS в конце)

Если выполнение команд из этих 3-х мест приводит к одному результату, значит, со стороны самого выполнения всё правильно.
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39882080
KOD_BILL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,

Я вроде бы нашел решение. Что PS что C# Ждут 2-3. За это время индексы не успевают ребилднутся. И за закрывают подключение. Что за собой утягивает всю сессию и прерывает выполнение. Добавил проверку на сушествования запроса "ALTER INDEX" и держать подключение открытым. Пока проверяю.
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39882093
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KOD_BILLalexeyvg,

Я вроде бы нашел решение. Что PS что C# Ждут 2-3. За это время индексы не успевают ребилднутся. И за закрывают подключение. Что за собой утягивает всю сессию и прерывает выполнение. Добавил проверку на сушествования запроса "ALTER INDEX" и держать подключение открытым. Пока проверяю.Удивительно, у вас что, асинхронное выполнение, что ли?
А если SELECT будет выполняться дольше 2 секунд?
Хотя странно, PS Invoke-Sqlcmd не устанавливает таймаут выполнения, если его специально не установить параметром -QueryTimeout https://docs.microsoft.com/ru-ru/powershell/module/sqlserver/invoke-sqlcmd?view=sqlserver-ps
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39882243
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таймаут на C# тоже создает исключение, но другое. Стало быть, приложение его игнорирует.
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39882283
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KOD_BILL,

Напишите в своем приложении обработчик ошибок, который сохранит ошибки в текстовый журнал. Просмотрите errorlog SQL сервера и Windows приложений.
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39882339
DbDude
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KOD_BILL, попробуйте вручную перестроить какой-нибудь индекс запросом в SSMS.
Если я не ошибаюсь, он может не перестроиться, если там мало страниц.
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39882344
DbDude
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть уровень фрагментации может не уменьшиться.
Вот статья по теме:
"It is best practices to rebuild fragmented indexes that are a minimum of 1000 pages":
https://dba.stackexchange.com/questions/18372/why-index-rebuild-does-not-reduce-index-fragmentatation
...
Рейтинг: 0 / 0
Обслуживание MSSQL(Проблема с alter index)
    #39882363
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DbDudeKOD_BILL, попробуйте вручную перестроить какой-нибудь индекс запросом в SSMS.Вроде бы этот этап в данной теме прошли, вместе с автором :-)

Владислав КолосовНапишите в своем приложении обработчик ошибок, который сохранит ошибки в текстовый журнал. Просмотрите errorlog SQL сервера и Windows приложений.Или хотя бы нужно убрать обработчик ошибок, что бы приложение вываливалось, и писало ошибку.
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Обслуживание MSSQL(Проблема с alter index)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]