Sql server SQL Server:SQL请求在写入t-log或更新b-tree后返回
对于变异SQL语句(insert、update、delete),SQL何时向客户机返回响应 这是吗Sql server SQL Server:SQL请求在写入t-log或更新b-tree后返回,sql-server,transaction-log,Sql Server,Transaction Log,对于变异SQL语句(insert、update、delete),SQL何时向客户机返回响应 这是吗 将更改写入事务日志但未更新b-tree后,或 将更改写入事务日志并更新b树索引后 我很困惑,因为为了使seek操作正常工作,b-树索引必须是最新的,所以我认为#2是正确的 但事务日志也用于从崩溃中恢复。如果在突变请求中间出现SQL崩溃,客户端无论如何都不会接收成功代码,客户端可以重试。 那么,假设不涉及复制,t-log在什么情况下提供灾难恢复?了解SQL Server对存储数据进行更改的逐步过程非
那么,假设不涉及复制,t-log在什么情况下提供灾难恢复?了解SQL Server对存储数据进行更改的逐步过程非常重要 SQL Server使用
Write-Ahead Logging
算法对SQL Server中存储的数据进行任何更改。以下是确保每个语句/事务维护SQL Server的ACID属性所采取的步骤
刷新页面
)。只有在这一阶段,更改才会真正写入磁盘如果上面提到的过程在中间的任何地方都失败,并且不能以任何理由完成整个过程,SQL Server将数据页标记为可疑(数据库损坏),这种情况有时会发生,但不经常发生(此时您将看到您的DBA出汗)。但是您不应该担心这一点,除非您是DBA:)
不会为每个查询发出检查点。服务器向客户端返回响应,而与检查点没有直接关系。检查点有几种类型:自动(与恢复间隔服务器配置和未完成写入数相关)、间接(与目标恢复时间和服务器版本相关,因为默认值在2016年从0分钟更改为1分钟)、手动(执行查询)和内部(与备份数据库等任务相关)。您可以使用sys.dm_os_buffer查找脏页和干净页_descriptors@RonenAriely从未声明为每个事务都发出了检查点,但当发出检查点时,其余的事务就会发生。您在步骤5中编写了它,但不应该在那里!服务器不会等待下一个检查点以返回结果;-)。您应该删除第5步,该步骤是根据我上面提到的检查点类型在单独的任务中完成的。@Ronenariley是的,现在再次阅读它,看起来我建议对用户的响应只是在发出检查点并刷新页面时出现的问题:),现在将进行排序,谢谢你,巴德。我试着像你一样把你的名字写在@上,但是由于某种原因网站清除了这个名字。。。我不知道如何在评论开头添加“@M.Ali”