在连接到事件中心时,我使用流分析将数据摄取到Azure SQL数据库中。我想要做的是定期从我的表中删除数据,这样我只保留了一定的存储天数。例: 30天。
我一直试图跟踪一种定期对我的数据库执行所需的to的方法,并找到了Azure弹性作业作为解决方案。
https://learn.microsoft.com/en-us/azure/azure-sql/database/elastic-jobs-tsql-create-manage
这是定期从azure SQL数据库中删除行的最佳方法吗?
发布于 2020-09-07 02:04:38
可以创建存储过程以删除表中的数据。
有很多方法可以做到这一点。


只需选择您认为最容易的方式,我认为这是定期从蔚蓝SQL数据库中删除行的最佳方法。
发布于 2020-09-04 19:34:05
时态表有一个保留期。如果它适用于您的用例,请考虑这一点。否则,您可以像前面提到的那样,每天使用作业框架删除一次旧数据。
发布于 2020-09-08 04:16:47
您也可以使用Azure自动化来运行一个存储过程来完成清理工作。您可以在一个PowerShell ( Automation)上运行以下RunBook。
$sqlSvrName=“DBServerName"
$sqlDbName=“DatabaseName"
$sqlUserName=“DatabaseUserName"
$sqlPassword=“DatabaseUserPassword"
$sqlStoredProcedure=“StoredProcedureName"
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection
$sqlConnection.ConnectionString = “Server=$sqlSvrName;uid=$sqlUserName;pwd=$sqlPassword;Initial Catalog=$sqlDbName“
$startDateTime = Get-Date
$sqlConnection.Open()
select $sqlConnection.ConnectionString
$sqlCmd = New-Object System.Data.SqlClient.SqlCommand
# specify that command is a stored procedure
$sqlCmd.CommandType=[System.Data.CommandType]'StoredProcedure'
# specify the name of the stored procedure
$sqlCmd.CommandText = $sqlStoredProcedure
$sqlCmd.Connection = $sqlConnection
#————- specify optional parameters to stored procedure
#$startDateTime=$sqlCmd.Parameters.Add(“@rundatetime" , [System.Data.SqlDbType]::DateTime)
$startDateTime = Get-Date
$sqlCmd.ExecuteNonQuery() 要了解在Azure自动化上完成此操作的完整步骤,请阅读这里。
https://stackoverflow.com/questions/63746551
复制相似问题