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

来源:asp之家 时间:2011-09-30 11:26:06 

但是,具有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,唯一值
0
投稿

猜你喜欢

  • 优化MySQL数据库性能的八大“妙手”

    2007-11-18 14:49:00
  • Sql2005启用和关闭xp_cmdshell功能

    2008-09-29 15:37:00
  • [关注细节的最佳方案]有效期时间格式的展现

    2009-10-30 18:51:00
  • asp如何制作一个股票滚屏显示面板?

    2010-07-07 12:27:00
  • 常见Dreamweaver使用过程中的问题及解决办法

    2011-03-17 16:16:00
  • 简单的asp采集代码教程

    2011-04-18 10:39:00
  • 让字体美起来

    2011-06-14 09:50:21
  • ASP怎样获得代码中第一张图片地址

    2008-10-29 09:40:00
  • ASP生成数字相加求和的BMP图片验证码

    2011-04-14 10:48:00
  • ASP 获取腾讯IP地址的代码

    2011-02-26 11:19:00
  • javascript闭包的秘密

    2008-09-28 20:39:00
  • 有时用户并不需要引导

    2009-07-17 18:48:00
  • asp 快钱网关接口 支付宝接口 财付通接口代码

    2011-03-08 10:55:00
  • 丰富段落里的标签

    2008-03-16 14:11:00
  • 检测你的SQL Server是否有特洛伊木马

    2009-02-05 15:58:00
  • ASP提速技巧五则

    2008-03-20 13:20:00
  • Select下拉列表控件美化

    2008-11-12 12:55:00
  • Oracle 存储过程总结 二、字符串处理相关函数

    2009-07-07 10:28:00
  • ASP缓存类 【先锋缓存类】Ver2004

    2009-01-05 12:28:00
  • 编写SQL需要注意的细节Checklist总结

    2012-10-07 10:43:57
  • asp之家 网络编程 m.aspxhome.com