作者kb0130 (乌拉拉)
看板Database
标题[SQL ] TEMP TABLE效能问题
时间Sat Jun 18 06:34:28 2016
资料库名称: 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://webptt.com/cn.aspx?n=bbs/Database/M.1466202870.A.204.html
1F:推 rockchangnew: 可以注意当下的Wait Type或是否有被BLOCK 06/18 11:36
2F:→ rockchangnew: temp table的笔数是多或少,tempdb有无切多File等 06/18 11:38
3F:→ iFEELing: 慢到30min的时候看wait event看他在等什麽 06/18 12:39
4F:→ kb0130: 回楼上几楼,完全没有等待,tempdb切8个FILE 06/18 13:39
5F:→ kb0130: SP_WHO2状态是RUNABLE,但是DMV又是RUNNING,很怪 06/18 13:41
6F:推 rockchangnew: 可以到FB的SQL PASS Taiwan去问,那里的高手多 06/18 13:43
7F:推 rockchangnew: 变慢的时候看执行计画,应该都可以发现问题 06/18 13:45
8F:→ kb0130: 我也有加SQL PASS,很常看到楼上这位高手,只是不喜欢抛头 06/18 15:10
9F:→ kb0130: 露面,回正题,执行计画最高的COST都在INSERT #TB那段 06/18 15:11
10F:→ futureisours: insert #table後续会有select动作吧,我猜是这边慢 06/18 23:29
11F:→ futureisours: #TABLE 可以加INDEX 06/18 23:29
12F:→ kb0130: 回楼上,当下的执行语法是INSERT,没看过HANG在SELECT的 06/19 08:08
13F:→ kb0130: 也没有任何WAIT TYPE或BLOCK。 06/19 08:09
14F:推 YaMeiLo: 如果是sp,把temp table拉到sp外宣告 06/19 09:28
15F:→ YaMeiLo: 避免重新编译 06/19 09:28
16F:→ kb0130: 谢谢!我明天试试看 06/19 12:27