鬼影記錄也叫 幻影記錄、 虛影記錄 英文名叫 ghost record
關於 truncate table有沒有使用鬼影記錄的**
會出現鬼影記錄的兩種情況:(1)聚集索引表(2)使用了快照隔離級別的堆表
為什麼在聚集索引的表裡會出現鬼影記錄,大家知道有聚集索引的表,裡面資料頁會用雙向鍊錶連線起來,如果馬上刪除,
那麼就會影響索引查詢資料,比如有乙個事務正在利用聚集索引查詢資料,萬一這個時候刪除了某一頁,
那麼查詢出來的結果就不準確了,所以還是等空閒的時候,再慢慢地刪除資料,反正我是這麼認為的
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清理任務就不會執行。
1dbcc traceoff(661,-
1)--
在全域性範圍關閉ghost清理工具
2dbcc tracestatus(661) --
檢視是否ghost清理工具是否在執行 status列
檢視某一張表是否存在ghost記錄
對於表掃瞄而言,該鬼影記錄數越小越好,至於為什麼,因為在查詢的時候,執行引擎還要判斷是否有鬼影記錄,如果是鬼影記錄就跳過這條記錄,繼續下一條記錄的查詢
1select
[ghost_record_count
], [
version_ghost_record_count]2
from
[sys
].[dm_db_index_physical_stats
](db_id('
dlgpos
'), --
資料庫id
3object_id('
[dlgpos].[dbo].[accounts]
'), --
表的objectid
4null, null,'
detailed
')
如果你想真正了解鬼影記錄,可以看一下我翻譯的兩篇文章
鬼影記錄翻譯一
鬼影記錄翻譯二
了解一下SQL Server
說實話,我在大學的時候用了下sql server,自從工作以來一直沒有接觸過sql sever,越是不接觸越是排斥,也是不了解越是排斥,所以花點時間了解下自己不熟悉的技術,可能也會有一番收穫。sqlserver的版本 它最初是由microsoft sybase和ashton tate三家公司共同開發...
了解一下NTLM
ntlm 在客戶機與伺服器之間提供身份認證的安全包。ntlm 身份驗證協議 是 質詢 應答身份驗證協議,是windows nt 4.0 及其早期版本中用於網路身份驗證的預設協議。windows 2000 中仍然支援該協議,但它不再是預設的。ntlm身份驗證過程 ntlm 是用於 windows nt...
了解一下 display flex
一 display flex flex 是flexuble box的縮寫,意為 彈性盒子 用來為盒狀模型提供最大的靈活性.任何乙個容器都可以指定為flex布局.box 行內元素也可以使用flex布局.box webkit核心的瀏覽器,必須加上 webkit box 注意為父級設計flex布局以後,子...