SQL Server ->> Sequence(序列对象)
序列是一个对象,作用类似于数据库表的自增列性质,用于获取序列值。它的特点是:
1、不与特定表相关联,只能在INSERT语句通过调用NEXT VALUE FOR 函数来获取新的序列值
2、全局性
3、调用sp_sequence_get_range一次性获取一个序列范围(多个序列值)
4、可以升序或降序生成
5、可以定义最大值、最小值和数值间隔,超过最大值可以决定要不要从最小值开始循环
6、最重要一点,可以缓存,这点对于繁忙的应用程序太重要了。缓存序列值范围到内存,减少对磁盘IO的频繁访问。CACHE选项指定了缓存中缓存的序列数值多少个。缓存的情况下如果发生断电或者重启,缓存中的序列将丢失,重启后从下一个没有缓存的序列开始重新进入缓存。
缓存 vs 没有缓存
没有启用缓存的情况下,请求下一个序列值时:
1、计算下一个序列值。
2、将序列对象的新当前值写入系统表。
2、将计算的值返回给调用语句。
启用缓存的情况下,请求下一个序列值时:
1、计算下一个序列值
2、在内存中更新该序列对象的新当前值
3、将计算的值返回给调用语句
缓存用完时:
1、计算序列对象的下一个值。
2、计算新缓存的最后一个值。
3、锁定序列对象的系统表行,新缓存的最后一个值写入系统 表。
参考:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!