AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.07.2018, 17:15   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,983 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Оставлю чтобы было.

Запускает 2 метода (текст ниже).
1-й с параметром RebuildIndexAll.
т.е. в базе модели запускаются хранимки
"exec [dbo].XU_Reindex"
"exec [dbo].XU_Shrink"
"exec [dbo].[XU_ResetHandleIdentity]"

X++:
// Microsoft.Dynamics.AX.Framework.Tools.ModelManagement.ModelStore
internal static void Optimize(SqlConnection connection, AxUtilContext context, OptimizeOption option)
{
	using (SqlCommand sqlCommand = ModelStore.CreateCommand(connection))
	{
		switch (option)
		{
		case OptimizeOption.DisableIndex:
			try
			{
				sqlCommand.CommandType = CommandType.StoredProcedure;
				sqlCommand.CommandText = string.Format(CultureInfo.InvariantCulture, "[dbo].XU_DisableEnableNonClusteredIndexes", new object[0]);
				sqlCommand.Parameters.Add(new SqlParameter("@dbName", connection.Database));
				sqlCommand.Parameters.Add(new SqlParameter("@changeRecoveryModel", 'N'));
				sqlCommand.Parameters.Add(new SqlParameter("@mode", '1'));
				sqlCommand.ExecuteNonQuery();
				goto IL_246;
			}
			catch (SqlException ex)
			{
				context.ReportWarning(ex.Message);
				context.DisplayResult(string.Format(CultureInfo.CurrentCulture, Resources.DisableIndexFailure, new object[0]));
				goto IL_246;
			}
			break;
		case OptimizeOption.RebuildIndex:
			break;
		case OptimizeOption.RebuildIndexAll:
			goto IL_184;
		default:
			goto IL_184;
		}
		try
		{
			sqlCommand.CommandType = CommandType.StoredProcedure;
			sqlCommand.CommandText = string.Format(CultureInfo.InvariantCulture, "[dbo].XU_DisableEnableNonClusteredIndexes", new object[0]);
			sqlCommand.Parameters.Add(new SqlParameter("@dbName", connection.Database));
			sqlCommand.Parameters.Add(new SqlParameter("@changeRecoveryModel", 'Y'));
			sqlCommand.Parameters.Add(new SqlParameter("@mode", '2'));
			sqlCommand.ExecuteNonQuery();
			goto IL_246;
		}
		catch (SqlException ex2)
		{
			context.ReportWarning(ex2.Message);
			context.DisplayResult(string.Format(CultureInfo.CurrentCulture, Resources.EnableIndexFailure, new object[0]));
			goto IL_246;
		}
		IL_184:
		context.DisplayResult(string.Format(CultureInfo.CurrentCulture, Resources.Reorganizing, new object[0]));
		try
		{
			sqlCommand.CommandText = string.Format(CultureInfo.InvariantCulture, "exec [dbo].XU_Reindex", new object[0]);
			sqlCommand.ExecuteNonQuery();
		}
		catch (SqlException ex3)
		{
			context.ReportWarning(ex3.Message);
			context.DisplayResult(string.Format(CultureInfo.CurrentCulture, Resources.ReindexFailure, new object[0]));
		}
		if (connection.State == ConnectionState.Open)
		{
			try
			{
				sqlCommand.CommandText = string.Format(CultureInfo.InvariantCulture, "exec [dbo].XU_Shrink", new object[0]);
				sqlCommand.ExecuteNonQuery();
			}
			catch (SqlException ex4)
			{
				context.ReportWarning(ex4.Message);
				context.DisplayResult(string.Format(CultureInfo.CurrentCulture, Resources.ShrinkFailed, new object[0]));
			}
		}
		IL_246:;
	}
}
X++:
// Microsoft.Dynamics.AX.Framework.Tools.ModelManagement.ModelStore
internal static void ResetHandleIdentity(SqlConnection connection)
{
	using (SqlCommand sqlCommand = ModelStore.CreateCommand(connection))
	{
		sqlCommand.CommandType = CommandType.StoredProcedure;
		sqlCommand.CommandText = "[dbo].[XU_ResetHandleIdentity]";
		sqlCommand.ExecuteNonQuery();
	}
}

Последний раз редактировалось Logger; 04.07.2018 в 17:18.
За это сообщение автора поблагодарили: gl00mie (5), vmoskalenko (1), AlGol (3).
Теги
ax2012, axutil, optimize, производительность

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
sjakalax: AxUtil and the application log Blog bot DAX Blogs 0 25.01.2012 23:11
Faulting application Ax32Serv.exe, version 5.0.1500.2985 Poleax DAX: Администрирование 10 30.11.2010 14:53
emeadaxsupport: AxUpdatePortal.exe does not update Enterprise Portal when not running from an elevated command prompt Blog bot DAX Blogs 0 26.07.2009 15:07
mazzy: Команда autoRun Blog bot DAX Blogs 6 05.01.2009 04:27
Вопрос по поводу "Модификации были отменены". Что можно сделать? Hans DAX: Программирование 23 22.12.2005 16:34

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:31.