oracle 19c普通用戶查詢字典表all_views時等待row cache mutex事件

近日,一19c oracle rac測試環境,初始反饋是sys用戶查詢很快,cdb用戶如c##any查詢系統表如all_tables很慢,至少相差幾十倍、有時候直接半天超時還沒執行完,經查一開始發現在等待gc cr multi block mixed事件,該事件據官方解釋,該事件時提升性能用的,如下:

Oracle GC CR Multi Block Mixed 事件是一種用於提高Oracle數據庫性能和吞吐量的重要性能因素,它幫助加快多個進程在同一時間段內存入和取出數據庫塊(block)的過程,以及多個塊之間相互組合的過程。

GC CR Multi Block Mixed 事件可以有效的利用完整的數據庫緩存服務。當多個進程在同一時間段訪問數據庫時,GC CR Multi Block Mixed 事件可以幫助加速一個進程從數據庫中取出一個塊,並且另一個進程可以放入另一個塊,同時這兩個進程可以相互組合,可以提高多個進程讀寫數據庫效率。

此外,GC CR Multi Block Mixed 事件可以使用複雜性來提高對多個塊之間的這種組合操作。當運行Oracle數據庫中的程序時,它將獲取多個塊,將其複合成一個整體,以滿足特定的要求,可以在更少的時間和更少的緩存使用量完成這種操作,以節省時間和空間。

最後,GC CR Multi Block Mixed 事件可以改進用於訪問數據庫的性能,這對於許多在線應用程序和使用彈性數據庫特性的應用程序特別重要。這種事件還可以改善實時平衡性和數據庫備份操作,幫助管理員維護數據庫。

後來查發現是select xxx from all_tables union all select xxx from all_views,卡在all_views上,此時一直在等待row cache mutex事件事件。如下:

 

 需要打補丁解決,參見https://www.modb.pro/db/65295。

注:確實也有個別案例遇到gc cr multi block mixed是top等待事件的情況,但沒有響應。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章