Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Владимир Меньшиков Member Откуда: Санкт-Петербург Сообщений: 68 |
Добрый день. Подскажите пожалуйста, как можно побороть данную ситуацию: Есть программа, которая создает псевдовременные таблицы для временного использования, например для хранения данных на время подготовки отчетов. Таблица создается при запуске отчета и удаляется при его закрытии. Это приводит к тому что, при запуске плана обслуживания для пересчета индексов эта таблица существует, а при выполнении команды ALTER INDEX... её уже нет. В результате получаем ошибку: Executing the query "ALTER INDEX [ORWA017EA3AEE490B94869901DEE4B3C788C1..." failed with the following error: "Cannot find the object "dbo.ORWA017EA3AEE490B94869901DEE4B3C788C130002018E" because it does not exist or you do not have permissions.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly. И прекращается обработка дальнейших индексов. Как можно исключить перестройку индексов для подобных таблиц? Переписать программу мы не можем, закрытый код и мы не разработчики. |
19 янв 16, 10:23 [18699823] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
нарисовать свой джоб для перестроения индексов |
19 янв 16, 10:34 [18699882] Ответить | Цитировать Сообщить модератору |
Minamoto Member Откуда: Москва Сообщений: 1162 |
Владимир Меньшиков, не выполнять перестройку индексов в момент формирования отчетов, например. |
19 янв 16, 10:47 [18699947] Ответить | Цитировать Сообщить модератору |
Владимир Меньшиков Member Откуда: Санкт-Петербург Сообщений: 68 |
Благодарю всех откликнувшихся. |
19 янв 16, 13:17 [18700905] Ответить | Цитировать Сообщить модератору |
Mind Member Откуда: Лучший город на Земле Сообщений: 2322 |
SQL Server Index and Statistics Maintenance by Ola Hallengren |
||
19 янв 16, 22:21 [18703436] Ответить | Цитировать Сообщить модератору |
Владимир Меньшиков Member Откуда: Санкт-Петербург Сообщений: 68 |
Запустили ночью, когда никто не работает, ошибка та же, со ссылкой на псевдовременную таблицу. Таблицы с таким индексом нет yb в sys.objects, ни в списке таблиц в MS SSMS, индекса с таким индексом так же нет в sys.indexes. Где может находиться информация об этом индексе, и как её сделать актуальной? |
||
20 янв 16, 14:15 [18706035] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8350 |
Правильное решение - обратиться к авторам кода. |
||
20 янв 16, 14:34 [18706143] Ответить | Цитировать Сообщить модератору |
Владимир Меньшиков Member Откуда: Санкт-Петербург Сообщений: 68 |
Это, как выяснилось проблема SQLServer'а. Таблицы с индексом уже нет, но при перестроении индексов SQL откуда-то вытаскивает эту информацию. |
||||
20 янв 16, 14:59 [18706297] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
А происходит у вас вот что - на момент получения списка таблиц планом обслуживания таблица есть, а на момент запуска перестроения индексов для этой таблицы ее уже нет. |
||
20 янв 16, 15:16 [18706419] Ответить | Цитировать Сообщить модератору |
Владимир Меньшиков Member Откуда: Санкт-Петербург Сообщений: 68 |
У меня происходит то, что таблицы уже давно не было, проверял вчера около 12 часов по Москве. При запуске перестройки индексов сегодня в 7:00, спустя более 19 часов после проверки, выдается сообщение об ошибке на этот же самый индекс, этой же самой таблицы. Ни в sys.objects, ни в sys.indexes ни этой таблицы, ни этих индексов не было уже вчера. Откуда еще может браться список индексов для их перестройки? |
||||
20 янв 16, 16:12 [18706861] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Из другой базы. Не той, где вы проверяли "Ни в sys.objects, ни в sys.indexes" |
||
20 янв 16, 16:23 [18706930] Ответить | Цитировать Сообщить модератору |
Владимир Меньшиков Member Откуда: Санкт-Петербург Сообщений: 68 |
Glory, А как тогда вылезает эта ошибка при перестройке индексов именно на этой, а не другой, базе данных? Запускал перестройку для одной конкретной базы. |
20 янв 16, 17:16 [18707280] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Для этого как раз и используют Профайлер. Чтобы точно знать чтоже там приложение выполняет на сервере |
||
20 янв 16, 17:46 [18707498] Ответить | Цитировать Сообщить модератору |
Владимир Меньшиков Member Откуда: Санкт-Петербург Сообщений: 68 |
Создал "проблемную" таблицу и индекс и перестройка индексов прошла успешно. |
||
21 янв 16, 10:38 [18709248] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
А этот план обслуживания вы лично создавали ? Если не вы, то вы хотя бы открывали его для выяснения, что же за шаги есть в этом плане ? |
||
21 янв 16, 10:41 [18709261] Ответить | Цитировать Сообщить модератору |
Владимир Меньшиков Member Откуда: Санкт-Петербург Сообщений: 68 |
Glory, Создавал сам с помощью мастера плана обслуживания. Шаги: 1. Реорганизация индекса 2. Восстановление индекса 3. Обновление статистики Все шаги для одной базы данных. |
21 янв 16, 11:38 [18709624] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |