sql难题征解
我在使用sql2000的过程中,发现如下几个问题,百思不得其解,现公布如下,诚邀诸位高手解答。
1、在查询分析器中顺序执行很多(几十个)存储时(每个存储大约十分钟到半小时),经常执行到中间某个存储时停止,但查询分析器显示正在执行,而且没有死锁,如果单独执行该存储则正常。
2、曾经遇到这样的事情:在一个存储中创建了一个临时表(大约有30个
字段),参数为@ccuscode(客户编码),if @ccuscode='' then 计算所有客户 else 计算某个客户。 程序中这样设置:if @ccuscode='' set @ccuscode='%'
执行语句:insert into #tmp(f1,...) ....where ccuscode like @ccuscode,
当第一次执行所有客户时,报错临时表缺少字段f1,然后执行单个客户时正常,然后再执行所有客户,则正常。曾经连续碰到3次这种情况,但也不是总出现,偶尔。
3、建立存储,存储中有一变量@c,语句简单如下:
set @c='%1%'
select * from table where f1 like @c
执行上述语句时可能很长时间查不出结果(至少一个小时)
但如果改为:select * from table where f1 like '%'+@c+'%'
执行时只需几秒种。而且此类现象也不是总是发生,偶尔发生,但发生频率较高
我的机器配置如下:
操作系统:win2000server(sp4)
cpu:志强2.0g*4
memory:2g
数据库:sql2000(sp3)