insert rows into heap/clustered table
luyued 发布于 2010-12-26 21:59 浏览 N 次
Insert row to a heap.
IAM包含一个对象所占用所有空间(extent), PFS包含了所有数据页的空间使用情况的信息。
当向堆(heap)插入一条记录时, sqlserver会检测这个对象的IAM页和PFS页(加上S LATCH),判断是否和可用的数据页,如果有,则向相应的数据页插入数据,如果插入的数据量达到了PFS的阀值,会更新PFS页内的信息(需要U LATCH)
如果没有可用的数据页,则会
如果当前页的数量>8,检测GAM页(加上S LATCH),查看时候有可用的Extent,如果没有,则检测下一个GAM...如果找到可用的extent,则更新相应的GAM,IAM,PFS(需要U LATCH)
如果当前页的数量<8检测SGAM页(加上S LATCH),查看时候有可用的Extent,如果没有,则检测下一个SGAM...如果找到可用的extent,则更新相应的SGAM,IAM,PFS(需要U LATCH)
如果对数据有delete,update操作,导致数据页空间上的变化,也要更新PFS,也可能更新相应的GAM,SGAM,IAM页,这都需要u latch. 可以想象的出,在高并发所以如果在高频发的情况下, 会出现这些分配页上的热点,形成瓶颈(假设其它的资源不是瓶颈)
接下来看看clustered table的情况。
Insert row to a clustered index table
假设clustered key符合unique,narrow,static ,ever-increasing原则。
插入的过程和index seek的过程有些类似, 首先通过root page和 intermate page定位新的行应该插入的位置,这样就定位到了行所在的数据页,然后完成插入操作。
- 06-09· 转三个包子高美高嘉里奥
- 06-09· 高美高
- 06-08· 【岁宝红岭店】11月优惠活
- 06-04· 广州紫艾妮服饰有限公司
- 05-31· 太空堡垒
- 05-29· [置顶]在这里为您挑选的都
- 05-29· 成功案例:伟雅皇冠故事
- 05-29· 淘宝皇冠店铺★皇冠店铺
- 05-29· 一个皇冠的百年史
- 05-28· 广州市花都友联皮具制品
- 05-27· 爱的COMICO
- 05-26· 健康快乐成长(2007年11月
- 05-26· 评论 (
- 05-26· 幼儿园的死亡教育
- 05-26· 美空美女胸部大比拼 谁的
- 05-26· DNF背景故事大事记使徒介
- 05-26· 创业必看的项目:广州紫艾
- 05-25· 吸血鬼日记
- 05-25· BJ单身日记2:理性边缘.20
- 05-25· 转帖:公企鹅对黑白靴发情