`

小毛病,大问题

阅读更多
今天用户抱怨,为什么数据库中条目的计数越来越大,而且清空数据库后重新计数,还是变大?

其实这是我在设计的时候懒惰造成的,产品使用的是SQLServer数据库,数据库的字段ID是标识列,是自增的,当时没有考虑ID变大的情况,所以就任由着字段编号无限的变大,也没有注意,当用户抱怨的时候,也没太当回事,因为程序没有什么错误呀.

其实这是一个不好的用户体验,而我们完全可以解决,其实在删除数据或全部删除数据的时候,增加一个校验,如果数据库中记录数目为0,那么就重新设置标识列的计数,也就很简单了,其实我们真的不应该忽视任何细节,就是一个简单的删除记录/清空表,其实都大有学问的.

在SQLServer中的解决方法如下:

DBCC CHECKIDENT
检查指定表的当前标识值,如有必要,还对标识值进行更正。

举例:
DBCC CHECKIDENT (TableName,  RESEED, 1)

强制表中的当前标识值为 1。

另外一条需要注意的语句是

TRUNCATE TABLE
删除表中的所有行,而不记录单个行删除操作。

DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。

若要删除表中的所有行,则 TRUNCATE TABLE 语句是一种快速、无日志记录的方法。该语句总是比不带条件的 DELETE 语句要快,因为 DELETE 语句要记录对每行的删除操作,而 TRUNCATE TABLE 语句只记录整个数据页的释放。TRUNCATE TABLE 语句立即释放由该表的数据和索引占用的所有空间。所有索引的分发页也将释放。

与 DELETE 语句相同,使用 TRUNCATE TABLE 清空的表的定义,同其索引和其它相关的对象一起仍保留在数据库中。必须使用 DROP TABLE 语句才能除去表的定义。

呵呵,有些时候看帮助就是不认真,往往几句话,能够对程序性能和效果有很大的改变.
分享到:
评论

相关推荐

    工作流程和遇到的问题

    文档开发必备,你开发过程中遇到的问题和一下小毛病都可以来这里解决。

    解决Tomcat无法登录的问题

    解决服务器的小毛病 为大家提供一点方便 同时赚取积分

    XP系统精华文档,主要是介绍如何解决电脑常见的一些问题的解决办法!

    如果你为了一些电脑的问题而发愁!如果有些问题你无法解决!如果你的电脑有小毛病但是你又不知道如何解决! 那就别再犹豫了。我把我说收集的精华编辑成了文档。想要的可以下载下去看看! 我这里就不一一解释了!!

    深入研究Servlet线程安全性问题

    深入研究Servlet线程安全性问题,在开发中,可能我们有时候没有注意到程序中的一些细节,看看吧,可能你也有这些细节上的小毛病。

    css应该注意的一些细节问题

    使用css容易犯的一下小毛病,在这里总结了一下,希望对各位有帮助。

    windows_7右键添加记事本

    添加到注册表后解决右键没有记事本的问题 (没办法用的是盗版系统自然是有些小毛病了)

    大学物理-卢德馨序言

    免了篇幅过大的毛病. 这本教材自1989 年起即在南京大学强化部大学物理学课程中试用,1993 年起又用于南京大学天文系的学生.历次教学的效果良好:它激发了学生对物 理学的兴趣,也培养了思考物理学问题的能力,这从...

    人脸识别软件(Luxand Blink! Pro) v2.4 官方版.exe

    有几个小毛病,特别告诉大家一下: 1、软件问题:开机进行面部识别后,Luxand Blink! 并不自动退出,而是驻留系统托盘,占用内存30M左右。并且每次进入登录界面会有小卡的感觉。 2、面部识别的大问题:如果你把你...

    SNMP网络管理课程设计

    网络管理课程设计做的一个SNMP,C++写的,程序没什么问题,不过还是有点小毛病,仅供参考.

    sikuli 32位和补丁包

    二、 安装完成后先不在不要运行,输因为他还有点小毛病,我们需要在下载页面找到“Sikuli X R930 ”连接,把这个zip类型的文件下载下来。 三、 我们将下载的文件sikuli-r930-win32.zip解压,然后得到一个SIKULI-...

    oracle使用过程中常见的问题及命令

    做了一个整理归纳,其中包括oracle数据库的数据导入、导出,面对表格文件怎样用命令快速导入oracle数据库,数据库字符集的更改,使用oracle数据库过程中出现的一些小的毛病等问题的解决,对oracle数据库的表空间的...

    兜兜浏览器v1.0.0.1

    兜兜浏览器又更新,增加了快捷键功能,增加了隐藏成小图标功能,增加兜兜小闹钟软件,解决了浏览器的一些小毛病和卸载等的逻辑问题。收发信还没解决附件问题,努力中…… 安全性说明: 一样的编译器和安装包制作...

    Eclipse没反应或反应慢的解决办法

    在eclipse中导入了一个很大的项目,然后就觉得eclipce变的好慢,动不动还会挂掉~ 这时候只要在eclipse的安装目录下,打开eclipce.ini文件,把默认的内存大小很改了,就应该能解决问题了。我的电脑内存是2G的,于是...

    大型网站架构改进历程:存储的瓶颈(上)

    什么是大型网站,从网站的技术角度考虑这个问题人们很容易犯一个毛病就是认为网站的访问量是衡量的指标,懂点行的人也许会认为是网站在单位时间里的并发量的大小来作为指标,如果按这些标准那么像hao123网站就是了。...

    tanke.rar_Tank

    线程应用,TANK大战服务器及其CLIENT源代码,这个是GUI方面的一个程序,有些小毛病,但是运行是没有问题的,现在可以作为一个聊天室用,协议是TCP+UDP,在局域网内使用。

    超市收银常见故障解决办法.docx

    超市为了方便结算都会使用超市收款机,给商家和顾客带来便利的同时也会闹点小毛病,这让超市经营者头疼不已。我们只要了解到收款机故障原因,就很好解决了。

    斐讯 K2P B1 华硕固件

    相比以前的51610版本, 主要是安全更新, 没发现什么新功能, 反而多了几个小毛病 (已修复). 日常使用还是建议刷 spoon 的 51610版固件, 很稳定. 如果已经刷了spoon的华硕51610版, 可以直接在 系统管理->固件升级 里...

    VC++AnsyncSocket实现语音的双工通信

    用VC++ 6.0实现语音的双工通信,基于C/S模式,数据的收发采用AsyncSocket来实现!可惜的是,在Debug下是成功的,但在Realse下还有点小毛病!希望那位解决此问题后给我指点一二!感激中!邮箱:ylwuwei921@126.com

    计算机知识精华合集(收集)

    计算机总是出现一些小的大的毛病、难道不想自己动动手解决解决啊?

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    07-更多MySQL数据库增量恢复大讨论及大总结 08-MySQL增量恢复小结及核心恢复思想 09-课后自学能力作业-务必完成并分享讲解 10-内部学员技术大会分享课表说明 第九部-老男孩MySQL服务日志详细介绍及增量恢复命令实践...

Global site tag (gtag.js) - Google Analytics