Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何从大型表中快速删除大量数据(sql server)_Sql Server_Performance_Sql Server 2005 - Fatal编程技术网

Sql server 如何从大型表中快速删除大量数据(sql server)

Sql server 如何从大型表中快速删除大量数据(sql server),sql-server,performance,sql-server-2005,Sql Server,Performance,Sql Server 2005,我想从一个百万行以上的表中删除大约90%的行。我能做些什么来加快速度?e、 g.如果我打开简单恢复模式,这会有帮助吗?使用将您不想删除的行复制到临时表中,然后将该表而不是删除。将行复制回旧表中。记得先去 如果您有标识列,则在租用数据后,使用类似这样的方法重新设置表的种子 declare @seed int select @seed = max(identity_col)+1 from tableName DBCC CHECKIDENT (orders, table_name, @seed) 考

我想从一个百万行以上的表中删除大约90%的行。我能做些什么来加快速度?e、 g.如果我打开简单恢复模式,这会有帮助吗?

使用将您不想删除的行复制到临时表中,然后将该表而不是删除。将行复制回旧表中。记得先去

如果您有标识列,则在租用数据后,使用类似这样的方法重新设置表的种子

declare @seed int
select @seed = max(identity_col)+1 from tableName
DBCC CHECKIDENT (orders, table_name, @seed)

考虑到要删除90%的行,可能最快的方法是选择要保留在新表中的10%行。

如果无法将其余行复制到另一个表中,则截断并复制回

…删除索引是编程方面唯一可以做的事情。在这种情况下,删除索引并重新创建它们可能会有所帮助

…或获得更快的光盘子系统,主要用于数据

恢复模式没有帮助-恢复模式表示日志在(can bbe隐式)提交后立即可删除,但其中没有任何内容可以避免日志项被写入。

添加
IsDeleted(BIT)
标志,将90%的日志项设置为1,并在表上创建一个视图,该视图仅显示
IsDeleted=0
的行


删除总是a)一个资源密集型操作,b)破坏任何责任的可能性-如果可能的话,出于两个原因(性能和数据破坏),我会尽量避免它。改用“软删除”方法。

nice!我有身份栏,所以必须处理这个问题,但这没关系。+1-这是最低限度登录至少2005+(不确定以前的版本),所以它应该是超级快速。请记住重建索引所需的时间。