易 易名烦 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-13 #1 有一个SQL2K表,没任可关系,四个,三个NVARCHAR(50),一个SMALLDATETIME, 有记录1442条,用DELETE FROM 表名删除记录却用了50多秒,为什么?
易 易名烦 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-13 #5 很快啊,我SELECT *一个几万条记录的表都要不了这么条的时间!
S sentiment Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-13 #6 你用delete 的话,数据库会做一些设置以碑ROLLBACK,自然就慢了。我对SQL2K不熟悉,但 在ORACLE里面有个命令叫TRUNCATE,是直接删除,不可以ROLLBACK的,要快多了。算是提供 一条思路吧。
你用delete 的话,数据库会做一些设置以碑ROLLBACK,自然就慢了。我对SQL2K不熟悉,但 在ORACLE里面有个命令叫TRUNCATE,是直接删除,不可以ROLLBACK的,要快多了。算是提供 一条思路吧。
Z zm30 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-13 #8 既然是独立的,新建一个和它一样的表试试 另外可以用事件探查器看看
S SEVN Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-13 #11 UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUp
S sdhxdjw Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-28 #16 同意用truncate table 若要删除表中的所有行,则 TRUNCATE TABLE 语句是一种快速、无日志记录的方法。该语句 总是比不带条件的 DELETE 语句要快,因为 DELETE 语句要记录对每行的删除操作,而 TRUNCATE TABLE 语句只记录整个数据页的释放。TRUNCATE TABLE 语句立即释放由该表的 数据和索引占用的所有空间。所有索引的分发页也将释放。 与 DELETE 语句相同,使用 TRUNCATE TABLE 清空的表的定义,同其索引和其它相关的对象 一起仍保留在数据库中。必须使用 DROP TABLE 语句才能除去表的定义。
同意用truncate table 若要删除表中的所有行,则 TRUNCATE TABLE 语句是一种快速、无日志记录的方法。该语句 总是比不带条件的 DELETE 语句要快,因为 DELETE 语句要记录对每行的删除操作,而 TRUNCATE TABLE 语句只记录整个数据页的释放。TRUNCATE TABLE 语句立即释放由该表的 数据和索引占用的所有空间。所有索引的分发页也将释放。 与 DELETE 语句相同,使用 TRUNCATE TABLE 清空的表的定义,同其索引和其它相关的对象 一起仍保留在数据库中。必须使用 DROP TABLE 语句才能除去表的定义。
Z zyl2000 Unregistered / Unconfirmed GUEST, unregistred user! 2002-12-01 #18 sql server中要用delete * from tablename access中用delete from tablename