【发布时间】:2009-09-16 14:07:55
【问题描述】:
我有一个数据库,其中有一个父“帐户”行,然后该行与另一个表具有 1-Many 关系,并且该表与另一个表具有 1-Many 关系。这进行了大约 6 个级别的深度(帐户位于顶部)。在最底部可能有数千(甚至可以超过 100k)行。在每个表上都有一个外键设置为在删除时级联。
问题是,如果我尝试删除最上面的一行(“帐户”),可能需要几分钟,有时甚至超过 10 分钟。是否有更快的方法来删除所有行(例如可能在单独的删除语句中从下到上)或者几乎是级联的?
我在服务器上使用 MSSQL 2005 和 MSSQL 2008,使用 L2S 来执行删除,但如果速度更快,我可以使用 T-SQL 语句。
我也尝试过从 SQL Management Studio 进行删除,但所需的时间也一样。
编辑:我们已经尝试重新索引数据库,差异可以忽略不计,可能只有一两分钟的差异。感谢您的所有回答,看来我将不得不开始编写一些代码来进行软删除!
【问题讨论】:
-
您是否在运行删除命令时查看了查询执行计划以确定瓶颈在哪里?
标签: sql-server tsql