[SQL ] TEMP TABLE效能問題

看板Database (資料庫)作者 (烏拉拉)時間8年前 (2016/06/18 06:34), 編輯推噓4(4012)
留言16則, 5人參與, 最新討論串1/1
資料庫名稱: 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

06/18 11:36, , 1F
可以注意當下的Wait Type或是否有被BLOCK
06/18 11:36, 1F

06/18 11:38, , 2F
temp table的筆數是多或少,tempdb有無切多File等
06/18 11:38, 2F

06/18 12:39, , 3F
慢到30min的時候看wait event看他在等什麼
06/18 12:39, 3F

06/18 13:39, , 4F
回樓上幾樓,完全沒有等待,tempdb切8個FILE
06/18 13:39, 4F

06/18 13:41, , 5F
SP_WHO2狀態是RUNABLE,但是DMV又是RUNNING,很怪
06/18 13:41, 5F

06/18 13:43, , 6F
可以到FB的SQL PASS Taiwan去問,那裏的高手多
06/18 13:43, 6F

06/18 13:45, , 7F
變慢的時候看執行計畫,應該都可以發現問題
06/18 13:45, 7F

06/18 15:10, , 8F
我也有加SQL PASS,很常看到樓上這位高手,只是不喜歡拋頭
06/18 15:10, 8F

06/18 15:11, , 9F
露面,回正題,執行計畫最高的COST都在INSERT #TB那段
06/18 15:11, 9F

06/18 23:29, , 10F
insert #table後續會有select動作吧,我猜是這邊慢
06/18 23:29, 10F

06/18 23:29, , 11F
#TABLE 可以加INDEX
06/18 23:29, 11F

06/19 08:08, , 12F
回樓上,當下的執行語法是INSERT,沒看過HANG在SELECT的
06/19 08:08, 12F

06/19 08:09, , 13F
也沒有任何WAIT TYPE或BLOCK。
06/19 08:09, 13F

06/19 09:28, , 14F
如果是sp,把temp table拉到sp外宣告
06/19 09:28, 14F

06/19 09:28, , 15F
避免重新編譯
06/19 09:28, 15F

06/19 12:27, , 16F
謝謝!我明天試試看
06/19 12:27, 16F
文章代碼(AID): #1NP7hs84 (Database)
文章代碼(AID): #1NP7hs84 (Database)