本發明專利技術實施例提供了一種數據庫操作級別的IO跟蹤方法、裝置、設備及介質,涉及數據庫技術領域,其中,該方法包括:針對數據庫操作的每次IO訪問,確定該IO訪問所訪問的文件的數據類型;確定該IO訪問所訪問的每個數據塊的塊號和訪問模式;通過塊鏈表的方式記錄訪問的每個數據塊的塊號和訪問模式;通過CPU指令計算相鄰IO訪問的時間間隔;統計每個數據類型的文件中每個訪問模式所訪問的數據塊的占比信息,并根據時間間隔統計IO訪問的時間信息。該方案實現了數據庫操作級別的每次IO訪問的跟蹤記錄,可以為數據庫操作級別的IO分析提供準確、可靠的數據依據;實現了記錄的緊湊存儲、精簡化、輕量化,有利于記錄文件的在線開啟。有利于記錄文件的在線開啟。有利于記錄文件的在線開啟。
【技術實現步驟摘要】
數據庫操作級別的IO跟蹤方法、裝置、設備及介質
[0001]本專利技術涉及數據庫
,特別涉及一種數據庫操作級別的IO跟蹤方法、裝置、設備及介質。
技術介紹
[0002]計算機系統中,磁盤訪問(統稱為IO訪問)是比內存訪問要慢地多的操作。在數據庫中,它往往是耗時的大頭。而IO(輸入/輸出)訪問次數特別多,因此記錄IO訪問的成本很高,目前,需要有既能針對查詢級別、又足夠輕量、能夠在線使用的機制。
[0003]下面是一些常見的記錄IO訪問的方法及其缺點。
[0004]操作系統級別的工具:大多數操作系統提供了工具來監視和跟蹤磁盤IO,例如Linux上的iostat、iotop和dstat命令,Windows上的性能監視器(Performance Monitor)等。這些工具可以提供有關磁盤IO的詳細信息,包括讀寫速度、IO隊列長度、響應時間等。但是,這些統計信息較粗,且無法區分是其它業務還是數據庫行為,更不能細分到查詢粒度,只能做大致的評估。
[0005]數據庫系統內部工具:許多數據庫系統提供了內部工具或命令,用于監視和跟蹤數據庫的IO活動。例如,在Oracle中,可以使用AWR報告(Automatic Workload Repository)和ASH報告(Active Session History)來獲取有關IO的統計信息。在MySQL中,可以使用SHOW ENGINE INNODB STATUS命令來獲取InnoDB存儲引擎的IO狀態。但是,這些統計信息可以在線獲取,但它往往包含了一段時間內的所有IO訪問行為,因此無法用于分析個別查詢IO的情況。
[0006]存儲引擎日志:某些數據庫存儲引擎可能記錄了IO操作的日志,可以通過查看這些日志文件來了解數據庫的IO活動。例如,InnoDB存儲引擎在錯誤日志中記錄了重要的IO操作,可以通過檢查錯誤日志來獲取相關信息。但是,這些日志只能用于記錄重要的事件,相對記錄的事件較少,而無法用于分析性能。
[0007]Oracle數據庫提供了SQL Trace功能,它使用數據庫跟蹤(Database Tracing)來捕獲和記錄SQL執行期間的相關信息。通過在會話級別啟用跟蹤,Oracle會將跟蹤信息寫入跟蹤文件(trace file),其中包含了SQL語句、執行計劃、IO操作、等待事件等詳細信息。可以使用Oracle Trace文件解析工具(如TKPROF)來解析和分析跟蹤文件。但是,這些Trace 日志過于詳細,輸出量大,對于查詢執行時間有明顯的影響,不適合在線隨時開啟。
技術實現思路
[0008]有鑒于此,本專利技術實施例提供了一種數據庫操作級別的IO跟蹤方法,以解決現有技術中IO跟蹤結果無法用于數據庫操作級別的IO分析、跟蹤結果文件不夠輕量化無法在線開啟的技術問題。該方法包括:針對數據庫操作的每次IO訪問,確定該IO訪問所訪問的文件的數據類型;在所訪問的文件中,確定該IO訪問所訪問的每個數據塊的塊號和訪問模式;
通過塊鏈表的方式記錄訪問的每個數據塊的塊號和訪問模式;通過CPU指令計算相鄰IO訪問的時間間隔;統計每個數據類型的文件中每個訪問模式所訪問的數據塊的占比信息,并根據所述時間間隔統計IO訪問的時間信息。
[0009]本專利技術實施例還提供了一種數據庫操作級別的IO跟蹤裝置,以解決現有技術中IO跟蹤結果無法用于數據庫操作級別的IO分析、跟蹤結果文件不夠輕量化無法在線開啟的技術問題。該裝置包括:數據類型確定模塊,用于針對數據庫操作的每次IO訪問,確定該IO訪問所訪問的文件的數據類型;訪問信息確定模塊,用于在所訪問的文件中,確定該IO訪問所訪問的每個數據塊的塊號和訪問模式;記錄模塊,用于通過塊鏈表的方式記錄訪問的每個數據塊的塊號和訪問模式;時間計算模塊,用于通過CPU指令計算相鄰IO訪問的時間間隔;統計模塊,用于統計每個數據類型的文件中每個訪問模式所訪問的數據塊的占比信息,并根據所述時間間隔統計IO訪問的時間信息。
[0010]本專利技術實施例還提供了一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述計算機程序時實現上述任意的數據庫操作級別的IO跟蹤方法,以解決現有技術中IO跟蹤結果無法用于數據庫操作級別的IO分析、跟蹤結果文件不夠輕量化無法在線開啟的技術問題。
[0011]本專利技術實施例還提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有執行上述任意的數據庫操作級別的IO跟蹤方法的計算機程序,以解決現有技術中IO跟蹤結果無法用于數據庫操作級別的IO分析、跟蹤結果文件不夠輕量化無法在線開啟的技術問題。
[0012]與現有技術相比,本說明書實施例采用的上述至少一個技術方案能夠達到的有益效果至少包括:提出了針對數據庫操作的每次IO訪問進行跟蹤記錄,在確定該IO訪問所訪問的文件的數據類型的情況下,確定該IO訪問所訪問的每個數據塊的塊號和訪問模式,通過CPU指令計算相鄰IO訪問的時間間隔,進而可以統計每個數據類型的文件中每個訪問模式所訪問的數據塊的占比信息和IO訪問的時間信息,以得到跟蹤統計結果。實現了數據庫操作級別的每次IO訪問的跟蹤記錄,且實現了跟蹤統計結果包括每個數據類型的文件中每個訪問模式所訪問的數據塊的占比信息和IO訪問的時間信息,由于本申請專利技術人發現不同數據類型的文件訪問、不同訪問模式均會影響訪問性能,因此該跟蹤統計結果包括每個數據類型的數據文件中每個訪問模式所訪問的數據塊的占比信息和IO訪問的時間信息的情況下,可以為數據庫操作級別的IO分析提供準確、可靠的數據依據,以利于實現有效、準確的數據庫操作級別的IO分析;上述跟蹤方法在滿足數據庫操作級別的IO分析的數據集需求的同時,還提出了在訪問過程中通過塊鏈表的方式記錄訪問的每個數據塊的塊號和訪問模式,實現了記錄的緊湊存儲,既減少了內存分配時間,也極大地減少了遍歷鏈表的時間,實現了記錄的精簡化、輕量化,有利于跟蹤記錄文件的在線開啟,進而有利于提高記錄IO訪問過程的效率;此外,還提出了通過CPU指令計算相鄰IO訪問的時間間隔,可以大大地降低計算開銷,有利于提高效率。
附圖說明
[0013]為了更清楚地說明本申請實施例的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其它的附圖。
[0014]圖1是本專利技術實施例提供的一種數據庫操作級別的IO跟蹤方法的流程圖;圖2是本專利技術實施例提供的一種計算機設備的結構框圖;圖3是本專利技術實施例提供的一種數據庫操作級別的IO跟蹤裝置的結構框圖。
具體實施方式
[0015]下面結合附圖對本申請實施例進行詳細描述。
[0016]以下通過特定的具體實例說明本申請的實施方式,本領域技術人員可由本說明書所揭露的內容輕易地了解本申請的其他優點與功效。顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。本申請還可以本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種數據庫操作級別的IO跟蹤方法,其特征在于,包括:針對數據庫操作的每次IO訪問,確定該IO訪問所訪問的文件的數據類型;在所訪問的文件中,確定該IO訪問所訪問的每個數據塊的塊號和訪問模式;通過塊鏈表的方式記錄訪問的每個數據塊的塊號和訪問模式;通過CPU指令計算相鄰IO訪問的時間間隔;統計每個數據類型的文件中每個訪問模式所訪問的數據塊的占比信息,并根據所述時間間隔統計IO訪問的時間信息。2.如權利要求1所述數據庫操作級別的IO跟蹤方法,其特征在于,確定該IO訪問所訪問的每個數據塊的訪問模式,包括:將該IO訪問所訪問的當前數據塊的塊號與上一數據塊的塊號進行大小比較,如果相同,則確定當前數據塊的訪問模式是反復讀同一頁模式;如果大于,則確定當前數據塊的訪問模式是前向訪問模式;如果大于1,則確定當前數據塊的訪問模式是順序訪問模式;如果小于,則確定當前數據塊的訪問模式是后向訪問模式;和/或,判斷該IO訪問所訪問的當前數據塊與訪問上一數據塊的時間間隔是否小于10微秒,若是,則確定當前數據塊的訪問模式是命中緩存模式。3.如權利要求1所述數據庫操作級別的IO跟蹤方法,其特征在于,通過塊鏈表記錄訪問的每個數據塊的塊號和訪問模式,包括:通過當前一個頁面來記錄訪問的每個數據塊的塊號和訪問模式,在當前一個頁面記錄滿時再追加下一個頁面進行記錄。4.如權利要求1至3中任一項所述數據庫操作級別的IO跟蹤方法,其特征在于,統計每個數據類型的數據文件中每個訪問模式所訪問的數據塊的占比信息,包括:針對每個數據類型的文件的數據塊訪問情況,設置連續的內存空間,該連續的內存空間內的標記位與數據塊的塊號一一映射;將被訪問過的數據塊的塊號映射的標記位置為1,通過統計1的數量來每次IO訪問所訪問的數據塊的總數;根據每個訪問模式所訪問的數據塊的數量和所述總數,統計每個訪問模式所訪問的數據塊的占比。5.如權利要...
【專利技術屬性】
技術研發人員:王勇,姚延棟,翁巖青,于寧,高小明,
申請(專利權)人:北京四維縱橫數據技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。