Вход | Регистрация


1С:Предприятие ::

Метки: 

Не работает перестроение индексов sql для базы 1с

Я
   MAPATNK2
 
02.07.18 - 10:08
Добрый день, посдкажите пожалуйста, месяц назад перестал выполняться план обслуживания, после долгих поисков выяснилось, что перестроение индекса в 1 из баз не выполняется, (выполняется вечно не завершаясь).
В чем может быть проблема? Т.к. задание не завершается в логах ничего нет и в журнале тоже. Все базы перестаривают индекс, именно рабочая не хочет. Sql 2016
 
 
   MAPATNK2
 
1 - 02.07.18 - 10:09
База Упп весит не более 3 ГБ
   MAPATNK2
 
2 - 02.07.18 - 10:13
Работало больше года, вдруг перестало. Может можно как-то проверить почему не работает перестроение, скрипт, отчет. Может есть у кого готовый скрипт для перестроения индекса. Сам боюсь по материалам открытых источников писать, не системный администратор, опыта с SQL ещё мало, вдруг что повредится.
   Галахад
 
3 - 02.07.18 - 10:21
Хм. 3 ГБ, может просто забить? При таком размере разница, наверное незаметна.
   Сияющий в темноте
 
4 - 02.07.18 - 10:23
А потом вырастет,и огребут проблем
никогда не следует оставлять проблемы на завтра

вопрос-а нигде времени исполнения не указывается?
   MAPATNK2
 
5 - 02.07.18 - 10:26
(4) нет, т.к. если добавить в план обслуживание перестроение индекса, то план вообще перестает выполнятся. Я вывел перестроение индекса в отдельный подплан, попробовал запустить вручную, перестроение выполняется, если в нем не указана база УПП, при добавлении базы УПП в задание, оно так же перестает выполнятся.
   MAPATNK2
 
6 - 02.07.18 - 10:31
В задание возможно посмотреть скрипт, хотел скопировать и вставить в T-SQL. Но формирование скрипта продолжается бесконечно.
   Сияющий в темноте
 
7 - 02.07.18 - 10:35
Если он не формирует скрипт,то он ждет от кого-то завершения обращения к базе,возможно,где то подвисло внесение изменений в таблицы.
Как бы,напрашивается,закрыть все соединения этой базе и повторить попытку.Причем,вполне вероятно,что висит какой-то из предыдущих скриптов.
   1sanekmaloi1
 
8 - 02.07.18 - 10:48
ТИИ сделай.
   ptiz
 
9 - 02.07.18 - 10:56
   ADirks
 
10 - 02.07.18 - 10:58
Вот тут есть всё что надо:  https://ola.hallengren.com
 
  Рекламное место пустует
   MAPATNK2
 
11 - 02.07.18 - 11:23
(9) Не пашет скрипт
   MAPATNK2
 
12 - 02.07.18 - 11:23
(10) А есть где попонятней объяснено. Опыта работы нет с SQL
   MAPATNK2
 
13 - 02.07.18 - 11:38
Есть какой нибудь готовый проверенный скрипт? SQL 2016
   MAPATNK2
 
14 - 02.07.18 - 11:40
(7) Он никогда не формировался, даже на 2008 даже на 2014 на разных базах, на разных ОС.
   Галахад
 
15 - 02.07.18 - 11:43
(13) Возьми из своего плана обслуживания.
Нажми на кнопку "просмотр t-sql" и выполни его в консоли. Возможно там увидишь ошибку.
   MAPATNK2
 
16 - 02.07.18 - 12:30
(15) Он не формируется. Уже писал выше.
   ADirks
 
17 - 02.07.18 - 12:40
(14) Готовый и проверенный - это как раз у Олы.

1. Скачиваешь https://ola.hallengren.com/scripts/MaintenanceSolution.sql

2. Запускаешь этот скрипт в MSSMS, с активной базой, в которой хочешь создать таблички и SPшки. Часто это всё сваливают в msdb, но я создаю отдельную базу для всяких логов, и называю её Monitor

