请教update table操作的日志存储.

CathySun118 2008-09-26 12:35:29
请问:update table操作在日志文件中是如何存储的?
什么情况下是作为一个update操作存储的?
什么情况下是分为delete和insert两个操作存储的?
我用的是sql2005.
非常感谢!
...全文
225 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
CathySun118 2008-10-09
  • 打赏
  • 举报
回复
thanks,
我找了些资料,明白了
Garnett_KG 2008-10-09
  • 打赏
  • 举报
回复
因为索引 B树要保持平衡啊.
试想一下, 1,2,3,4 假设把中间的2改成5,那不可能直接改吧.那样索引就失去顺序了,只能是删掉2,然后再找一个正确的位置给5。
pt1314917 2008-10-09
  • 打赏
  • 举报
回复
楼主是强淫,好多勋章。。。
CathySun118 2008-10-09
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 Garnett_KG 的回复:]
非聚集索引也一样.



SQL code

CREATE TABLE t(Id int primary key,name varchar(10),c2 int)
GO
CREATE INDEX ix_Name ON t(name)
GO
INSERT INTO t VALUES (1,'aaa',1)
GO

UPDATE t SET name='ccc' WHERE ID =1
--执行後,聚集索引上的数据会更新(只有UPDATE),但ix_Name索引上的数据会DELETE后再INSERT.
UPDATE t SET name='ccc' WHERE ID =1
--再次执行这条语句,则不会记录任何日志,因为2005够聪明…
[/Quote]

能否解释一下为什么是这样做的吗? 非常感谢

lemeo 2008-09-28
  • 打赏
  • 举报
回复
up
rhq1234 2008-09-28
  • 打赏
  • 举报
回复
up
qinhl99 2008-09-28
  • 打赏
  • 举报
回复
up
Garnett_KG 2008-09-26
  • 打赏
  • 举报
回复
那就毫不客气的jf~

当Update涉及到索引键时,维护索引都是用delete+insert.

可以用DBCC LOG测试一下.
fcuandy 2008-09-26
  • 打赏
  • 举报
回复
................
青锋-SS 2008-09-26
  • 打赏
  • 举报
回复
未结帖子楼主可以随意转移.
CathySun118 2008-09-26
  • 打赏
  • 举报
回复
我好像没有权利转啊
青锋-SS 2008-09-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 CathySun118 的回复:]
不删除了,那个作为送分贴!哈哈
[/Quote]那就请转到非技术区吧.
nalnait 2008-09-26
  • 打赏
  • 举报
回复
呵呵
CathySun118 2008-09-26
  • 打赏
  • 举报
回复
不删除了,那个作为送分贴!哈哈
青锋-SS 2008-09-26
  • 打赏
  • 举报
回复
注:删除后可用分会自动返还.
青锋-SS 2008-09-26
  • 打赏
  • 举报
回复
你帖子内容的右下角,有个删除.
CathySun118 2008-09-26
  • 打赏
  • 举报
回复
怎么删除啊,谢谢sdhylj
水族杰纶 2008-09-26
  • 打赏
  • 举报
回复
借寶地學習~~
青锋-SS 2008-09-26
  • 打赏
  • 举报
回复
无人回复时可自行删除
http://topic.csdn.net/u/20080926/12/ebb4d7cc-6278-4886-be01-52bb28924314.html
CathySun118 2008-09-26
  • 打赏
  • 举报
回复
发重了,sorry
加载更多回复(8)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