CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

又是一个优化问题,各位老大看看有什么好方法

楼主shiming25(shim)2004-05-02 13:07:14 在 MS-SQL Server / 基础类 提问

有表一tbl_message,表二tbl_hlrarea  
  其中表一100万条记录,表二3万条记录  
  我现在要根据表二对表一进行更新操作,在表二中建有索引(hrl上)  
  下面这条语句会执行很慢,各位有没有好的写法。  
   
  update   tbl_message   set   area=b.area   from   tbl_message   a,tbl_hlrarea   b   where    
  b.hlr=substring(a.hlr,1,10) 问题点数:20、回复次数:6Top

1 楼zheninchangjiang(徐若涵)回复于 2004-05-02 13:30:08 得分 3

这个语句很好呀  
  试试(应该是一样的效果):  
  update   tbl_message   set   area=b.area   from   tbl_message   a   join   tbl_hlrarea   b   on  
  b.hlr=substring(a.hlr,1,10)Top

2 楼zjcxc(邹建)回复于 2004-05-02 14:13:54 得分 3

--试试:  
   
  update   tbl_message   set   area=b.area    
  from   tbl_message   a,tbl_hlrarea   b   where    
  charindex(b.hlr,a.hlr)=1  
  Top

3 楼shiming25(shim)回复于 2004-05-03 14:02:33 得分 0

可是这条语句确是有点慢,刚开始我也是用zjcxc的写法,可是那样的话更慢啊,因为那样的话就用不到建立在tbl_hlrarea中hlr上的索引了。关键是我那个大表中tbl_message用到了substring函数,这样这个表上面的索引就不起作用了。有没有其他的方法啊!  
  Top

4 楼SoarInAir(亮子)回复于 2004-05-03 15:06:32 得分 14

试一下用like  
   
  update   tbl_message   set   area=b.area   from   tbl_message   a,tbl_hlrarea   b   where    
  a.hlr   like   b.hlr+'%'  
  Top

5 楼shiming25(shim)回复于 2004-05-03 16:38:00 得分 0

使用这种写法的话,我就不能控制他的字符个数了啊!比如我b.hlr有12345和1234567890这样的话执行更新的话启不是不知道是用哪一个更新的啊!  
  Top

6 楼shiming25(shim)回复于 2004-05-03 16:51:37 得分 0

哦,对了我可不可以这样,由于表b.hlr比较小我先取出符合条件的记录,比如:  
  select   *   into   #   tmp_p   from   tbl_hlrarea   where     len(hlr)=10        
  (这句话hlr索引好象就不起作用了,有没有其他的选择方法呢)  
   
  create   index   on   #tmp_p(hlr)  
   
  然后:按照亮子大虾的方法:  
   
  update   tbl_message   set   area=b.area   from   tbl_message   a,#tbl_p   where    
  a.hlr   like   b.hlr+'%'Top

相关问题

  • 各位老大:
  • 各位老大!
  • 一个关于查询优化的问题~请皱老大和各位高手帮忙看看~
  • (邹建、子陌,各位老大进来看看吧)关于数据访问速度优化问题
  • 一个关于代码优化的问题??请问各位高手通常使用什么方法优化???
  • 各位老大,请问,OOA/OOD和OMT方法有什么区别啊???急
  • 用的是sql 7.0,现在数据量很大,运行占用cpu平均80%,老大们,给介绍点关于优化存取的方法和文章。
  • 各位老大,让我的JFrame在屏幕上居中,应用哪个方法?!小弟感激不尽!
  • 关于MUTEX的使用方法,请各位老大多多指教,我急死了
  • 各位老大,有没有可以下载的关于asp.net控件方法属性的书籍啊

关键词

  • 语句
  • hlr
  • tbl
  • hlrarea
  • 表
  • area
  • 索引
  • 写法
  • 方法
  • 话

得分解答快速导航

  • 帖主:shiming25
  • zheninchangjiang
  • zjcxc
  • SoarInAir

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo