首頁>Club>
1
回覆列表
  • 1 # nklal14325

    伺服器CPU中SQL佔用率高,可能是下面的情況1、沒有索引或者沒有用到索引(這是查詢慢最常見的問題,是程式設計的缺陷) 2、I/O吞吐量小,形成了瓶頸效應。 3、沒有建立計算列導致查詢不最佳化。 4、記憶體不足 5、網路速度慢 6、查詢出的資料量過大(可以採用多次查詢,其他的方法降低資料量) 7、鎖或者死鎖(這也是查詢慢最常見的問題,是程式設計的缺陷)8、sp_lock,sp_who,活動的使用者檢視,原因是讀寫競爭資源。9、返回了不必要的行和列 10、查詢語句不好,沒有最佳化 檢視死鎖,可以開啟企業管理器->(資料庫伺服器中的)管理->當前活動->鎖/程序中看到死鎖一般是資料庫手工起事務沒有關閉(commit tran)造成的,但如果程式程式碼量大,很難找出來的

  • 2 # 使用者1931173721557

    我也曾遇到過這個問題,記得當時我寫了一個複雜的儲存過程,裡面處理了很多個數據表的資料,且在儲存過程中使用了事務。

    該儲存過程在查詢分析器中執行需要20秒左右的時間。但到程式中去執行,所需要的時間就要長很多了。而且由於採用事務,容易產生死鎖。問題與你的一樣。後來我採取了以下措施,問題便得到改狀況,至目前為止沒有再出現過此問題: 將你的儲存過程進行最佳化,將需要的資料取到儲存中,使用臨時表或變數儲存,而對於插入資料、刪除資料、修改資料、等需要事務的地方,則開啟事務,在此之前的處理中,不要使用事務。另外就是儘量減少對大資料量表的操作次數,最佳化各句話,使其執行時間快,效率優。儘量降低儲存過程的執行時間。減少資料表在事務中鎖定的時間。祝你成功

  • 中秋節和大豐收的關聯?
  • 能不能用兩隻薛定諤的貓來進行量子糾纏試驗?