在資料庫查詢時遇到死迴圈查詢問題
近日,在程式除錯時,明明結果集只有兩條記錄的情況下,執行 查詢語句卻會一直顯示正在執行SQL命令,陷入不能停止的查詢狀態。
最開始,我還懷疑是不是自己語句寫錯,後來敢十分肯定語句完全是對的。那麼此時我就糾結到抓狂。
經過一番思考,我重新關閉plsql。再次開啟查詢時,突然就好了。最後,我確定是以下問題;
資料庫重複查詢時,由於某個原因鎖表了。此時的我感覺略無語啊,我們遇到問題總是會陷入程式有沒有錯的僵局,而從來沒有去懷疑過是工具或者環境由於某種因素髮生變化,造成了諸多問題。
另外,記得在較長時間不對資料庫操作時,關掉pl/sql.或者在執行操作前重啟下最好。
本文僅為日常問題的總結與記錄。如有同樣問題的朋友,可以作為參考。大神(不論真假,自己覺得是就可以)可忽略,謝謝!
相關推薦
在資料庫查詢時遇到死迴圈查詢問題
近日,在程式除錯時,明明結果集只有兩條記錄的情況下,執行 查詢語句卻會一直顯示正在執行SQL命令,陷入不能停止的查詢狀態。 最開始,我還懷疑是不是自己語句寫錯,後來敢十分肯定語句完全是對的。那麼此時我就糾結到抓狂。 經過一番思考,我重新關閉plsql。再次開啟查詢時,突然就
使用@ManyToMany查詢資料時的死迴圈問題解決辦法
初學使用spring data jpa,將問題記錄 以User 和Role為例,兩者為雙向的多對多關係,即可以通過User查詢到Role資訊,也可以通過Role查詢到User資訊 首先要明白為什麼會出現死迴圈這個問題,造成這個死迴圈的原因是因為查詢User時,包含了Role屬性,Role中又
springboot中@NamedQuery查詢結果出現死迴圈
在進行@NamedQuery時,出現這樣的結果: [{"id":1,"name":"諸葛亮","address":"成都","age":33,"sex":"男","clazz":{"code":1,"name":"應用數學1班","students":[{"id":2,"name":"觀音","
Visual Studio 效能分析工具 查詢 執行緒死迴圈
同事寫了一個MD5差分包校驗的工具,我在使用的時候發現關閉工具後,工具仍然在後臺執行。因為之前有建議同事開啟子執行緒去做對比壓縮分包,所以估計應該是在子執行緒中有死迴圈。但是我不知道去哪裡尋找這個問題。想起來之前有用過Visual Studio的效能測試工具,說不定可以用來查
SQL SERVER 資料庫還原時卡死
1.故障情況: 在SQL SERVER資料庫進行差分備份後,還原資料庫時選錯基礎備份副本(分量備份的那個版本),導到還原時資料庫報錯,無法再對資料庫進行離線及其它處理 錯誤提示:資料庫恢復的時候停在 Restoring 狀態 執行 RESTORE DATABASE &l
解決json序列化有多對一和多對多關係的物件時造成死迴圈的問題
json序列化的物件中存在雙向引用會導致的無限遞迴(infinite recursion)問題。 使用@JsonBackReference標記在有多對一或者多對多關係的屬性上即可解決這個問題,舉例
YII2中使用with關聯查詢時,附帶關聯查詢條件
前言:YII2中可以使用model中的relation關係進行表關聯 應用場景舉例: 需要查詢所有使用者的資訊,並關聯查詢(with)出使用者的發表過的文章,且文章的評論不為0的資料。 $user= user::find()->with([
Hibernate兩表多對多關係並引入第三表,JSON傳遞時出現死迴圈
There is a cycle in the hierarchy 出現原因:三表之間存在對映關係,若不限制迴圈,其中會由於表的外來鍵問題而出現錯誤 表:Permission 、Role 、PermissionRole 解決方法: 一、 Servlet: List&
for迴圈查詢資料庫,把結果放在集合裡面,但是集合的長度卻始終為1?
for (int i = 0; i < tell.length; i++) { String sql=""; if(tell[i]=="地址為45號"||tell[i]=="地址為23號"||tell[i]=="地址為31號"||tell[i]=="地址為50號
Hibernate查詢時,資料庫返回多條紀錄,封裝後的物件卻都是一樣的問題
1. 背景 表的設計如下 2.實體類部分如下: public class WdsStRsvrREntity { @Id private String stcdt; private Date ymdhm; 使用jpa的 findByStcd
php中避免迴圈查詢資料庫的方式
在迴圈中查詢資料不但效率低下而且對資料庫造成很大對壓力。在平常的開發中應該儘量避免這種情況,以下是我以laravel框架的一個例子: 需求:有兩個資料表,一個小組型別表,一個小組表。需查出小組型別下的小組。 當然這裡你可以使用關聯查詢。我只是拿這個舉個例子,程式碼如下:
django使用資料庫快取時避免使用者鑑權頻繁查詢使用者資料
一個特殊的業務場景,需要使用資料庫作為快取,導致django在使用者鑑權時頻繁查詢資料庫,使用者訪問每個需要許可權的頁面都會查詢一次。為了減少資料庫開銷,把使用者資料快取,需要過載AUTHENTICAT
如何設定Sql Server資料庫查詢時區分大小寫和全形半形
開發中常用的資料庫有Oracle和Sql Server,Oracle資料庫在查詢的時候是有大小寫區分的,而Sql Server資料庫則不區分大小寫,如何使Sql Server資料庫在查詢時有大小寫的區分呢?下面我們就來總結一下: 要想設定Sql Server資料庫區
資料庫中查詢時怎樣獲得序號值?
1. Oracel中 示例: ( ROW_NUMBER() OVER ( PARTITION BY 欄位 ORDER BY 欄位) )PARTITION BY:通過什麼進行區分。 ORDER BY : 通過什麼進行排序在Oracel排序中總共有三個: r
性別欄位在資料庫中儲存數字,查詢時,如何查詢出數字對應的男和女?(case when的應用)
今天敲程式碼的時候,剛好遇到這個問題,寫部落格記一下。 情況如下:性別欄位在資料庫中儲存的是數字,男對應1,女對應0。然後,查詢的時候,我想查詢出男和女兩個字,而不是1和0。 一開始,我寫的sql語句,是直接從查詢出性別對應的數字,sql語句如下: SELECT Em
從資料庫中查詢時,限制顯示的行數
以顯示5行為例: BD2中,使用fetch first字句 select * from emp fetch first 5 rows only MySQL和PostgreSQL中,使用Limit select * from emp limit 5 在Oracle中,在w
springdatajpa多表查詢死迴圈
近期在看springdatajpa多表查詢的時候,運用註解@ManyToOne(),@ManyToMany的時候,出現死迴圈, 老是報錯Detail formatter error: An exception occurred: java.lang.StackOverflo
mysql模糊查詢unicode編碼的欄位的解決方案——mybatis查資料庫mysql時對unicode支援問題
1.mysql資料庫裡的nickname欄位內容是經過unicode編碼處理後儲存的, 如:\u73\u74\u61\u72\u7a\u6d\ud83d\udc7f\u20\ud83d\ude04\u20\ud83d\ude03\u20\ud83d\ude13 實際明文:
VC++ 通過ADO連線資料庫查詢時返回空值報錯的解決方案
當資料庫的欄位值允許為空時, 而且此時內容也為空時,則執行查詢會出錯,例如 CString str = pRecordset->GetFields()->GetItem((long)0)->GetValue(); 或者 str= pRecordset-&
JAVA 讓oracle資料庫模糊查詢時不區分程式碼大小寫
方法一:select * from [table] where lower(name) like lower('%val%');select * from [table] where upper(name) like upper('%val%');table:表名name:查