實戰案例 TEMPDB暴漲

2021-08-07 23:23:53 字數 1505 閱讀 2025

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 或者查

都是不准的

Python selenium案例實戰

最近專案有乙個需求 測試人員考勤資料分析結果,歷史的手工測試方式是手動將每一種測試資料依次補加進考勤系統內,這種方式在很大程度上降低了測試的效率,以及資料補加的不準確性,所以,趁此機會,寫了selenium指令碼來替代手工測試。實現功能如下 迴圈補加考勤資料,分別是簽到裝置 簽到時間,簽退裝置 簽退...

2020 10 27實戰案例

實戰案例 encoding utf 8 import numpy as np import matplotlib.pyplot as plt from matplotlib.font manager import fontproperties font fontproperties fname r ...

Spark簡單案例實戰

一.給定一組鍵值對 spark 2 hadoop 6 hadoop 4 spark 6 鍵值對的key表示圖書名稱,value表示每天圖書銷量,請計算出每個鍵對應的平均值,也就是每種圖書每天的平均銷量。1.如下 val book array spark 2 hadoop 6 hadoop 4 spa...