教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
firefox火狐浏览器下载
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
精彩图库
  当前位置: 库库中文网 · 数据库类教程 · MSSQL教程 · Sql2000基础教程

有关数据库中,模糊对比汉字地SQL优化疑难?

学院最新推荐文章
教程推荐
『有关数据库中,模糊对比汉字地SQL优化疑难?』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2008-10-11 
declare   c1   cursor     for
select   socode   ,actname    
from   t_sa_order   where   Entrusttype   is   null

open   c1
fetch   next   from   c1   into   @socode,@actname
while(@@fetch_status=0)begin
select   top   1   @EntrustCode=Entrustcode,@Entrusttype=Entrusttype    
from   t_sa_Entrust
where   @actname   like   '% '+actname+ '% '


if   (@EntrustCode   is   not   null)   begin
update   t_sa_order  
set   EntrustCode=@EntrustCode,   Entrusttype   = 'a '
where   socode   =@socode
set   @EntrustCode   =   null

end

fetch   next   from   c1   into   @socode,@actname

end

close   c1
deallocate   c1

上面的一段代码,其中t_sa_order   中的一个汉字串   ,想和t_sa_Entrust中的汉字串比较。
有几个字相等即表示相同。
t_sa_order   中有2W条数据,   t_sa_Entrust   中有8k条数据。
按上面的过程执行起来特别慢,求高手优化!
或者给优化建议!

这个问题第1个回答:
怎么没有人回复一下呢?太幼稚了?
这个问题第2个回答:
无法从你的代码能知道你的要求,能否给个简单的数据。
这也方便大家帮你解决问题。

这个问题第3个回答:
比如说
“欢乐中国行第3CD-002”   和“欢乐中国行”进行匹配,我就可以认为他们是一样的数据。
“欢乐中国行第3CD-002”   和“快乐大本营”进行匹配,我就认为他们是不同的。

这个问题第4个回答:
update   a   set   EntrustCode=B.EntrustCode,   Entrusttype   = 'a '
from   t_sa_order   A,   t_sa_Entrust   B  
where     A.Entrustcode=B.Entrustcode   and   A.actname   like   '% '+B.actname+ '% '


这个问题第5个回答:
不是这个意思,因为汉字的比较很慢,我2W多条A表数据,和8k条B表数据比较的话,竟然需要多半个小时。。。。。
这个问题第6个回答:
用游标比较当然慢啦。
这个问题第7个回答:
如果批处理的话,服务器会很钝!!影响正常工作了,就!
这个问题第8个回答:
up
这个问题第9个回答:
不明白你说的批处理是什么意思,你用游标的话每个都比较效率肯定是个大问题
2w   x   8k   的比较量
涉及到like的时候不会用到索引,也会降低效率
如果你只是全匹配汉字,那再两个表中分别增加一个字段,这个字段存储汉字的部分,建立索引,联合查询更新就行了。
这个问题第10个回答:
SQL   Server2000   索引结构及其使用
http://blog.csdn.net/senaku/archive/2007/08/14/1743023.aspx

楼主看看,自然就明白了.

作者:ppact 来源:C.S.D.N
】【关闭窗口
·上页:
·下页:
相关文章
     数据库类教程 - Sql2000基础教程
普通教程周末愉快
普通教程怎么自动调整id
普通教程还原数据库时为何报磁盘空间不足
普通教程安装SQL2008出错
普通教程散分,给分到20楼,人均5分
普通教程怎么样把表1中 text2地内容 按t
普通教程ORACLE sql中地符号=:是啥意思啊
普通教程求一条SQL语句
普通教程日期段查询算法疑难
普通教程附加数据库出错:错误:602未能在
普通教程怎么更新A表中数据为B表中对应数
普通教程SQL错误7405
精彩图片汇集
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Virus. Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光