Sql Teradata Drop列返回带“quot;“没有空间了”;
我试图删除一个150GB表(46亿条记录)的varchar(100)列。此列中的所有数据均为空。我在数据库中还有30GB的空间Sql Teradata Drop列返回带“quot;“没有空间了”;,sql,teradata,Sql,Teradata,我试图删除一个150GB表(46亿条记录)的varchar(100)列。此列中的所有数据均为空。我在数据库中还有30GB的空间 当我试图删除该列时,它会显示“数据库XY中没有更多空间”。为什么这样的行动需要这么大的空间 发生这种情况的原因多种多样。数据库中的一个AMP可能已满,这将导致该错误,即使对表进行了较小的更改 尝试运行以下SQL以检查空间 select VProc, CurrentPerm, MaxPerm from dbc.DiskSpace where DatabaseName=
当我试图删除该列时,它会显示“数据库XY中没有更多空间”。为什么这样的行动需要这么大的空间 发生这种情况的原因多种多样。数据库中的一个AMP可能已满,这将导致该错误,即使对表进行了较小的更改 尝试运行以下SQL以检查空间
select VProc, CurrentPerm, MaxPerm
from dbc.DiskSpace
where DatabaseName='XY';
此外,您应该检查主索引在这个非常大的表中的列。如果表未正确倾斜,则在尝试更改表或对其运行查询时,也可能会遇到空间问题
对于其他建议,我发现了一篇关于“数据库中没有更多空间”错误发生时您可能需要调查的内容的文章-。其中一些建议包括:
- 删除任何中间工作或“沙盒”表
- 实现单值或多值压缩李>
- 删除不需要/不必要的辅助索引
- 删除dbc表(如accesslog或dbql表)中的数据
- 删除并归档不再使用的旧表李>
show table您的_table
它是一个business Sectis数据库XY
该表所在的数据库?与SUM(MaxPerm)
相比,DBC.DiskSpace
为数据库XY
报告的SUM(PeakPerm)
是多少?系统总体上有多少可用空间?(考虑瞬态日志要求)所有的放大器都很好,大约2/3的空间被占用,并且分布均匀。我们也注意到了倾斜因素。看起来Teradata在更改(而不仅仅是删除)列时创建了表的副本。