了解了解一下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里的鬼影记录相关推荐

  1. BlockChain:Py实现区块链简单场景应用:程序猿记录在区块里的收入记录图

    BlockChain:Py实现区块链简单场景应用:程序猿记录在区块里的收入记录图 导读 想更好的了解区块链技术?还是用程序猿的方式来加深了解和探索区块链吧!实际案例应用会让我们更加熟悉它的底层技术! ...

  2. SQL Server -- SQLserver 存储过程执行错误记录到表

    SQLserver 存储过程执行错误记录到表    From: http://blog.csdn.net/leshami/article/details/51333650 对于在执行存储过程中碰到的一 ...

  3. sqlserver里,case when和cast函数一起使用

    sqlserver里,查询order_id,amount,如果Transaction_Amount< Order_Amount 就返回 Order_Amount,否则就返回Transaction ...

  4. 如何恢复微信账单里删除的记录

    微信账单是一项非常重要的功能,它能够记录我们在微信中的收支情况.然而,在使用微信账单的过程中,有时候我们可能会不小心将某些记录删除,导致无法查看以前的交易信息.这种情况下,我们该怎样才能恢复微信账单里 ...

  5. 删除计算机插优盘记录,如何彻底清除U盘在PC里的使用记录呢

    我们在使用U盘后会在电脑里留下相关的U盘使用记录,何如能删除U盘使用记录,现以下提供几种方法. 第一种方法,手动删除注册表信息. 一.先往系统里面添加环境变量devmgr_shownonpresent ...

  6. 贾又福大象鸿蒙,奏乐!继续吹!库里又创记录,射进MVP榜单,众多名记变“库吹“...

    库里本月已投进85记三分 打破哈登保持的NBA单月三分命中数纪录 加上今天的7记三分,库里本月已经投进85记三分,创造了新的NBA单月(自然月)三分命中数纪录.勇士本月还有两场比赛.此前,哈登曾单月8 ...

  7. ifix从sqlserver里读数据_基于GE Fanuc产品PBS汽车总装生产线监控系统设计

    1 PBS系统的总体概述 1.1现代的汽车生产线中, 经常在涂装和总装之间需要预留一个车辆缓冲区(也就是一个临时的车辆存储区),通过这个缓冲存储区,上层可以通过生产计划任务来实现车辆按计划,按步骤, ...

  8. SAP CA02删除了工艺路线的工序,但是在表PLPO里没有删除记录,在表PLAS里才有。(疑似系统BUG)(查询函数 CARO_ROUTING_READ)

    今天我在用CA03查询工艺路线的时候,发现 5245 有8道工序 然后在后台表PLPO里查,居然有9道工序,其中这第一条明显是多出来的,但是在表里居然没有删除标记 然后我用CA61去查询更改记录 发现 ...

  9. sqlserver 怎么查看操作记录_抖音怎么查看访问记录,访客记录在哪里看的?

    我们都知道QQ是能查看自己的访客记录的,那么抖音呢?在抖音看了别人的视频会留下记录吗?抖音能看到近期访客吗?我们一起来了解一下吧! 抖音能看到近期访客吗 目前来说,抖音里并没提供查看访客记录的功能,用 ...

最新文章

  1. es中发现结点的角色
  2. HanLP二元核心词典详细解析
  3. VC++ 判断点是否在线段上
  4. Hgame 2022 Answer‘s Windows
  5. 台湾印象之一:金马奖之夜
  6. 分享GitHub上一些嵌入式相关的高星开源项目
  7. java kotlin lateinit_15. Kotlin 究竟该不该用 lateinit?
  8. 07-霸道的Oracle内存使用
  9. 一阶系统开环传递函数表达式_自控原理之系统辨识--入门介绍
  10. CSharpGL(53)漫反射辐照度
  11. javascript flash 弹框
  12. java redis sortedset_Jedis操作Redis--SortedSet类型
  13. 格签名困难假设: 最短向量问题SVP
  14. [吴恩达机器学习课程笔记] week four强化学习
  15. Fabric.js IText 手动设置斜体
  16. 计算机文字录入标准,计算机文字录入员考试大纲标准.doc
  17. 两轮电动车被小米、哈啰们盯上了
  18. 机器学习:simple linear iterative clustering (SLIC) 算法
  19. 苹果云服务icloud_苹果手机怎么恢复通讯录?一键恢复技巧就在这里!
  20. spring boot新建报错,多处显示导包失败,显示犹如The import org.junit cannot be resolved报错

热门文章

  1. Visual Studio 2013 在使用 razor无智能提示的解决办法
  2. [剑指Offer]5.二维数组中的查找
  3. Memcached全面剖析
  4. IE 8兼容:meta http-equiv=X-UA-Compatible content=IE=edge / X-UA-Compatible的解释
  5. 对于session序列化跟session的钝化与活化的粗浅理解
  6. 关于Delegate 和 MulticastDelegate的实现
  7. 【深度解析】FPGA四大设计要点
  8. C++中getline()函数
  9. C++ 中 string earse 函数的使用
  10. java 线程的函数_Java线程总结