如何“瘦”数据库表?

时间:2009-06-09 17:15:14

标签: sql-server sql-server-2005

我有一个大型数据库表,我用它来测试。它包含7.3米的电话记录。我想删除其中许多,但仍然保持良好的电话号码和日期分布。有没有办法实现这个目标?可能与table sample有关吗?​​

2 个答案:

答案 0 :(得分:6)

删除id在1或6中的完成位置?或者类似,具体取决于您需要删除多少。

即。只保留10%的测试记录,删除所有未以(例如)7结尾的记录。

(请注意,像这样的删除可能需要一段时间。您可能最好只使用您需要的记录来创建CREATE TABLE AS。)

答案 1 :(得分:3)

复制您要保留的数据:

SELECT TOP 1000 * INTO dbo.Buffer FROM Data.Numbers 订购NewID()

删除所有数据:

TRUNCATE TABLE Data.Numbers

移回保留的数据

INSET INTO Data.Numbers(列表)SELECT FROM dbo.Buffer