当前位置: 代码迷 >> Sql Server >> 很蹊跷的一个有关问题!分不够再加
  详细解决方案

很蹊跷的一个有关问题!分不够再加

热度:7   发布时间:2016-04-27 18:56:36.0
很蹊跷的一个问题!分不够再加
两个一模一样的表做同样的查询,记录条数相差不多,一个14w,一个14.7w,但是消耗的时间确是一个35s,一个要40m。百思不得其解啊?是什么原因造成的呢?高手指教。

表一:
CREATE   TABLE   [log_cnc_exportip_0517]   (
[ip]   [varchar]   (255)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[ipnum]   [float]   NULL   ,
[country]   [varchar]   (500)   COLLATE   Chinese_PRC_CI_AS   NULL  
)   ON   [PRIMARY]
GO

表二:
CREATE   TABLE   [log_ct_exportip_0515]   (
[ip]   [varchar]   (255)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[ipnum]   [float]   NULL   ,
[country]   [varchar]   (500)   COLLATE   Chinese_PRC_CI_AS   NULL  
)   ON   [PRIMARY]
GO

更新sql:
update   log_cnc_exportip_0517   set   country   =   tb_ipaddress.country   from   tb_ipaddress   where   log_cnc_exportip_0517.ipnum   between   tb_ipaddress.ip1   and   tb_ipaddress.ip2

让人费解啊!

------解决方案--------------------
update log_cnc_exportip_0517 set country = tb_ipaddress.country from tb_ipaddress where log_cnc_exportip_0517.ipnum between tb_ipaddress.ip1 and tb_ipaddress.ip2

这里的log_cnc_exportip_0517.ipnum匹配条件是between tb_ipaddress.ip1 and tb_ipaddress.ip2
我觉得可能是这里的问题,log_cnc_exportip_0517表中的每条记录的ipnum的使用between tb_ipaddress.ip1 and tb_ipaddress.ip2的条件是不是在tb_ipaddress里面有不止一条记录?
这样的话可能就对了。

------解决方案--------------------
suifix() ( ) 信誉:100 Blog 加为好友 2007-5-17 12:28:14 得分: 0



1。贴上index啊
2。填充因子一样?
3。一张表经常用的?执行操作的时候是不是有并发用户?
4。数据库日至是否在作第二个表的时候满了?而且日至开得很大?
......

填充因子这一观点很重要,填充因子越小,插入的速度就快,但查询速度就慢。
如,当填充因子的值为50%,那么数据库的读取性能会降低2倍。

  相关解决方案