實戰案例--TEMPDB暴漲

来源:http://www.cnblogs.com/OwenZeng/archive/2017/09/08/7494449.html
-Advertisement-
Play Games

前言 tempdb暴增,造成磁碟空間不足,甚至影響業務運行。 正文 如圖,tempdb log文件從7.40開始突然暴漲,因為 tempdb 0 M到 40G tempdb 所在磁碟是C 盤 C盤的可用空間正好也為40G 在下午16.22左右的時候tempdb 文件暴漲已經影響到業務使用.臨時解決是 ...


前言

  tempdb暴增,造成磁碟空間不足,甚至影響業務運行。    

正文

  如圖,tempdb log文件從7.40開始突然暴漲,因為 tempdb 0 M到 40G  

 

  tempdb 所在磁碟是C 盤 C盤的可用空間正好也為40G 在下午16.22左右的時候tempdb 文件暴漲已經影響到業務使用.臨時解決是備份收縮日誌。下麵通過監控信息查找造成問題的原因:   查看7.40 之後這段時間 的運行語句,發下有個會話1085一直在運行 這個會話分配了內部對象(就是使用了tempdb的對象)   而言會話從7.46開始,一直持續到下午16.20 從時間上也非常吻合。所以他就是我們要找的元凶。  

原因

  對應普通的 簡單模式的資料庫無法重用日誌的主要原因是沒有做checkpoint,和存在沒有提交的事務。但對於TEMPDB 來講 他不需要預寫日誌。因為Tempdb 不支持重做(Redo)但需支持回滾(rollback).這也是tempdb日誌存在的原因.   如果一個事務還沒有提交,那它可以在任何時候回滾。SQL Server必須做好這種準備,以便能夠從日誌記錄中找回修改前的數據內容,完成回滾。在SQL Server裡面,所有的日誌記錄都有嚴格順序,中間不可以有任何跳躍。所以如果某個資料庫有沒有提交的事務,SQL Server會標記所有從這個事務開始的日誌記錄(不管和這個事務有沒有關係)為活動事務日誌 。這些日誌記錄都有可能“需要”被用來做回滾。  

解決

找到語句後,這個語句一直持續運行的原因是,等待ASYNC_NETWORK_IO 這說明,客戶端和資料庫伺服器網路傳輸存在問題或者程式中未接收資料庫傳輸的數據。更多的是後者。問題就提交給開發,檢查代碼,對程式進行優化。

補充

  查看日誌空間使用的方法:   DBCC LOGinfo() 查看vlf的狀態   DBCC SQLPERF(LOGSPACE) 建議用,查看日誌空間的使用 ,更準。 從UI 或者查    

 用下麵的語句查:

都是不准的        
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 綁定服務 右邊部分就是綁定服務的運行過程 這樣綁定的目的就是服務綁定者調用服務的方法,在我的樣例里就是體現為服務訪問者調用服務的show()方法 來張效果圖吧 分析: 1、第一步還是繼承服務類 2、第二步的話就是配置服務 3、第三步就是綁定服務 ...
  • 播放音樂案例 分析: 和上一篇文章的結構是一樣的,只不過我們需要在這裡裡面加上播放音樂的一些操作: 其實也就是調用系統的播放音樂的API而已,寫在服務裡面就好, //媒體播放器 private MediaPlayer player; 第一步,照樣找個類來繼承服務類 第二步,該配置的監聽服務也是要配置 ...
  • service 下圖昨天是沒被綁定的情況,右邊是被綁定的情況 看下測試的效果圖: 程式被關閉,服務還是會在後臺運行,再次運行程式,程式還是能啟動和停止服務 分析: 1、先整個類繼承服務類 2、然後去配置這個服務 fry.myService是上面那個類的路徑 3、再去啟動和停止服務 ...
  • 這裡實現的功能是從主頁佈局的fragment點擊跳轉到一個acitivity,然後頂部是一個切換的segment底部部是一個listview,點擊segment分段讓listview載入不同的內容。我這裡沒再使用viewpager,應該使用viewpager+listview也能實現。我這裡使用的算 ...
  • 通過案例我們發現“獲得連接”和“釋放資源”兩次代碼將在之後的增刪改查所有功能中都存在,開發中遇到此種情況,將採用工具類的方法進行抽取,從而達到代碼的重覆利用。 1、使用properties配置文件 開發中獲得連接的4個參數(驅動、URL、用戶名、密碼)通常都存在配置文件中,方便後期維護,程式如果需要 ...
  • 存儲過程和函數: 1.創建存儲過程和函數: 存儲過程: delimiter $$ create procedure proc_name() BEGIN 查詢語句; // 記得加分號 END $$ delimiter ; 函數: delimiter $$ create function func_na ...
  • DML(data manipulation language): 它們是SELECT、UPDATE、INSERT、DELETE,就象它的名字一樣,這4條命令是用來對資料庫里的數據進行操作的語言DDL(data definition language): DDL比DML要多,主要的命令有CREATE、 ...
  • Mysql only_full_group_by以及其他關於sql_mode原因報錯詳細解決方案 網上太多相關資料,但是抄襲嚴重,有的講的也是之言片語的,根本不連貫(可能知道的人確實不想多說) 我總共花了3個多小時,反覆測試,總結一下 Mysql only_full_group_by以及其他關於sq ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...