位置: 编程技术 - 正文

数据库中identity字段不必是系统产生的唯一值 性能优化方法(新招)(数据库中alter table的用法)

编辑:rootadmin
但是,具有identity特性的字段,不需要具有唯一性,更不必须是主键。 可以通过,set identity_insert tablename (on|off),在运行时控制,是否可以在identity字段中指定值,而不是由系统自动的插入值。 那么,这有什么用处呢。举个例子来说,两个用户之间的聊天,可以有多次,这个用一个chatsession来表示。在数据库中,我们需要三个表: user, chatsession(sessionid identity,...), user_chatsession (userid, sessionid, ...), 来表示这个关系。这里面,多出了一个表chatsession, 其主键sessionid具有identity特性,并且在user_chatsession中被引用。 但是,我们知道,数据库写操作比读操作的开销要大很多,如果我想做优化,把chatsession整个的去掉,那应该怎么做呢. 这时,就会用到我说的这一点。首先把 user_chatsession 中的sesssionid变成identity 字段,在插入一个session中的第一个 user-session (for user a)记录时,让系统产生sessionid, 然后记录下这个sessionid, 在插入一个session中后续的 user-session (for user b, user c...), 执行set identity_insert tablename on,就可以把先前记录的sessionid值插入。 还有另外一个方法,比较笨一点,就是用 select max(sessionid) + 1 from table where userid = @useridA,来获得要新插入的sessionid, 这种方法性能上显然差了许多。

推荐整理分享数据库中identity字段不必是系统产生的唯一值 性能优化方法(新招)(数据库中alter table的用法),希望有所帮助,仅作参考,欢迎阅读内容。

数据库中identity字段不必是系统产生的唯一值 性能优化方法(新招)(数据库中alter table的用法)

文章相关热门搜索词:数据库中identity的功能,数据库中alter table的用法,数据库中identity(1,1),数据库中identity的功能,数据库中identify属性,数据库中identify属性,数据库中identity(1,1),数据库中identity属性,内容如对您有帮助,希望把文章链接给更多的朋友!

分享SQL Server删除重复行的6个方法 1.如果有ID字段,就是具有唯一性的字段delecttablewhereidnotin(selectmax(id)fromtablegroupbycol1,col2,col3...)groupby子句后跟的字段就是你用来判断重复的条件,如只有c

合并SQL脚本文件的方法分享 概述--------------------------------------------------------------------------------在平时的工作中,我会经常的碰到这样需要合并SQL脚本的问题。如,有很多的SQL脚本

sql 自定义百分比转换小数函数代码 --CAST和CONVERT函数PercentageDECLARE@decdecimal(5,3),@varvarchar(),@hundecimal(5,1)set@dec=0.set@hun=@dec*set@var=cast(@hunasvarchar())+'%'select@var---小数转化为百分数函数GetPe

本文链接地址:https://www.jiuchutong.com/biancheng/348836.html 转载请保留说明!

上一篇:SQLServer 镜像功能完全实现(sql2008r2镜像)

下一篇:分享SQL Server删除重复行的6个方法(删除sql server2008)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络