会话后台运行引起并行进程释放问题
有一套rac数据库,一个业务报表逻辑非常复杂,sql语句达到了600多行,表关联有20多个,采取了并行查询的方式去优化,而这个并行查询虽然速度上得到了解决,但是经常出现几个月之前的进程都不释放的状态,而且这些遗留的并行进程拖慢了系统的运行,最后经常不
有一套rac数据库,一个业务报表逻辑非常复杂,sql语句达到了600多行,表关联有20多个,采取了并行查询的方式去优化,而这个并行查询虽然速度上得到了解决,但是经常出现几个月之前的进程都不释放的状态,而且这些遗留的并行进程拖慢了系统的运行,最后经常不得不采取手动kill掉这些并行进程来释放压力。
查看了很多的文档并没有发现一个合适的说法,而这些并行进程都是在进行PX Deq:Execution Msg或者PX Deq Credit: send blkd等待,做hanganalyze也找不到问题的原因,mos上也没发现疑似的bug。
看见mos这篇文章
PX Deq Credit: Send Blkd Waits Seen after CTRL-C on a Session and Parallel Query Slaves Not Released (文档 ID 1545069.1)
Cause:
This is not a bug per Bug 1837760: PARALLEL QUERY SLAVE DOES NOT GET RELEASED AFTER CTRL-C TO CANCEL THE QUERY, which was closed as an enhancement request. Slaves will be considered "busy" until a SQL statement completes and releases the cursor. If a session is CTRL-C'd, the cursor will remain open until either (1) another SQL statement is issued in the session, or (2) the session is exited. This behavior continues through 11g and higher
Solution:
If you CTRL-C a session running in parallel, either issue another SQL statement to release the slaves, or exit the session.
这篇文章大概说的就是一个并行查询如果被终止了,这些并行进程依然还会存在,并进行一些PX Deq的等待,而解决办法是需要在当前这个session中执行另一个查询或者exited退出这个会话。
根据上面的文章小鱼手动做了这个复杂模块的查询,然后又叉掉了这个模块,过了很长的时间这个对应的并行进程并不释放,而查询这些并行进程发现对应的sql语句正是这个复杂的sql语句。
这个600多行的sql语句不采用并行执行是相当的慢,调优由于网络等因素都不方便,所以建议做的是并行,但是由于是客户操作某个模块触发的这个复杂的sql,而且有时候如果半天不响应就直接叉掉了那个模块重来,而叉掉这个模块的动作并不会清除当前这个会话,正是这个会话后台运行导致了oracle的pmon进程不会去释放一个运行的好好的进程,从而引起了太多的看似没有释放的并行进程,其实在oracle看来这些并行进程还在正常运行,根本就不需要释放,其实也就是会话后台运行引起的并行进程不释放,而为什么叉掉这个模块后,会话依然还在后台运行,这个可能跟中间件等相关,而这个中间件用的weblogic。
原文地址:会话后台运行引起并行进程释放问题, 感谢原作者分享。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Discuz後台登入問題解決方法大揭秘,需要具體程式碼範例隨著網路的快速發展,網站建置變得越來越普遍,而Discuz作為一款常用的論壇建站系統,受到了許多站長的青睞。然而,正是因為其功能強大,有時候我們在使用Discuz的過程中會遇到一些問題,例如後台登入問題。今天,我們就來大揭秘Discuz後台登入問題的解決方法,並且提供具體的程式碼範例,希望能幫助到有需要

如何在Linux系統中執行.sh檔?在Linux系統中,.sh文件是一種被稱為Shell腳本的文件,用於執行一系列的命令。執行.sh檔案是非常常見的操作,本文將介紹如何在Linux系統中執行.sh文件,並提供具體的程式碼範例。方法一:使用絕對路徑執行.sh文件要在Linux系統中執行一個.sh文件,可以使用絕對路徑來指定該文件的位置。以下是具體的步驟:打開終

PyCharm是一款非常受歡迎的Python整合開發環境(IDE),它提供了豐富的功能和工具,使得Python開發變得更有效率和便利。本文將為大家介紹PyCharm的基本操作方法,並提供具體的程式碼範例,幫助讀者快速入門並熟練操作工具。 1.下載安裝PyCharm首先,我們需要前往PyCharm官網(https://www.jetbrains.com/pyc

Linux程序優先級調整方法詳解在Linux系統中,進程的優先順序決定了其在系統中的執行順序和資源分配。合理調整進程的優先順序可以提高系統的效能和效率。本文將詳細介紹Linux中如何調整進程的優先級,並提供具體的程式碼範例。一、進程優先權概述在Linux系統中,每個行程都有一個與之相關聯的優先權。優先權的範圍一般是-20到19,其中-20表示最高優先權,19表

WordPress後台亂碼煩惱?試試這些解決方案,需要具體程式碼範例隨著WordPress在網站建置中的廣泛應用,許多用戶可能會遇到WordPress後台亂碼的問題。這種問題會導致後台管理介面顯示亂碼,對使用者的使用帶來極大困擾。本文將介紹一些常見的解決方案,幫助使用者解決WordPress後台亂碼的煩惱。修改wp-config.php檔案開啟wp-config.

大家知道matlab怎麼運行m檔嗎?下文小編就帶來了matlab運行m文件的方法教程,希望對大家能夠有所幫助,一起跟著小編來學習一下吧!1、首先打開matlab軟體,選擇左上角的“打開”,如下圖所示。 2、然後選擇要運行的m文件,並且打開,如下圖所示。 3.在視窗按F5來運行程序,如下圖所示。 4.我們可以在命令列視窗和工作區看運行結果,如下圖。 5.直接點選「運行」也可以運行文件,如下圖所示。 6.最後可以在命令列視窗和工作區看m檔案的運行結果,如下圖所示。上面就是小編為大家帶來的matlab怎麼

為什麼Linux中的行程會處於休眠狀態?在Linux作業系統中,進程可能會處於休眠狀態,這是由於多種不同的原因和條件造成的。當進程處於休眠狀態時,表示該進程暫時被掛起,無法繼續執行,直到滿足某種條件後才能被喚醒繼續執行。接下來將詳細介紹在Linux中進程進入休眠狀態的幾種常見情況,並透過具體的程式碼範例加以說明。等待I/O完成:當進程發起一個I/O操作(例如讀取

PyCharm是一款功能強大的Python整合開發環境,透過靈活的快速鍵可提高開發效率。本文將向您介紹PyCharm中常用的運行快捷鍵,並提供具體的程式碼範例,幫助您快速入門PyCharm的使用。首先,我們需要了解PyCharm中最基本的運作快速鍵:執行程式。在PyCharm中,您可以使用快速鍵"Shift+F10"來執行目前的Python程式。下面是一
