看板 Database 關於我們 聯絡資訊
資料庫名稱: SQL Server 2008 資料庫版本: standard ver in hyper-V 內容/問題描述: 各位前輩好,小弟最近碰到一個狀況, 公司某台Sql Server,常碰到有些語法忽快忽慢 所謂快是1分內,慢能慢到30分鐘那種,同樣SQL參數條件都一樣 查詢當下執行中BATCH,都是INSERT #TEMPTABLE 類的語法 常態執行都不會這樣的,於是自己做了以下調整試圖解決 1.懷疑INSERT #TB 前的SELECT效能差->TUNNING SQL ->直接查已經快到不能再快了 2.統計值更新->更新後當下可能會變快,但有時又無效 3.procedure執行時多加參數 with recompile 4.檢查temp db當下空間使用率很充足,實體DISK IO也很低 作了以上調整都未見改善,狀況時好時壞,從前端AP到SQL AGENT都有類似的情況 餵狗餵了好久都未能找到相似的解答,不知各位前輩有沒有碰過這樣的情形 感謝各位給點還能除錯的方向~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.206.245 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1466202870.A.204.html
rockchangnew: 可以注意當下的Wait Type或是否有被BLOCK 06/18 11:36
rockchangnew: temp table的筆數是多或少,tempdb有無切多File等 06/18 11:38
iFEELing: 慢到30min的時候看wait event看他在等什麼 06/18 12:39
kb0130: 回樓上幾樓,完全沒有等待,tempdb切8個FILE 06/18 13:39
kb0130: SP_WHO2狀態是RUNABLE,但是DMV又是RUNNING,很怪 06/18 13:41
rockchangnew: 可以到FB的SQL PASS Taiwan去問,那裏的高手多 06/18 13:43
rockchangnew: 變慢的時候看執行計畫,應該都可以發現問題 06/18 13:45
kb0130: 我也有加SQL PASS,很常看到樓上這位高手,只是不喜歡拋頭 06/18 15:10
kb0130: 露面,回正題,執行計畫最高的COST都在INSERT #TB那段 06/18 15:11
futureisours: insert #table後續會有select動作吧,我猜是這邊慢 06/18 23:29
futureisours: #TABLE 可以加INDEX 06/18 23:29
kb0130: 回樓上,當下的執行語法是INSERT,沒看過HANG在SELECT的 06/19 08:08
kb0130: 也沒有任何WAIT TYPE或BLOCK。 06/19 08:09
YaMeiLo: 如果是sp,把temp table拉到sp外宣告 06/19 09:28
YaMeiLo: 避免重新編譯 06/19 09:28
kb0130: 謝謝!我明天試試看 06/19 12:27