开发者社区> mikelij> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 这是笔者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, 比如短的字段,并且有单向递增特性。他照我说的方法去做了。然后说千万级别的记录,给一个记录标记需要删除就快很多了。只要一秒多就完成了。呵呵,我心中又是很高兴的。

希望能帮到你!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
外网访问内网SQLServer数据库
本地安装了一个SQLServer数据库,只能在局域网内访问到,怎样从外网也能访问到本地的SQLServer数据库呢?本文将介绍具体的实现步骤。 1. 准备工作 1.1 安装并启动SQLServer数据库 默认安装的SQLServer数据库端口是1433。
3258 0
查询Sqlserver数据库死锁的一个存储过程(转)
链接 :http://www.cnblogs.com/mzhanker/archive/2011/06/04/2072739.html 使用sqlserver作为数据库的应用系统,都避免不了有时候会产生死锁, 死锁出现以后,维护人员或者开发人员大多只会通过sp_who来查找死锁的进程,然后用sp_kill杀掉。
876 0
SQLSERVER如何获取一个数据库中的所有表的名称、一个表中所有字段的名称
原文 http://www.cnblogs.com/ynbt/archive/2012/07/16/2593389.html 1.查询数据库中的所有数据库名: SELECT Name FROM Master.
755 0
【20130321】sql server 2005 之后 删除数据库文件之后,在元数据里面还有
问题描述:      sql server 2005 之后 删除数据库文件之后,在元数据里面在 背景:     一般在完全恢复模式下才会出现这个问题 解决方法:      备份日志
562 0
C#各种数据库连接字符串大全——SQLServer、Oracle、Access
在这里统计了.NET项目下常用的数据库连接字符串:SQLServer、Oracle、Access三种数据库(MySql、SQLLite、Excel、HTML Table等等暂不列入)。
1668 0
Sqlserver与access数据库sql语法十大差异
ACCESS结构简单容易处理,而且也能满足多数的网站程序要求,也是初学者的试牛刀。ACCESS是小型数据库,既然是小型就有他根本的局限性: 1)、数据库过大,一般ACCESS数据库达到50M左右的时候性能会急剧下降! 2)、网站访问频繁,经常超过100人的在线时,处理速度会有影响! 3)、记录数过多,一般记录数达到10万条左右的时候性能就会急剧下降!微软公司为了与ACCESS高低搭配的一种高端方案:改用了Sqlserver,但语法会有一些差异。
778 0
java中三种主流数据库数据库(sqlserver,db2,oracle)的jdbc连接总结
原文http://www.cnblogs.com/PatrickChen/archive/2008/12/08/1350395.html 其实java开发中连接数据库的主要问题不是如何写代码,而是找驱动包。
1121 0
数据库转换工具SqlServer To Oracle DbConvert
数据库转换工具 DbConvert 1、SqlServer To Oracle 介绍:能快速把Sqlserver数据库转换到Oracle数据库 下载地址 http://www.kuaipan.cn/file/id_7540102850936839.htm 2、转换配置下载 http://www.kuaipan.cn/file/id_75401
1286 0
[推荐] (SqlServer)批量清理指定数据库中所有数据
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/7205159 [推荐] (SqlServer)批量清理指定数据库中所有数据 ——通过知识共享树立个人品牌。
622 0
sqlserver数据库大型应用解决方案总结
  随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天百万级甚至上亿的PV无疑对数据库造成了相当高的负载。
841 0
+关注
mikelij
自我介绍: 1991年开始工作。做过IT,做过开发。.net, j2EE, PHP都看。云计算也是重要的工作内容,如Google bigquery, Google appengine, Google cloud storage, hadoop, Amazon Web servic
文章
问答
文章排行榜
最热
最新
相关电子书
更多
数据库2025 V3
立即下载
阿里云数据库案例集下载
立即下载
数据库异地备份及不还原快速查询备份集最佳实践
立即下载