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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

https://prnt.sc/pomzjh

Я уже начинаю думать что где то какая настройка в сервере SQL не дает выполнять команду(
...
Рейтинг: 0 / 0
27.10.2019, 06:27
    #39882007
KOD_BILL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обслуживание MSSQL(Проблема с alter index)
Критик,
Не уверен в условия указываю что "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
27.10.2019, 15:28
    #39882075
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обслуживание MSSQL(Проблема с alter index)
KOD_BILLЯ уже начинаю думать что где то какая настройка в сервере SQL не дает выполнять команду(Вы же говорите, что из SSMS команда выполняется.
А SSMS - такой же клиент, как PS, или как ваше приложение.
...
Рейтинг: 0 / 0
27.10.2019, 15:32
    #39882077
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обслуживание MSSQL(Проблема с alter index)
KOD_BILLНе уверен в условия указываю что "page_count > 1000"

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

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

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

Я вроде бы нашел решение. Что PS что C# Ждут 2-3. За это время индексы не успевают ребилднутся. И за закрывают подключение. Что за собой утягивает всю сессию и прерывает выполнение. Добавил проверку на сушествования запроса "ALTER INDEX" и держать подключение открытым. Пока проверяю.
...
Рейтинг: 0 / 0
27.10.2019, 17:56
    #39882093
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обслуживание MSSQL(Проблема с alter index)
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
28.10.2019, 12:03
    #39882243
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обслуживание MSSQL(Проблема с alter index)
Таймаут на C# тоже создает исключение, но другое. Стало быть, приложение его игнорирует.
...
Рейтинг: 0 / 0
28.10.2019, 13:43
    #39882283
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обслуживание MSSQL(Проблема с alter index)
KOD_BILL,

Напишите в своем приложении обработчик ошибок, который сохранит ошибки в текстовый журнал. Просмотрите errorlog SQL сервера и Windows приложений.
...
Рейтинг: 0 / 0
28.10.2019, 15:20
    #39882339
DbDude
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обслуживание MSSQL(Проблема с alter index)
KOD_BILL, попробуйте вручную перестроить какой-нибудь индекс запросом в SSMS.
Если я не ошибаюсь, он может не перестроиться, если там мало страниц.
...
Рейтинг: 0 / 0
28.10.2019, 15:24
    #39882344
DbDude
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обслуживание MSSQL(Проблема с alter index)
То есть уровень фрагментации может не уменьшиться.
Вот статья по теме:
"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
28.10.2019, 15:56
    #39882363
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обслуживание MSSQL(Проблема с alter index)
DbDudeKOD_BILL, попробуйте вручную перестроить какой-нибудь индекс запросом в SSMS.Вроде бы этот этап в данной теме прошли, вместе с автором :-)

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


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