在堆表上删除

Niz*_*yli 3 sql-server delete heap

除了在表上放置排他锁或重建它之外,是否有任何方法可以在删除操作期间释放堆表上的空页?这些选项都不适用于我的生产环境。

Bre*_*zar 11

当然,在它上面放一个聚集索引。带有聚集索引的表将自动释放空间。

否则,您正在查看:

  • ALTER TABLE (mytablename) REBUILD - 使其脱机
  • 使用 TABLOCK 提示进行删除
  • 截断表(mytablename)

我知道有些人认为它很流行,但堆并不适合必须处理删除(导致空空间问题)和更新(导致转发提取问题)的活动 OLTP 系统。

  • 是的,当您说锁定表时,这不是共享。:-D (6认同)