2016-03-31 3 views
1

У меня есть база данных SQL, работающая на Microsoft Azure. Чтобы он не стал слишком большим, я должен периодически его обрезать (например, день или два). truncate table xxx - это SQL, который мне нужно выполнить.Как урезать базу данных SQL на Microsoft Azure периодически

Так какой же самый простой способ достичь этого? Я предпочитаю не писать код C#, если я не должен этого делать. Могу ли я использовать веб-работу, которая постоянно выполняет инструкцию truncate SQL? Или я могу использовать встроенную функциональность базы данных SQL на Azure для достижения этой цели? Благодаря!

+0

Считаете ли вы использование [Azure automation] (https://azure.microsoft.com/en-gb/blog/azure-automation-your-sql-agent-in-the-cloud/)? – stuartd

ответ

0

SQL Azure еще не имеет какой-либо функции SQL Agent, поэтому вам нужно будет создать веб-работу (или какой-нибудь JavaScript, который выполняет SQL-запрос, который вам нужно выполнить), а затем использовать планировщик Azure для планирования задания.

Вы также можете использовать Azure Automation, которая включает Powershell, чтобы сделать то же самое.

+0

Привет, Рэнди. Чтобы создать веб-задание, достаточное для этой цели, должен ли я использовать язык программирования .NET? – condor126

0

Вы можете создать Elastic пул базы данных и включают в свою базу данных в pool.once ваш совершающихся делать это, вы можете запустить набор задач или запросов к базам данных всех в бассейне или одной базе данных ..

Подробнее об этом здесь ..

https://azure.microsoft.com/en-in/documentation/articles/sql-database-elastic-jobs-overview/

+1

Вам также не нужно добавлять его в пул, вы можете просто создать эластичные задания через powershell без использования интерфейса портала и работать без существующего пула. – cbattlegear

+0

Отлично, спасибо, я не знал, что – TheGameiswar

1

на самом деле, вы могли бы использовать Azure Function («TimeTrigger» тип) периодически очищать ваши таблицы, вот пример кода для использования внутри функции C# TimeTrigger Azure, чтобы получить подключение к базе данных Azure Sql и выполнение запросов «удалить» sql:

#r "System.Data" 

using System; 
using System.Data.SqlClient; 

public static async Task Run(TimerInfo myTimer, TraceWriter log) 
{ 

    string userName = "*******"; 
    string passWord = "********"; 
    var connectionString = $"Server=tcp:work-on- sqlazure.database.windows.net,1433;Data Source=work-on-sqlazure.database.windows.net;Initial Catalog=VideoStore;Persist Security Info=False;User ID={userName};Password={passWord};Pooling=False;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"; 

    using(SqlConnection cns = new SqlConnection(connectionString)) 
    { 
     cns.Open(); 
     var truncateUserTable = "DELETE FROM Video"; 

     using(SqlCommand cmd = new SqlCommand(truncateUserTable, cns)) 
     { 
      int rowsDeleted = await cmd.ExecuteNonQueryAsync(); 
     } 
    } 
} 

Затем вы можете настроить логику таймера с функцией Azure Azure «интегрировать» пространство с выражением cron.

Смежные вопросы