Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
Добрый день! База на данный момент весить около 7ТБ Я написал на C# ежедневное обслуживание которое собирает индексы с фрагментацией >30% И разбивает на коллекции где уникальные таблица и индекс для нее. Коллекции нужны что бы не запускались одновременно несколько инексов по одной таблице. В итоге я получаю около 5-7 коллекций. При выполнении пачки запросов ( https://prnt.sc/po5730) alter index я вижу что индекцы начали перестраиваться но спустя 2-3 минуты они просто сбрасываются. И соответственно не чего не происходит и индекс не перестраивается( подскажите в чем может быть проблема или в какую сторону смотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 20:21 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
KOD_BILLя вижу что индекцы начали перестраиваться но спустя 2-3 минуты они просто сбрасываютсяКоманда либо завершается с ошибкой, либо выполняется успешно. Что такое "просто сбрасываются", непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 20:31 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
KOD_BILL, Напишите в своем приложении обработчик ошибок, который сохранит ошибки в текстовый журнал. Просмотрите errorlog SQL сервера и Windows приложений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 20:32 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
alexeyvg, В том то и дело. Я блюжу процессы в студии. Вижу их 30. И через 2-3 минуты просто "Заканчивают работать" все разом. Проверяю индексы которые попали в первую коллекцию. Но фрагментация не изменяется( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 20:38 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
Владислав Колосов, Приложение не возвращает не каких исключений. Про журнал что то я не подумал. Сейчас гляну. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 20:39 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
KOD_BILLalexeyvg, И через 2-3 минуты Это стандартный клиентский таймаут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 20:41 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
alexeyvg, Вот пример Старт https://prnt.sc/po5ni7 Якобы все закончило работать https://prnt.sc/po5m73 Но я прекрасно понимаю что за такое время не реально отработать( В логах ошибок нет( В Виндовых логах тоже инфа отсутствует( На момент завершения работы команд в SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 20:56 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
aleks222KOD_BILLalexeyvg, И через 2-3 минуты Это стандартный клиентский таймаут. Не понятно. А почему сбрасывает выполнение то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 20:58 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
KOD_BILLaleks222Это стандартный клиентский таймаут. Не понятно. А почему сбрасывает выполнение то?Это же всё вопросы по вашему клиенту. Проблема сиквела начинается тогда, когда команда возвращает ошибку. Или когда ошибки нет, но результат выполнения не соответствует вашим ожиданиям. В данном случае варианта 3: 1. Команды завершаются с ошибкой, но клиент их не показывает. 2. Клиент разрывает коннект, команды завершаются с ошибкой (принудительное завершение), но вы этого не видите 3. Команды выполняются правильно, но вы не считаете результат правильным. Тут тематика этого раздела форума относится к варианту 3, в общем то. Можете выложить сюда, например, данные по какой то таблице (фрагментацию и статистику), можно посмотреть, что с ней. А варианты 1 и 2 - это всё в сторону клиента. Да, разве что, можно посоветовать профайлером посмотреть на команды - там будет видна вся статистика выполнения, ну и результат - ошибка, разрыв коннекта или ещё что то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 21:29 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
alexeyvgМожете выложить сюда, например, данные по какой то таблице (фрагментацию и статистику), можно посмотреть, что с ней.Например: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 21:39 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
alexeyvgalexeyvgМожете выложить сюда, например, данные по какой то таблице (фрагментацию и статистику), можно посмотреть, что с ней.Например: Код: sql 1. Пример одной из таблиц которая попала в выборку. Я вчера попробовал вызывать не пачками а по одной строке. результат такой же. Хм. Если же со студии вызвать команду которая отправляется приложение. То все успешно исполняется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2019, 07:24 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
ТОже самое только изображением http://prntscr.com/pobdvf Модератор: Вы еще гифку анимированную забацайте, а то вдруг кто-то не заметит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2019, 07:26 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
KOD_BILLПример одной из таблиц которая попала в выборку. Да, похоже, действительно команда не выполняется. KOD_BILLЯ вчера попробовал вызывать не пачками а по одной строке. результат такой же. Хм. Если же со студии вызвать команду которая отправляется приложение. То все успешно исполняетсяНу, тут неважно, пачка или по одной. Понятно, раз пачка не выполнилась, то и одна не выполнится. Это уже проблема в приложении. Причин, понятно, может быть много. Может, у вас вообще запросы больше ННН секунд не выполняются? Проверьте запрос с waitfor. В общем, обычная отладка - профайлер в руки, и дебаггер... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2019, 17:45 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
Может "сброшенные" индексы слишком мало страниц занимают? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2019, 22:58 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
alexeyvg, что то мне пожсказывает не все тут так просто. Я решил проверить что будет если выполнить команду из PS. результат тот же. https://prnt.sc/pomzjh Я уже начинаю думать что где то какая настройка в сервере SQL не дает выполнять команду( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2019, 06:23 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
Критик, Не уверен в условия указываю что "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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2019, 06:27 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
KOD_BILLЯ уже начинаю думать что где то какая настройка в сервере SQL не дает выполнять команду(Вы же говорите, что из SSMS команда выполняется. А SSMS - такой же клиент, как PS, или как ваше приложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2019, 15:28 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
KOD_BILLНе уверен в условия указываю что "page_count > 1000" сам запрос выбора индексовНеважно, какой запрос, и какие критерии. Вот, есть пример таблицы 22003101 нужно по ней смотреть, как выполняется команда из SSMS, из PS и из приложения (SSMS в конце) Если выполнение команд из этих 3-х мест приводит к одному результату, значит, со стороны самого выполнения всё правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2019, 15:32 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
alexeyvg, Я вроде бы нашел решение. Что PS что C# Ждут 2-3. За это время индексы не успевают ребилднутся. И за закрывают подключение. Что за собой утягивает всю сессию и прерывает выполнение. Добавил проверку на сушествования запроса "ALTER INDEX" и держать подключение открытым. Пока проверяю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2019, 16:17 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2019, 17:56 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
Таймаут на C# тоже создает исключение, но другое. Стало быть, приложение его игнорирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2019, 12:03 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
KOD_BILL, Напишите в своем приложении обработчик ошибок, который сохранит ошибки в текстовый журнал. Просмотрите errorlog SQL сервера и Windows приложений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2019, 13:43 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
KOD_BILL, попробуйте вручную перестроить какой-нибудь индекс запросом в SSMS. Если я не ошибаюсь, он может не перестроиться, если там мало страниц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2019, 15:20 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
То есть уровень фрагментации может не уменьшиться. Вот статья по теме: "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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2019, 15:24 |
|
||
|
Обслуживание MSSQL(Проблема с alter index)
|
|||
|---|---|---|---|
|
#18+
DbDudeKOD_BILL, попробуйте вручную перестроить какой-нибудь индекс запросом в SSMS.Вроде бы этот этап в данной теме прошли, вместе с автором :-) Владислав КолосовНапишите в своем приложении обработчик ошибок, который сохранит ошибки в текстовый журнал. Просмотрите errorlog SQL сервера и Windows приложений.Или хотя бы нужно убрать обработчик ошибок, что бы приложение вываливалось, и писало ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2019, 15:56 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39881914&tid=1687045]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
135ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 483ms |

| 0 / 0 |
