了解了解一下SQLSERVER里的鬼影记录
了解了解一下SQLSERVER里的鬼影记录
鬼影记录也叫 幻影记录、 虚影记录 英文名叫 ghost record
关于 truncate table有没有使用鬼影记录的探讨
会出现鬼影记录的两种情况:(1)聚集索引表 (2)使用了快照隔离级别的堆表
相关文章:
http://support.microsoft.com/kb/2622823/zh-cn
http://www.sqlskills.com/blogs/paul/ghost-cleanup-redux/
http://www.cnblogs.com/Amaranthus/archive/2013/04/22/3036619.html#2664812
http://www.sqlskills.com/blogs/paul/inside-the-storage-engine-ghost-cleanup-in-depth/
为什么在聚集索引的表里会出现鬼影记录,大家知道有聚集索引的表,里面数据页会用双向链表连接起来,如果马上删除,
那么就会影响索引查找数据,比如有一个事务正在利用聚集索引查找数据,万一这个时候删除了某一页,
那么查找出来的结果就不准确了,所以还是等空闲的时候,再慢慢地删除数据,反正我是这麽认为的
Ghost记录清理
问:在SQL Server企业管理器的进程信息窗口中,我找到了一个名为“Ghost Record Cleanup”(幻影记录清除)的后台进程,并且该命令由用户系统所引发。答:在从数据库中删除行、页或扩展盘区时,SQL Server会将这些对象标记为“幻影”(表示删除操作有待执行),并在稍后使用后台任务清除这些对象,该进程就是Ghost Record Cleanup。Ghost Record Cleanup改善了Delete命令的性能,因为SQL Server无需立即执行物理清除操作。
下面的内容根据给出的文章链接总结出来
(sql server中ghost清理任务每5秒执行一次)可以使用跟踪标志661来关闭ghost清理工具的运行
这样会减少物理IO,因为清理需要把页保存在buffer pool,会产生日志,造成物理IO。
如果对于delete量比较大的数据库可以启用跟踪标志661,这样ghost清理任务就不会运行。
1 DBCC TRACEOFF(661,-1)--在全局范围关闭ghost清理工具 2 DBCC TRACESTATUS(661) --查看是否ghost清理工具是否在运行 status列
查看某一张表是否存在ghost记录
对于表扫描而言,该鬼影记录数越小越好,至于为什麽,因为在查询的时候,执行引擎还要判断是否有鬼影记录,如果是鬼影记录就跳过这条记录,继续下一条记录的查找
1 SELECT [ghost_record_count], [version_ghost_record_count] 2 FROM [sys].[dm_db_index_physical_stats](DB_ID('dlgpos'), --数据库ID 3 OBJECT_ID('[DLGPOS].[dbo].[Accounts]'), --表的objectid 4 NULL, NULL,'detailed')
如果你想真正了解鬼影记录,可以看一下我翻译的两篇文章
鬼影记录翻译一
鬼影记录翻译二
如果文中有不对的地方,欢迎大家拍砖o(∩_∩)o
了解了解一下SQLSERVER里的鬼影记录相关推荐
- BlockChain:Py实现区块链简单场景应用:程序猿记录在区块里的收入记录图
BlockChain:Py实现区块链简单场景应用:程序猿记录在区块里的收入记录图 导读 想更好的了解区块链技术?还是用程序猿的方式来加深了解和探索区块链吧!实际案例应用会让我们更加熟悉它的底层技术! ...
- SQL Server -- SQLserver 存储过程执行错误记录到表
SQLserver 存储过程执行错误记录到表 From: http://blog.csdn.net/leshami/article/details/51333650 对于在执行存储过程中碰到的一 ...
- sqlserver里,case when和cast函数一起使用
sqlserver里,查询order_id,amount,如果Transaction_Amount< Order_Amount 就返回 Order_Amount,否则就返回Transaction ...
- 如何恢复微信账单里删除的记录
微信账单是一项非常重要的功能,它能够记录我们在微信中的收支情况.然而,在使用微信账单的过程中,有时候我们可能会不小心将某些记录删除,导致无法查看以前的交易信息.这种情况下,我们该怎样才能恢复微信账单里 ...
- 删除计算机插优盘记录,如何彻底清除U盘在PC里的使用记录呢
我们在使用U盘后会在电脑里留下相关的U盘使用记录,何如能删除U盘使用记录,现以下提供几种方法. 第一种方法,手动删除注册表信息. 一.先往系统里面添加环境变量devmgr_shownonpresent ...
- 贾又福大象鸿蒙,奏乐!继续吹!库里又创记录,射进MVP榜单,众多名记变“库吹“...
库里本月已投进85记三分 打破哈登保持的NBA单月三分命中数纪录 加上今天的7记三分,库里本月已经投进85记三分,创造了新的NBA单月(自然月)三分命中数纪录.勇士本月还有两场比赛.此前,哈登曾单月8 ...
- ifix从sqlserver里读数据_基于GE Fanuc产品PBS汽车总装生产线监控系统设计
1 PBS系统的总体概述 1.1现代的汽车生产线中, 经常在涂装和总装之间需要预留一个车辆缓冲区(也就是一个临时的车辆存储区),通过这个缓冲存储区,上层可以通过生产计划任务来实现车辆按计划,按步骤, ...
- SAP CA02删除了工艺路线的工序,但是在表PLPO里没有删除记录,在表PLAS里才有。(疑似系统BUG)(查询函数 CARO_ROUTING_READ)
今天我在用CA03查询工艺路线的时候,发现 5245 有8道工序 然后在后台表PLPO里查,居然有9道工序,其中这第一条明显是多出来的,但是在表里居然没有删除标记 然后我用CA61去查询更改记录 发现 ...
- sqlserver 怎么查看操作记录_抖音怎么查看访问记录,访客记录在哪里看的?
我们都知道QQ是能查看自己的访客记录的,那么抖音呢?在抖音看了别人的视频会留下记录吗?抖音能看到近期访客吗?我们一起来了解一下吧! 抖音能看到近期访客吗 目前来说,抖音里并没提供查看访客记录的功能,用 ...
最新文章
- es中发现结点的角色
- HanLP二元核心词典详细解析
- VC++ 判断点是否在线段上
- Hgame 2022 Answer‘s Windows
- 台湾印象之一:金马奖之夜
- 分享GitHub上一些嵌入式相关的高星开源项目
- java kotlin lateinit_15. Kotlin 究竟该不该用 lateinit?
- 07-霸道的Oracle内存使用
- 一阶系统开环传递函数表达式_自控原理之系统辨识--入门介绍
- CSharpGL(53)漫反射辐照度
- javascript flash 弹框
- java redis sortedset_Jedis操作Redis--SortedSet类型
- 格签名困难假设: 最短向量问题SVP
- [吴恩达机器学习课程笔记] week four强化学习
- Fabric.js IText 手动设置斜体
- 计算机文字录入标准,计算机文字录入员考试大纲标准.doc
- 两轮电动车被小米、哈啰们盯上了
- 机器学习:simple linear iterative clustering (SLIC) 算法
- 苹果云服务icloud_苹果手机怎么恢复通讯录?一键恢复技巧就在这里!
- spring boot新建报错,多处显示导包失败,显示犹如The import org.junit cannot be resolved报错
热门文章
- Visual Studio 2013 在使用 razor无智能提示的解决办法
- [剑指Offer]5.二维数组中的查找
- Memcached全面剖析
- IE 8兼容:meta http-equiv=X-UA-Compatible content=IE=edge / X-UA-Compatible的解释
- 对于session序列化跟session的钝化与活化的粗浅理解
- 关于Delegate 和 MulticastDelegate的实现
- 【深度解析】FPGA四大设计要点
- C++中getline()函数
- C++ 中 string earse 函数的使用
- java 线程的函数_Java线程总结