DROP表在SQL Server中占用大量时间

时间:2019-02-26 10:45:50

标签: sql sql-server performance

我们有一个数据库,其中的表具有加密的数据,并且具有具有1000个固定分区的群集列存储索引。所有表都具有相同的结构。加密列的类型为Varbinary。

我需要为数据库提供以前数据库中表的子集。

为此,我们要进行备份,还原,找到不需要的表。 并删除这些表格。

每个表在压缩后大约有200 MB。

问题是,DROP表花费大量时间。几乎没有桌子需要3-4秒才能掉落。但是某些表需要20分钟才能删除,这会导致很多时间。要删除1000张桌子,需要花费超过18个小时的时间。

我们正在使用的计算机是SQL Server可用的具有16个内核的超高配置128 GB RAM。

我们尝试了禁用集群列索引,在删除之前截断表之类的方法,但这无济于事。我们正在分批删除表,即使这样做没有帮助。 同样,我们无法合并分区,因为需要保留的表将使用相同的方案。

这不是管理员活动,我们提供.mdf格式的导出。为此,我们采用两种方法,对于要移动的较小数据集,我们创建空的DB并写入/插入所需的记录,并且在必须移动大部分时,我们正在执行备份还原并删除不需要的表。 / p>

我们需要了解为什么要花费这么多时间。你能帮我们吗?

0 个答案:

没有答案