3. Для проверки запускаешь
exec [Monitor].[dbo].[IndexOptimize]
    @Databases = '',  --здесь список баз, ч/з запятую
    @MaxDOP = 2,
    @FragmentationLow = NULL,
    @FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
    @FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
    @FragmentationLevel1 = 5,
    @FragmentationLevel2 = 30,
    @UpdateStatistics = 'ALL',
    @OnlyModifiedStatistics = 'Y',
    @LogToTable = 'Y'


4. Если всё хорошо, запихиваешь это в job

5. Периодически, ради интереса, посмтриваешь в табличку CommandLog - что оно там наребилдило и апдейтнуло.
   ADirks
 
18 - 02.07.18 - 12:44
Почитать можно например http://catalog.mista.ru/public/256292/
Там тоже есть подобный скрипт, можно его взять, попробовать
   MAPATNK2
 
19 - 02.07.18 - 12:56
(17) Спасибо, но совсем не понятно что это и как этим пользоваться. Скачал, запустил, что дальше делать с этим?
   MAPATNK2
 
20 - 02.07.18 - 12:56
(17) Где выполнять эти команды
   ADirks
 
21 - 02.07.18 - 13:14
(20) в Microsoft SQL Server Management Studio
   MAPATNK2
 
22 - 02.07.18 - 13:20
(21) Скачал, запустил, скрипт отработал, он в мастер запихал что нужно, потом я  выполнил процедуру

exec [master].[dbo].[IndexOptimize]
    @Databases = '[UPP]',  --здесь список баз, ч/з запятую
    @MaxDOP = 2,
    @FragmentationLow = NULL,
    @FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
    @FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
    @FragmentationLevel1 = 5,
    @FragmentationLevel2 = 30,
    @UpdateStatistics = 'ALL',
    @OnlyModifiedStatistics = 'Y',
    @LogToTable = 'Y'


в ответ получил


Date and time: 2018-07-02 15:18:52
Server: WIN-9PMOB5DBGIK
Version: 12.0.2000.8
Edition: Enterprise Edition (64-bit)
Platform: Windows
Procedure: [master].[dbo].[IndexOptimize]
Parameters: @Databases = '[UPP]', много всего 


Version: 2018-06-27 20:44:12
Source: https://ola.hallengren.com

Date and time: 2018-07-02 15:18:52
Database: [UPP]
Status: ONLINE
Standby: No
Updateability: READ_WRITE
User access: MULTI_USER
Is accessible: Yes
Recovery model: SIMPLE

Date and time: 2018-07-02 15:19:41
   MAPATNK2
 
23 - 02.07.18 - 13:20
[dbo].[CommandLog] пустая
   MAPATNK2
 
24 - 02.07.18 - 13:29
(21) Вопрос, эти функции без моего ведома, т.е. как регламентыне задания выполняться не будут? Это просто готовые функции, которые можно вызвать в любое время?
   ADirks
 
25 - 02.07.18 - 13:47
если в Messages повылазило куча сообщений типа
Date and time: 2018-07-02 17:40:33
Command: UPDATE STATISTICS [SK].[dbo].[_1SCONST] [PK__1SCONST]
Outcome: Succeeded
Duration: 00:00:00
Date and time: 2018-07-02 17:40:33

значит, скрипт отработал. Почему пусто в логах - не знаю


Да, это функции, для использования их в job'ах.  Ну и так просто можно, руками.

Джоб там тоже создался, но без расписания. Правда, он зачем-то через sqlcmd команду запускает, так что я его выкинул, и свой сделал.
   ADirks
 
26 - 02.07.18 - 13:50
(22) А вот в master не надо бы ничего запихивать. Она не для этого.
В msdb ещё куда ни шло.  Но, повторяюсь, лучше отдельную базу создать, не системную.
   ADirks
 
27 - 02.07.18 - 13:57
(22)+  Кстати, если лог пустой, то значит ничего не перестраивалось, т.к. нет необходимости. Собственно, в этом и фишка подобных скриптов, что они не всё подряд обмолачивают, а только те индексы/статистики, которые перешли определенный порог фрагментации / неактуальности.
   MAPATNK2
 
28 - 02.07.18 - 14:22
(27) Понял, спасибо большое.
   MAPATNK2
 
29 - 02.07.18 - 14:22
Очень помогли



Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует