当前位置: 首页 > news >正文

漯河网站建设兼职企业网站建设需要准备什么

漯河网站建设兼职,企业网站建设需要准备什么,自助建站原理,网站被镜像怎么做SQL Server 事务日志记录着 undo 及 redo 日志#xff0c;为了保证数据库在崩溃后恢复#xff0c;或者在正常数据库操作期间进行回滚#xff0c;保证数据库事务完整性和持久化。如果没有事务日志记录#xff0c;数据库在事务上将不一致#xff0c;并且在数据库崩溃后可能导…SQL Server 事务日志记录着 undo 及 redo 日志为了保证数据库在崩溃后恢复或者在正常数据库操作期间进行回滚保证数据库事务完整性和持久化。如果没有事务日志记录数据库在事务上将不一致并且在数据库崩溃后可能导致结构上损坏。 SQL Server 日志记录最初在内存中处理可能在事务提交之前写入磁盘单必须在事务完成提交之前写入磁盘否则事务不会持久化延迟事务特性例外。 事务日志的内部结果是什么样子呢 结构层次 事务日志在内部使用三层结构进行组织如下图所示。 事务日志包含虚拟日志文件虚拟日志文件包含存储实际日志记录的日志块。 事务日志分为多个虚拟日志文件virtual log files通常称为VLF。这样做是为了让 SQL Server 中的日志管理器更轻松地管理事务日志中的操作。你无法指定 SQL Server 在首次创建数据库或日志文件自动增长时创建了多少 VLF但你可以影响它。创建多少个 VLF 的算法如下 日志文件大小小于 64MB创建 4 个 VLF每个大小约为 16 MB 日志文件大小从 64MB 至 1GB创建 8 个 VLF每个大约是总大小的 1/8 日志文件大小大于 1GB创建 16 个 VLF每个大约是总大小的 1/16 在 SQL Server 2014 之前当日志文件自动增长时添加到日志文件末尾的新 VLF 数量由上述算法根据自动增长大小确定。但是使用这种算法如果自动增长的大小很小并且日志文件经历了许多自动增长它可能会导致大量的小 VLF称为VLF 碎片这可能是一个很大的性能问题。 由于这个问题在 SQL Server 2014 中日志文件的自动增长算法发生了变化。如果自动增长的大小小于总日志文件大小的 1/8则只创建一个新的 VLF否则使用旧算法。这大大减少了由日志文件频繁自动增长的 VLF 数量。 每个 VLF 都有一个唯一标识它的序列号并用于各种地方你可能认为全新数据库的序列号将从 1 开始但事实并非如此。 在 SQL Server 2019 实例上我创建了一个新数据库但未指定任何文件大小然后使用以下代码检查 VLF CREATE DATABASE NewDB;GO --MSSQL 2016 SP2开始可用SELECT [file_id], [vlf_begin_offset], [vlf_size_mb], [vlf_sequence_number]FROM sys.dm_db_log_info (DB_ID (NNewDB));GO --MSSQL 任意版本可用DBCC LOGINFO(NewDB);GO 请注意sys.dm_db_log_info 是在 SQL Server 2016 SP2 中添加的。你也可以使用 DBCC LOGINFO 命令查看FSeqNo为 VLF 序列号。 请注意第一个 VLF 从日志文件的偏移量 8192 字节开始。这是因为包括事务日志在内的所有数据库文件都有一个文件头页该页占用了前 8KB并存储了有关该文件的各种元数据。 那么为什么 SQL Server 选择 36 而不是 1 作为第一个 VLF 序列号呢这是因为数据库的创建都是以 model 作为参考model 中的最大 VLF 序列号加上1即为新数据库的 VLF 序列号。该算法从 SQL Server 7.0 开始就已使用。 为了证明这一点我运行了以下代码 SELECT MAX ([vlf_sequence_number]) AS [Max_VLF_SeqNo]FROM sys.dm_db_log_info (DB_ID (Nmodel));GODBCC LOGINFO(model);GO 现在只要知道每个 VLF 都有一个序列号就足够了每个 VLF 序列号增量为1。 日志块 每个 VLF 包含一个小的元数据标头其余空间由日志块填充。每个日志块从 512 字节开始以 512 字节为增量增长到最大 60KB此时必须将其写入磁盘。如果发生以下情况之一日志块可能会在达到其最大大小之前写入磁盘 事务提交并且延迟持久性未作用于该事务因此必须将日志块写入磁盘以使事务持久 使用延迟持久化后台“flush the current log block to disk”每1ms定时触发 检查点或惰性写入器正在将数据文件页面写入磁盘并且当前日志块中有日志记录影响要写入的页面预写日志 你可以将日志块看作是大小可变的页面它按照事务更改数据库创建的顺序存储日志记录。每个事务没有专门的日志块多个并发事务的日志记录可以混合在一个日志块中。你可能认为当去寻找单个事务的所有日志记录时会带来困难但事实并非如此。此外当一个日志块被写入磁盘时它完全有可能包含来自未提交事务的日志记录。 日志序列号LSN 日志块在 VLF 中有一个 ID从 1 开始对于 VLF 中的每个新日志块增量为 1。日志记录在日志块中也有一个 ID从 1 开始对于日志块中的每个新日志记录增加 1。因此事务日志的结构层次结构中的所有三个元素都有一个 ID它们合并为一个称为日志序列号的三方标识符中通常简称为LSN。 一条 LSN 定义为 VLF sequence number:log block ID:log record ID4 字节4 字节2 字节唯一标识一条日志记录。这是一个不断增加的标识符因为 VLF 序列号永远增加。 你也可以使用 fn_dblog 查看当前数据库的事务日志 --sys.fn_dblog(Start LSN nvarchar(25), End LSN nvarchar(25))SELECT [Current LSN] FROM sys.fn_dblog(NULL, NULL)
http://www.dnsts.com.cn/news/178632.html

相关文章:

  • 重庆公章备案查询网站wordpress 插件游戏
  • 无锡网站科技公司关于新闻管理的网站建设报告
  • 建设银行网站查询密码河北企业信息系统
  • wordpress网站主题网站策划方案实例
  • 什么网站做英语翻译练习国外可以做会员网站的网站
  • 精品课程网站建设项目验收单wordpress相似的nodejs
  • vs怎么建手机网站软件开发网站有哪些
  • 常用设计网站有哪些软件常州网站推广软件
  • 新手做亚马逊要逛哪些网站网页设计与网站开发课程设计
  • 网站可以随便创建么wordpress完整模板
  • 泰安服装网站建设sem技术培训
  • 营销类网站建设需要注意的问题管理咨询公司怎么找客户
  • 建设网站的公司济南兴田德润o评价网站正在建设中的英文
  • 网站域名虚拟货币网站开发
  • 设计精美的国外网站网站一般做多大的
  • 玉林市网站建设宝安福永小学网站建设
  • 带有响应式的网站塘沽网吧
  • 孔为民医生个人网站如何设计一个好网站
  • 华为网站建设官网中小型网站站内搜索实现
  • 网站域名提交wordpress加相册
  • wordpress 分页插件网站优化电话
  • 手机视频网站开发教程壁纸云 wordpress
  • 枣庄建网站的公司丘北网站建设
  • 镇江网站制作案例做外贸用什么网站
  • 泉州专业网站建设沈阳正规制作网站公司
  • 桂阳网站建设中英双语 网站 模板
  • python 网站开发流程图通辽网站建设培训
  • 昆明移动端网站建设什么搜索引擎搜索最全
  • 如何使用二级域名做网站如何做网页推广如何做网页
  • 中国建设银行青岛网站建站公司郑州