SqlServer数据库记录数大引起的一系列问题解决

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 这是笔者qq群里一个同仁问的问题。同时他遇到的问题随着时间推移也在变化,但是都与数据量大有关。 1. 大数据量下的delete问题 2. 大数据量下的update问题 该同仁说他的数据库数据记录比较多,大约几百万条记录的级别。

这是笔者qq群里一个同仁问的问题。同时他遇到的问题随着时间推移也在变化,但是都与数据量大有关。

1. 大数据量下的delete问题

2. 大数据量下的update问题

该同仁说他的数据库数据记录比较多,大约几百万条记录的级别。删除一条记录10分钟都不能完成。他很头痛。问有没有解决办法。我想起我写的文章<<关于大型asp.net应用系统的架构—如何做到高性能高可伸缩性>>一文,我提到过,delete不要实时去做。可以集中来处理。在实时只是给这个记录做个需要删除标记(用update语句就可以了)。到晚上系统不忙的时候再来集中处理,来真正删除记录。然后这个同仁就按这个办法去做了。后来告诉我说delete问题解决了,快一些了。虽然我没有见过他的数据库是什么样子,但是能帮他解决问题,我也很高兴。

过了几个月,他又有新问题了,他说,数据更多了,现在即使给要删除的记录做个标记(即一个update语句)也要很长时间,要几十分钟。我问了下情况,原来是前面那个问题的的升级版问题。他现在给要删除的记录做待删除标记,用一个有WHERE条件的update语句。找到WHERE条件的记录,即一个搜寻的过程。现在就是按这个WHERE条件搜寻过程需要很长时间。我问了他的WHERE条件是什么,还问了他的cluster index是什么,和non-cluster index是什么。最后发现他的WHERE条件既不匹配cluster index, 也不匹配non-cluster index。所以即使是一个Update也特别耗时间。于是对他讲了如何选cluster index, 比如短的字段,并且有单向递增特性。他照我说的方法去做了。然后说千万级别的记录,给一个记录标记需要删除就快很多了。只要一秒多就完成了。呵呵,我心中又是很高兴的。

希望能帮到你!

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
1月前
|
SQL 数据库
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库。 SQL Server数据库出现823错误的可能原因有:数据库物理页面损坏、数据库物理页面校验值损坏导致无法识别该页面、断电或者文件系统问题导致页面丢失。
96 12
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
|
1月前
|
SQL 关系型数据库 MySQL
创建包含MySQL和SQLServer数据库所有字段类型的表的方法
创建一个既包含MySQL又包含SQL Server所有字段类型的表是一个复杂的任务,需要仔细地比较和转换数据类型。通过上述方法,可以在两个数据库系统之间建立起相互兼容的数据结构,为数据迁移和同步提供便利。这一过程不仅要考虑数据类型的直接对应,还要注意特定数据类型在不同系统中的表现差异,确保数据的一致性和完整性。
28 4
|
1月前
|
SQL 存储 数据管理
SQL Server数据库
SQL Server数据库
49 11
|
1月前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
95 0
|
2月前
|
SQL 存储 调度
|
2月前
|
SQL 安全 数据库
|
2月前
|
SQL 存储 监控
|
SQL 数据库
如何快速备份还原Sql Server 数据库
备份数据库 选择你要备份的数据库,鼠标右键单击,选择任务-备份   弹出备份数据库窗口,选择添加    弹出选择备份目标窗口,点击浏览,选择存放备份数据库的目录,输入文件名,后缀名输入.bak,点击确定,确定,备份完成     还原数据库  鼠标右键单击数据库,选择还原文件和文件   ...
1355 0