当前位置: 首页 > 面试题库 >

如何从SQL Server的一个表中删除8,500,000条记录

凌通
2023-03-14
问题内容

删除unt_uid为null的活动

这将是最快的方法,但是在该语句完成之前没有人可以访问数据库/表,因此这是不可行的。

我定义了一个游标以在工作时间内完成此任务,但无论如何对生产率的影响很大。那么如何删除这些记录,以保证该数据库的正常使用?

它是32位Win2003上的SQL-2005
Server。第二个问题是:您估计这项工作要完成多长时间(6个小时或60个小时)?(是的,我知道这取决于负载,但是假设这是一个小型企业环境)


问题答案:

您可以分块进行。例如,每10秒执行一次:

delete from activities where activityid in 
  (select top 1000 activityid from activities where unt_uid is null)

显然,定义行数(我任意选择1000)和间隔(我选择10秒)对您的应用程序最有意义。



 类似资料:
  • 问题内容: 我有一个这样的 LoginTime 表: 我想删除的最后一条记录。用户的最后一条记录可以通过识别。 如何使用一个查询执行此操作。 问题答案: 您需要按user_id(例如WHERE user_id = 1)过滤表,然后按时间(例如ORDER BY datetime)对其进行排序,然后将查询限制为一项(例如LIMIT1),然后删除此查询的结果。最后,您将获得如下查询:

  • 我正在创建一个脚本,用于将一个参数传入MySQL查询,然后执行该MySQL查询以从多个表中删除多条记录。 现在我遇到了一个问题,我需要为每个单独的表创建多个文件。是否有一种方法可以在一个文件中执行每个MySQL查询,而不是为每个查询创建多个文件? 以下是我创建的代码:

  • 我有两个表,一个有212,000条记录(不推荐使用的记录),另一个有10,500,000条记录 在删除记录之前使用外部联接有意义吗?我在想,如果可能的话,这可以帮助我跟踪被删除的内容

  • 问题内容: 我有一个这样的 LoginTime 表: 我只想保留5条最新记录(按“ datetime”列),并删除所有以前的记录,其中 是否可以通过一个mysql查询来实现? 问题答案: 我相信这会奏效…

  • 问题内容: 我目前正在使用Hibernate Envers。 如何删除审核表中与我要删除的实体相关的条目?我的实体与其他实体没有任何关系。 我发现必须在自定义侦听器的方法中执行此操作: 我已经阅读了文档,论坛以及许多内容,但我无法弄清楚。也许这是不可能的,我不知道。 有人做过吗? 问题答案: 好吧,对于那些想知道的人,我已经完成了50%。 感谢Hibernate Envers的创建者Adam Wa

  • 问题内容: 我试图一次从几个表中删除。我做了一些研究,并提出了 但是,我收到此错误 未捕获的Database_Exception [1064]:您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在’p,pa … 附近使用… 我以前从未做过跨表删除操作,所以我现在还没有经验,并且一直坚持下去! 我究竟做错了什么? 问题答案: 在语句中使用a 。 另外,您可以使用…