SQL随机查询一条记录并对其中一个字段修改值然后输出查询到的这条数据
SQL查询表中一条记录并对其中一个字段值进行修改,然后输出查询到的这条数据表中字段:ID(自增量),题目,状态现在使用的是3条语句来进行操作declare@intint1...
SQL查询表中一条记录并对其中一个字段值进行修改,然后输出查询到的这条数据
表中字段: ID(自增量),题目,状态
现在使用的是3条语句来进行操作
declare @int int
1:查询, set @sql='SELECT @int= ID from '+@id+' where 状态=1'
exec sp_executesql @sql,N'@int bigint output',@int output
(状态1代表查询一条没有被查询过的题目,如果状态值为2则代表查询过)
2:修改,
set @sql='update '+@id+' set 状态=2 where ID='+ CAST(@int as varchar)
exec(@sql)
3:在次查询输出
set @sql='select ID,题目,状态 from '+@id+' where ID='+ CAST(@int as varchar)
exec(@sql)
现在的情况是:10个同时查询请求时查询只需要0.1秒,但是当100个人或者1000人同时请求则要十秒或更多,小弟请教各位大神如何优化能提高查询速度,更换硬件除外(硬件:WIN2003 X64,CPU 至强5645*2,内存 16G,三星固态硬盘读写520M/s)
或者3条语句是否能合并一条以提高查询速度
或是使用此条语句如何能达到上面3条语句的效果:
select top 1 ID ,题目,状态 , NewID()as random from yyy_ml where 状态=1 order by random
满意者加分,谢谢 展开
表中字段: ID(自增量),题目,状态
现在使用的是3条语句来进行操作
declare @int int
1:查询, set @sql='SELECT @int= ID from '+@id+' where 状态=1'
exec sp_executesql @sql,N'@int bigint output',@int output
(状态1代表查询一条没有被查询过的题目,如果状态值为2则代表查询过)
2:修改,
set @sql='update '+@id+' set 状态=2 where ID='+ CAST(@int as varchar)
exec(@sql)
3:在次查询输出
set @sql='select ID,题目,状态 from '+@id+' where ID='+ CAST(@int as varchar)
exec(@sql)
现在的情况是:10个同时查询请求时查询只需要0.1秒,但是当100个人或者1000人同时请求则要十秒或更多,小弟请教各位大神如何优化能提高查询速度,更换硬件除外(硬件:WIN2003 X64,CPU 至强5645*2,内存 16G,三星固态硬盘读写520M/s)
或者3条语句是否能合并一条以提高查询速度
或是使用此条语句如何能达到上面3条语句的效果:
select top 1 ID ,题目,状态 , NewID()as random from yyy_ml where 状态=1 order by random
满意者加分,谢谢 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询